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

package io.greptime.v1;

public final class Ddl {
  private Ddl() {}
  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.Analyzer}
   */
  public enum Analyzer
      implements com.google.protobuf.ProtocolMessageEnum {
    /**
     * <code>ENGLISH = 0;</code>
     */
    ENGLISH(0),
    /**
     * <code>CHINESE = 1;</code>
     */
    CHINESE(1),
    UNRECOGNIZED(-1),
    ;

    /**
     * <code>ENGLISH = 0;</code>
     */
    public static final int ENGLISH_VALUE = 0;
    /**
     * <code>CHINESE = 1;</code>
     */
    public static final int CHINESE_VALUE = 1;


    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 Analyzer 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 Analyzer forNumber(int value) {
      switch (value) {
        case 0: return ENGLISH;
        case 1: return CHINESE;
        default: return null;
      }
    }

    public static com.google.protobuf.Internal.EnumLiteMap<Analyzer>
        internalGetValueMap() {
      return internalValueMap;
    }
    private static final com.google.protobuf.Internal.EnumLiteMap<
        Analyzer> internalValueMap =
          new com.google.protobuf.Internal.EnumLiteMap<Analyzer>() {
            public Analyzer findValueByNumber(int number) {
              return Analyzer.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.Ddl.getDescriptor().getEnumTypes().get(0);
    }

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

    public static Analyzer 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 Analyzer(int value) {
      this.value = value;
    }

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

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

    /**
     * <code>TANTIVY = 0;</code>
     */
    public static final int TANTIVY_VALUE = 0;
    /**
     * <code>BLOOM = 1;</code>
     */
    public static final int BLOOM_VALUE = 1;


    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 FulltextBackend 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 FulltextBackend forNumber(int value) {
      switch (value) {
        case 0: return TANTIVY;
        case 1: return BLOOM;
        default: return null;
      }
    }

    public static com.google.protobuf.Internal.EnumLiteMap<FulltextBackend>
        internalGetValueMap() {
      return internalValueMap;
    }
    private static final com.google.protobuf.Internal.EnumLiteMap<
        FulltextBackend> internalValueMap =
          new com.google.protobuf.Internal.EnumLiteMap<FulltextBackend>() {
            public FulltextBackend findValueByNumber(int number) {
              return FulltextBackend.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.Ddl.getDescriptor().getEnumTypes().get(1);
    }

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

    public static FulltextBackend 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 FulltextBackend(int value) {
      this.value = value;
    }

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

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

    /**
     * <code>BLOOM_FILTER = 0;</code>
     */
    public static final int BLOOM_FILTER_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 SkippingIndexType 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 SkippingIndexType forNumber(int value) {
      switch (value) {
        case 0: return BLOOM_FILTER;
        default: return null;
      }
    }

    public static com.google.protobuf.Internal.EnumLiteMap<SkippingIndexType>
        internalGetValueMap() {
      return internalValueMap;
    }
    private static final com.google.protobuf.Internal.EnumLiteMap<
        SkippingIndexType> internalValueMap =
          new com.google.protobuf.Internal.EnumLiteMap<SkippingIndexType>() {
            public SkippingIndexType findValueByNumber(int number) {
              return SkippingIndexType.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.Ddl.getDescriptor().getEnumTypes().get(2);
    }

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

    public static SkippingIndexType 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 SkippingIndexType(int value) {
      this.value = value;
    }

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

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

    /**
     * <code>.greptime.v1.CreateDatabaseExpr create_database = 1;</code>
     * @return Whether the createDatabase field is set.
     */
    boolean hasCreateDatabase();
    /**
     * <code>.greptime.v1.CreateDatabaseExpr create_database = 1;</code>
     * @return The createDatabase.
     */
    io.greptime.v1.Ddl.CreateDatabaseExpr getCreateDatabase();
    /**
     * <code>.greptime.v1.CreateDatabaseExpr create_database = 1;</code>
     */
    io.greptime.v1.Ddl.CreateDatabaseExprOrBuilder getCreateDatabaseOrBuilder();

    /**
     * <code>.greptime.v1.CreateTableExpr create_table = 2;</code>
     * @return Whether the createTable field is set.
     */
    boolean hasCreateTable();
    /**
     * <code>.greptime.v1.CreateTableExpr create_table = 2;</code>
     * @return The createTable.
     */
    io.greptime.v1.Ddl.CreateTableExpr getCreateTable();
    /**
     * <code>.greptime.v1.CreateTableExpr create_table = 2;</code>
     */
    io.greptime.v1.Ddl.CreateTableExprOrBuilder getCreateTableOrBuilder();

    /**
     * <code>.greptime.v1.AlterTableExpr alter_table = 3;</code>
     * @return Whether the alterTable field is set.
     */
    boolean hasAlterTable();
    /**
     * <code>.greptime.v1.AlterTableExpr alter_table = 3;</code>
     * @return The alterTable.
     */
    io.greptime.v1.Ddl.AlterTableExpr getAlterTable();
    /**
     * <code>.greptime.v1.AlterTableExpr alter_table = 3;</code>
     */
    io.greptime.v1.Ddl.AlterTableExprOrBuilder getAlterTableOrBuilder();

    /**
     * <code>.greptime.v1.DropTableExpr drop_table = 4;</code>
     * @return Whether the dropTable field is set.
     */
    boolean hasDropTable();
    /**
     * <code>.greptime.v1.DropTableExpr drop_table = 4;</code>
     * @return The dropTable.
     */
    io.greptime.v1.Ddl.DropTableExpr getDropTable();
    /**
     * <code>.greptime.v1.DropTableExpr drop_table = 4;</code>
     */
    io.greptime.v1.Ddl.DropTableExprOrBuilder getDropTableOrBuilder();

    /**
     * <code>.greptime.v1.TruncateTableExpr truncate_table = 7;</code>
     * @return Whether the truncateTable field is set.
     */
    boolean hasTruncateTable();
    /**
     * <code>.greptime.v1.TruncateTableExpr truncate_table = 7;</code>
     * @return The truncateTable.
     */
    io.greptime.v1.Ddl.TruncateTableExpr getTruncateTable();
    /**
     * <code>.greptime.v1.TruncateTableExpr truncate_table = 7;</code>
     */
    io.greptime.v1.Ddl.TruncateTableExprOrBuilder getTruncateTableOrBuilder();

    /**
     * <code>.greptime.v1.CreateFlowExpr create_flow = 8;</code>
     * @return Whether the createFlow field is set.
     */
    boolean hasCreateFlow();
    /**
     * <code>.greptime.v1.CreateFlowExpr create_flow = 8;</code>
     * @return The createFlow.
     */
    io.greptime.v1.Ddl.CreateFlowExpr getCreateFlow();
    /**
     * <code>.greptime.v1.CreateFlowExpr create_flow = 8;</code>
     */
    io.greptime.v1.Ddl.CreateFlowExprOrBuilder getCreateFlowOrBuilder();

    /**
     * <code>.greptime.v1.DropFlowExpr drop_flow = 9;</code>
     * @return Whether the dropFlow field is set.
     */
    boolean hasDropFlow();
    /**
     * <code>.greptime.v1.DropFlowExpr drop_flow = 9;</code>
     * @return The dropFlow.
     */
    io.greptime.v1.Ddl.DropFlowExpr getDropFlow();
    /**
     * <code>.greptime.v1.DropFlowExpr drop_flow = 9;</code>
     */
    io.greptime.v1.Ddl.DropFlowExprOrBuilder getDropFlowOrBuilder();

    /**
     * <code>.greptime.v1.CreateViewExpr create_view = 10;</code>
     * @return Whether the createView field is set.
     */
    boolean hasCreateView();
    /**
     * <code>.greptime.v1.CreateViewExpr create_view = 10;</code>
     * @return The createView.
     */
    io.greptime.v1.Ddl.CreateViewExpr getCreateView();
    /**
     * <code>.greptime.v1.CreateViewExpr create_view = 10;</code>
     */
    io.greptime.v1.Ddl.CreateViewExprOrBuilder getCreateViewOrBuilder();

    /**
     * <code>.greptime.v1.DropViewExpr drop_view = 11;</code>
     * @return Whether the dropView field is set.
     */
    boolean hasDropView();
    /**
     * <code>.greptime.v1.DropViewExpr drop_view = 11;</code>
     * @return The dropView.
     */
    io.greptime.v1.Ddl.DropViewExpr getDropView();
    /**
     * <code>.greptime.v1.DropViewExpr drop_view = 11;</code>
     */
    io.greptime.v1.Ddl.DropViewExprOrBuilder getDropViewOrBuilder();

    /**
     * <code>.greptime.v1.AlterDatabaseExpr alter_database = 12;</code>
     * @return Whether the alterDatabase field is set.
     */
    boolean hasAlterDatabase();
    /**
     * <code>.greptime.v1.AlterDatabaseExpr alter_database = 12;</code>
     * @return The alterDatabase.
     */
    io.greptime.v1.Ddl.AlterDatabaseExpr getAlterDatabase();
    /**
     * <code>.greptime.v1.AlterDatabaseExpr alter_database = 12;</code>
     */
    io.greptime.v1.Ddl.AlterDatabaseExprOrBuilder getAlterDatabaseOrBuilder();

    public io.greptime.v1.Ddl.DdlRequest.ExprCase getExprCase();
  }
  /**
   * <pre>
   * "Data Definition Language" requests, that create, modify or delete the
   * database structures but not the data. `DdlRequest` could carry more
   * information than plain SQL, for example, the "table_id" in `CreateTableExpr`.
   * So create a new DDL expr if you need it.
   * </pre>
   *
   * Protobuf type {@code greptime.v1.DdlRequest}
   */
  public static final class DdlRequest extends
      com.google.protobuf.GeneratedMessageV3 implements
      // @@protoc_insertion_point(message_implements:greptime.v1.DdlRequest)
      DdlRequestOrBuilder {
  private static final long serialVersionUID = 0L;
    // Use DdlRequest.newBuilder() to construct.
    private DdlRequest(com.google.protobuf.GeneratedMessageV3.Builder<?> builder) {
      super(builder);
    }
    private DdlRequest() {
    }

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

    @java.lang.Override
    public final com.google.protobuf.UnknownFieldSet
    getUnknownFields() {
      return this.unknownFields;
    }
    private DdlRequest(
        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.Ddl.CreateDatabaseExpr.Builder subBuilder = null;
              if (exprCase_ == 1) {
                subBuilder = ((io.greptime.v1.Ddl.CreateDatabaseExpr) expr_).toBuilder();
              }
              expr_ =
                  input.readMessage(io.greptime.v1.Ddl.CreateDatabaseExpr.parser(), extensionRegistry);
              if (subBuilder != null) {
                subBuilder.mergeFrom((io.greptime.v1.Ddl.CreateDatabaseExpr) expr_);
                expr_ = subBuilder.buildPartial();
              }
              exprCase_ = 1;
              break;
            }
            case 18: {
              io.greptime.v1.Ddl.CreateTableExpr.Builder subBuilder = null;
              if (exprCase_ == 2) {
                subBuilder = ((io.greptime.v1.Ddl.CreateTableExpr) expr_).toBuilder();
              }
              expr_ =
                  input.readMessage(io.greptime.v1.Ddl.CreateTableExpr.parser(), extensionRegistry);
              if (subBuilder != null) {
                subBuilder.mergeFrom((io.greptime.v1.Ddl.CreateTableExpr) expr_);
                expr_ = subBuilder.buildPartial();
              }
              exprCase_ = 2;
              break;
            }
            case 26: {
              io.greptime.v1.Ddl.AlterTableExpr.Builder subBuilder = null;
              if (exprCase_ == 3) {
                subBuilder = ((io.greptime.v1.Ddl.AlterTableExpr) expr_).toBuilder();
              }
              expr_ =
                  input.readMessage(io.greptime.v1.Ddl.AlterTableExpr.parser(), extensionRegistry);
              if (subBuilder != null) {
                subBuilder.mergeFrom((io.greptime.v1.Ddl.AlterTableExpr) expr_);
                expr_ = subBuilder.buildPartial();
              }
              exprCase_ = 3;
              break;
            }
            case 34: {
              io.greptime.v1.Ddl.DropTableExpr.Builder subBuilder = null;
              if (exprCase_ == 4) {
                subBuilder = ((io.greptime.v1.Ddl.DropTableExpr) expr_).toBuilder();
              }
              expr_ =
                  input.readMessage(io.greptime.v1.Ddl.DropTableExpr.parser(), extensionRegistry);
              if (subBuilder != null) {
                subBuilder.mergeFrom((io.greptime.v1.Ddl.DropTableExpr) expr_);
                expr_ = subBuilder.buildPartial();
              }
              exprCase_ = 4;
              break;
            }
            case 58: {
              io.greptime.v1.Ddl.TruncateTableExpr.Builder subBuilder = null;
              if (exprCase_ == 7) {
                subBuilder = ((io.greptime.v1.Ddl.TruncateTableExpr) expr_).toBuilder();
              }
              expr_ =
                  input.readMessage(io.greptime.v1.Ddl.TruncateTableExpr.parser(), extensionRegistry);
              if (subBuilder != null) {
                subBuilder.mergeFrom((io.greptime.v1.Ddl.TruncateTableExpr) expr_);
                expr_ = subBuilder.buildPartial();
              }
              exprCase_ = 7;
              break;
            }
            case 66: {
              io.greptime.v1.Ddl.CreateFlowExpr.Builder subBuilder = null;
              if (exprCase_ == 8) {
                subBuilder = ((io.greptime.v1.Ddl.CreateFlowExpr) expr_).toBuilder();
              }
              expr_ =
                  input.readMessage(io.greptime.v1.Ddl.CreateFlowExpr.parser(), extensionRegistry);
              if (subBuilder != null) {
                subBuilder.mergeFrom((io.greptime.v1.Ddl.CreateFlowExpr) expr_);
                expr_ = subBuilder.buildPartial();
              }
              exprCase_ = 8;
              break;
            }
            case 74: {
              io.greptime.v1.Ddl.DropFlowExpr.Builder subBuilder = null;
              if (exprCase_ == 9) {
                subBuilder = ((io.greptime.v1.Ddl.DropFlowExpr) expr_).toBuilder();
              }
              expr_ =
                  input.readMessage(io.greptime.v1.Ddl.DropFlowExpr.parser(), extensionRegistry);
              if (subBuilder != null) {
                subBuilder.mergeFrom((io.greptime.v1.Ddl.DropFlowExpr) expr_);
                expr_ = subBuilder.buildPartial();
              }
              exprCase_ = 9;
              break;
            }
            case 82: {
              io.greptime.v1.Ddl.CreateViewExpr.Builder subBuilder = null;
              if (exprCase_ == 10) {
                subBuilder = ((io.greptime.v1.Ddl.CreateViewExpr) expr_).toBuilder();
              }
              expr_ =
                  input.readMessage(io.greptime.v1.Ddl.CreateViewExpr.parser(), extensionRegistry);
              if (subBuilder != null) {
                subBuilder.mergeFrom((io.greptime.v1.Ddl.CreateViewExpr) expr_);
                expr_ = subBuilder.buildPartial();
              }
              exprCase_ = 10;
              break;
            }
            case 90: {
              io.greptime.v1.Ddl.DropViewExpr.Builder subBuilder = null;
              if (exprCase_ == 11) {
                subBuilder = ((io.greptime.v1.Ddl.DropViewExpr) expr_).toBuilder();
              }
              expr_ =
                  input.readMessage(io.greptime.v1.Ddl.DropViewExpr.parser(), extensionRegistry);
              if (subBuilder != null) {
                subBuilder.mergeFrom((io.greptime.v1.Ddl.DropViewExpr) expr_);
                expr_ = subBuilder.buildPartial();
              }
              exprCase_ = 11;
              break;
            }
            case 98: {
              io.greptime.v1.Ddl.AlterDatabaseExpr.Builder subBuilder = null;
              if (exprCase_ == 12) {
                subBuilder = ((io.greptime.v1.Ddl.AlterDatabaseExpr) expr_).toBuilder();
              }
              expr_ =
                  input.readMessage(io.greptime.v1.Ddl.AlterDatabaseExpr.parser(), extensionRegistry);
              if (subBuilder != null) {
                subBuilder.mergeFrom((io.greptime.v1.Ddl.AlterDatabaseExpr) expr_);
                expr_ = subBuilder.buildPartial();
              }
              exprCase_ = 12;
              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.Ddl.internal_static_greptime_v1_DdlRequest_descriptor;
    }

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

    private int exprCase_ = 0;
    private java.lang.Object expr_;
    public enum ExprCase
        implements com.google.protobuf.Internal.EnumLite,
            com.google.protobuf.AbstractMessage.InternalOneOfEnum {
      CREATE_DATABASE(1),
      CREATE_TABLE(2),
      ALTER_TABLE(3),
      DROP_TABLE(4),
      TRUNCATE_TABLE(7),
      CREATE_FLOW(8),
      DROP_FLOW(9),
      CREATE_VIEW(10),
      DROP_VIEW(11),
      ALTER_DATABASE(12),
      EXPR_NOT_SET(0);
      private final int value;
      private ExprCase(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 ExprCase valueOf(int value) {
        return forNumber(value);
      }

      public static ExprCase forNumber(int value) {
        switch (value) {
          case 1: return CREATE_DATABASE;
          case 2: return CREATE_TABLE;
          case 3: return ALTER_TABLE;
          case 4: return DROP_TABLE;
          case 7: return TRUNCATE_TABLE;
          case 8: return CREATE_FLOW;
          case 9: return DROP_FLOW;
          case 10: return CREATE_VIEW;
          case 11: return DROP_VIEW;
          case 12: return ALTER_DATABASE;
          case 0: return EXPR_NOT_SET;
          default: return null;
        }
      }
      public int getNumber() {
        return this.value;
      }
    };

    public ExprCase
    getExprCase() {
      return ExprCase.forNumber(
          exprCase_);
    }

    public static final int CREATE_DATABASE_FIELD_NUMBER = 1;
    /**
     * <code>.greptime.v1.CreateDatabaseExpr create_database = 1;</code>
     * @return Whether the createDatabase field is set.
     */
    @java.lang.Override
    public boolean hasCreateDatabase() {
      return exprCase_ == 1;
    }
    /**
     * <code>.greptime.v1.CreateDatabaseExpr create_database = 1;</code>
     * @return The createDatabase.
     */
    @java.lang.Override
    public io.greptime.v1.Ddl.CreateDatabaseExpr getCreateDatabase() {
      if (exprCase_ == 1) {
         return (io.greptime.v1.Ddl.CreateDatabaseExpr) expr_;
      }
      return io.greptime.v1.Ddl.CreateDatabaseExpr.getDefaultInstance();
    }
    /**
     * <code>.greptime.v1.CreateDatabaseExpr create_database = 1;</code>
     */
    @java.lang.Override
    public io.greptime.v1.Ddl.CreateDatabaseExprOrBuilder getCreateDatabaseOrBuilder() {
      if (exprCase_ == 1) {
         return (io.greptime.v1.Ddl.CreateDatabaseExpr) expr_;
      }
      return io.greptime.v1.Ddl.CreateDatabaseExpr.getDefaultInstance();
    }

    public static final int CREATE_TABLE_FIELD_NUMBER = 2;
    /**
     * <code>.greptime.v1.CreateTableExpr create_table = 2;</code>
     * @return Whether the createTable field is set.
     */
    @java.lang.Override
    public boolean hasCreateTable() {
      return exprCase_ == 2;
    }
    /**
     * <code>.greptime.v1.CreateTableExpr create_table = 2;</code>
     * @return The createTable.
     */
    @java.lang.Override
    public io.greptime.v1.Ddl.CreateTableExpr getCreateTable() {
      if (exprCase_ == 2) {
         return (io.greptime.v1.Ddl.CreateTableExpr) expr_;
      }
      return io.greptime.v1.Ddl.CreateTableExpr.getDefaultInstance();
    }
    /**
     * <code>.greptime.v1.CreateTableExpr create_table = 2;</code>
     */
    @java.lang.Override
    public io.greptime.v1.Ddl.CreateTableExprOrBuilder getCreateTableOrBuilder() {
      if (exprCase_ == 2) {
         return (io.greptime.v1.Ddl.CreateTableExpr) expr_;
      }
      return io.greptime.v1.Ddl.CreateTableExpr.getDefaultInstance();
    }

    public static final int ALTER_TABLE_FIELD_NUMBER = 3;
    /**
     * <code>.greptime.v1.AlterTableExpr alter_table = 3;</code>
     * @return Whether the alterTable field is set.
     */
    @java.lang.Override
    public boolean hasAlterTable() {
      return exprCase_ == 3;
    }
    /**
     * <code>.greptime.v1.AlterTableExpr alter_table = 3;</code>
     * @return The alterTable.
     */
    @java.lang.Override
    public io.greptime.v1.Ddl.AlterTableExpr getAlterTable() {
      if (exprCase_ == 3) {
         return (io.greptime.v1.Ddl.AlterTableExpr) expr_;
      }
      return io.greptime.v1.Ddl.AlterTableExpr.getDefaultInstance();
    }
    /**
     * <code>.greptime.v1.AlterTableExpr alter_table = 3;</code>
     */
    @java.lang.Override
    public io.greptime.v1.Ddl.AlterTableExprOrBuilder getAlterTableOrBuilder() {
      if (exprCase_ == 3) {
         return (io.greptime.v1.Ddl.AlterTableExpr) expr_;
      }
      return io.greptime.v1.Ddl.AlterTableExpr.getDefaultInstance();
    }

    public static final int DROP_TABLE_FIELD_NUMBER = 4;
    /**
     * <code>.greptime.v1.DropTableExpr drop_table = 4;</code>
     * @return Whether the dropTable field is set.
     */
    @java.lang.Override
    public boolean hasDropTable() {
      return exprCase_ == 4;
    }
    /**
     * <code>.greptime.v1.DropTableExpr drop_table = 4;</code>
     * @return The dropTable.
     */
    @java.lang.Override
    public io.greptime.v1.Ddl.DropTableExpr getDropTable() {
      if (exprCase_ == 4) {
         return (io.greptime.v1.Ddl.DropTableExpr) expr_;
      }
      return io.greptime.v1.Ddl.DropTableExpr.getDefaultInstance();
    }
    /**
     * <code>.greptime.v1.DropTableExpr drop_table = 4;</code>
     */
    @java.lang.Override
    public io.greptime.v1.Ddl.DropTableExprOrBuilder getDropTableOrBuilder() {
      if (exprCase_ == 4) {
         return (io.greptime.v1.Ddl.DropTableExpr) expr_;
      }
      return io.greptime.v1.Ddl.DropTableExpr.getDefaultInstance();
    }

    public static final int TRUNCATE_TABLE_FIELD_NUMBER = 7;
    /**
     * <code>.greptime.v1.TruncateTableExpr truncate_table = 7;</code>
     * @return Whether the truncateTable field is set.
     */
    @java.lang.Override
    public boolean hasTruncateTable() {
      return exprCase_ == 7;
    }
    /**
     * <code>.greptime.v1.TruncateTableExpr truncate_table = 7;</code>
     * @return The truncateTable.
     */
    @java.lang.Override
    public io.greptime.v1.Ddl.TruncateTableExpr getTruncateTable() {
      if (exprCase_ == 7) {
         return (io.greptime.v1.Ddl.TruncateTableExpr) expr_;
      }
      return io.greptime.v1.Ddl.TruncateTableExpr.getDefaultInstance();
    }
    /**
     * <code>.greptime.v1.TruncateTableExpr truncate_table = 7;</code>
     */
    @java.lang.Override
    public io.greptime.v1.Ddl.TruncateTableExprOrBuilder getTruncateTableOrBuilder() {
      if (exprCase_ == 7) {
         return (io.greptime.v1.Ddl.TruncateTableExpr) expr_;
      }
      return io.greptime.v1.Ddl.TruncateTableExpr.getDefaultInstance();
    }

    public static final int CREATE_FLOW_FIELD_NUMBER = 8;
    /**
     * <code>.greptime.v1.CreateFlowExpr create_flow = 8;</code>
     * @return Whether the createFlow field is set.
     */
    @java.lang.Override
    public boolean hasCreateFlow() {
      return exprCase_ == 8;
    }
    /**
     * <code>.greptime.v1.CreateFlowExpr create_flow = 8;</code>
     * @return The createFlow.
     */
    @java.lang.Override
    public io.greptime.v1.Ddl.CreateFlowExpr getCreateFlow() {
      if (exprCase_ == 8) {
         return (io.greptime.v1.Ddl.CreateFlowExpr) expr_;
      }
      return io.greptime.v1.Ddl.CreateFlowExpr.getDefaultInstance();
    }
    /**
     * <code>.greptime.v1.CreateFlowExpr create_flow = 8;</code>
     */
    @java.lang.Override
    public io.greptime.v1.Ddl.CreateFlowExprOrBuilder getCreateFlowOrBuilder() {
      if (exprCase_ == 8) {
         return (io.greptime.v1.Ddl.CreateFlowExpr) expr_;
      }
      return io.greptime.v1.Ddl.CreateFlowExpr.getDefaultInstance();
    }

    public static final int DROP_FLOW_FIELD_NUMBER = 9;
    /**
     * <code>.greptime.v1.DropFlowExpr drop_flow = 9;</code>
     * @return Whether the dropFlow field is set.
     */
    @java.lang.Override
    public boolean hasDropFlow() {
      return exprCase_ == 9;
    }
    /**
     * <code>.greptime.v1.DropFlowExpr drop_flow = 9;</code>
     * @return The dropFlow.
     */
    @java.lang.Override
    public io.greptime.v1.Ddl.DropFlowExpr getDropFlow() {
      if (exprCase_ == 9) {
         return (io.greptime.v1.Ddl.DropFlowExpr) expr_;
      }
      return io.greptime.v1.Ddl.DropFlowExpr.getDefaultInstance();
    }
    /**
     * <code>.greptime.v1.DropFlowExpr drop_flow = 9;</code>
     */
    @java.lang.Override
    public io.greptime.v1.Ddl.DropFlowExprOrBuilder getDropFlowOrBuilder() {
      if (exprCase_ == 9) {
         return (io.greptime.v1.Ddl.DropFlowExpr) expr_;
      }
      return io.greptime.v1.Ddl.DropFlowExpr.getDefaultInstance();
    }

    public static final int CREATE_VIEW_FIELD_NUMBER = 10;
    /**
     * <code>.greptime.v1.CreateViewExpr create_view = 10;</code>
     * @return Whether the createView field is set.
     */
    @java.lang.Override
    public boolean hasCreateView() {
      return exprCase_ == 10;
    }
    /**
     * <code>.greptime.v1.CreateViewExpr create_view = 10;</code>
     * @return The createView.
     */
    @java.lang.Override
    public io.greptime.v1.Ddl.CreateViewExpr getCreateView() {
      if (exprCase_ == 10) {
         return (io.greptime.v1.Ddl.CreateViewExpr) expr_;
      }
      return io.greptime.v1.Ddl.CreateViewExpr.getDefaultInstance();
    }
    /**
     * <code>.greptime.v1.CreateViewExpr create_view = 10;</code>
     */
    @java.lang.Override
    public io.greptime.v1.Ddl.CreateViewExprOrBuilder getCreateViewOrBuilder() {
      if (exprCase_ == 10) {
         return (io.greptime.v1.Ddl.CreateViewExpr) expr_;
      }
      return io.greptime.v1.Ddl.CreateViewExpr.getDefaultInstance();
    }

    public static final int DROP_VIEW_FIELD_NUMBER = 11;
    /**
     * <code>.greptime.v1.DropViewExpr drop_view = 11;</code>
     * @return Whether the dropView field is set.
     */
    @java.lang.Override
    public boolean hasDropView() {
      return exprCase_ == 11;
    }
    /**
     * <code>.greptime.v1.DropViewExpr drop_view = 11;</code>
     * @return The dropView.
     */
    @java.lang.Override
    public io.greptime.v1.Ddl.DropViewExpr getDropView() {
      if (exprCase_ == 11) {
         return (io.greptime.v1.Ddl.DropViewExpr) expr_;
      }
      return io.greptime.v1.Ddl.DropViewExpr.getDefaultInstance();
    }
    /**
     * <code>.greptime.v1.DropViewExpr drop_view = 11;</code>
     */
    @java.lang.Override
    public io.greptime.v1.Ddl.DropViewExprOrBuilder getDropViewOrBuilder() {
      if (exprCase_ == 11) {
         return (io.greptime.v1.Ddl.DropViewExpr) expr_;
      }
      return io.greptime.v1.Ddl.DropViewExpr.getDefaultInstance();
    }

    public static final int ALTER_DATABASE_FIELD_NUMBER = 12;
    /**
     * <code>.greptime.v1.AlterDatabaseExpr alter_database = 12;</code>
     * @return Whether the alterDatabase field is set.
     */
    @java.lang.Override
    public boolean hasAlterDatabase() {
      return exprCase_ == 12;
    }
    /**
     * <code>.greptime.v1.AlterDatabaseExpr alter_database = 12;</code>
     * @return The alterDatabase.
     */
    @java.lang.Override
    public io.greptime.v1.Ddl.AlterDatabaseExpr getAlterDatabase() {
      if (exprCase_ == 12) {
         return (io.greptime.v1.Ddl.AlterDatabaseExpr) expr_;
      }
      return io.greptime.v1.Ddl.AlterDatabaseExpr.getDefaultInstance();
    }
    /**
     * <code>.greptime.v1.AlterDatabaseExpr alter_database = 12;</code>
     */
    @java.lang.Override
    public io.greptime.v1.Ddl.AlterDatabaseExprOrBuilder getAlterDatabaseOrBuilder() {
      if (exprCase_ == 12) {
         return (io.greptime.v1.Ddl.AlterDatabaseExpr) expr_;
      }
      return io.greptime.v1.Ddl.AlterDatabaseExpr.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 (exprCase_ == 1) {
        output.writeMessage(1, (io.greptime.v1.Ddl.CreateDatabaseExpr) expr_);
      }
      if (exprCase_ == 2) {
        output.writeMessage(2, (io.greptime.v1.Ddl.CreateTableExpr) expr_);
      }
      if (exprCase_ == 3) {
        output.writeMessage(3, (io.greptime.v1.Ddl.AlterTableExpr) expr_);
      }
      if (exprCase_ == 4) {
        output.writeMessage(4, (io.greptime.v1.Ddl.DropTableExpr) expr_);
      }
      if (exprCase_ == 7) {
        output.writeMessage(7, (io.greptime.v1.Ddl.TruncateTableExpr) expr_);
      }
      if (exprCase_ == 8) {
        output.writeMessage(8, (io.greptime.v1.Ddl.CreateFlowExpr) expr_);
      }
      if (exprCase_ == 9) {
        output.writeMessage(9, (io.greptime.v1.Ddl.DropFlowExpr) expr_);
      }
      if (exprCase_ == 10) {
        output.writeMessage(10, (io.greptime.v1.Ddl.CreateViewExpr) expr_);
      }
      if (exprCase_ == 11) {
        output.writeMessage(11, (io.greptime.v1.Ddl.DropViewExpr) expr_);
      }
      if (exprCase_ == 12) {
        output.writeMessage(12, (io.greptime.v1.Ddl.AlterDatabaseExpr) expr_);
      }
      unknownFields.writeTo(output);
    }

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

      size = 0;
      if (exprCase_ == 1) {
        size += com.google.protobuf.CodedOutputStream
          .computeMessageSize(1, (io.greptime.v1.Ddl.CreateDatabaseExpr) expr_);
      }
      if (exprCase_ == 2) {
        size += com.google.protobuf.CodedOutputStream
          .computeMessageSize(2, (io.greptime.v1.Ddl.CreateTableExpr) expr_);
      }
      if (exprCase_ == 3) {
        size += com.google.protobuf.CodedOutputStream
          .computeMessageSize(3, (io.greptime.v1.Ddl.AlterTableExpr) expr_);
      }
      if (exprCase_ == 4) {
        size += com.google.protobuf.CodedOutputStream
          .computeMessageSize(4, (io.greptime.v1.Ddl.DropTableExpr) expr_);
      }
      if (exprCase_ == 7) {
        size += com.google.protobuf.CodedOutputStream
          .computeMessageSize(7, (io.greptime.v1.Ddl.TruncateTableExpr) expr_);
      }
      if (exprCase_ == 8) {
        size += com.google.protobuf.CodedOutputStream
          .computeMessageSize(8, (io.greptime.v1.Ddl.CreateFlowExpr) expr_);
      }
      if (exprCase_ == 9) {
        size += com.google.protobuf.CodedOutputStream
          .computeMessageSize(9, (io.greptime.v1.Ddl.DropFlowExpr) expr_);
      }
      if (exprCase_ == 10) {
        size += com.google.protobuf.CodedOutputStream
          .computeMessageSize(10, (io.greptime.v1.Ddl.CreateViewExpr) expr_);
      }
      if (exprCase_ == 11) {
        size += com.google.protobuf.CodedOutputStream
          .computeMessageSize(11, (io.greptime.v1.Ddl.DropViewExpr) expr_);
      }
      if (exprCase_ == 12) {
        size += com.google.protobuf.CodedOutputStream
          .computeMessageSize(12, (io.greptime.v1.Ddl.AlterDatabaseExpr) expr_);
      }
      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.Ddl.DdlRequest)) {
        return super.equals(obj);
      }
      io.greptime.v1.Ddl.DdlRequest other = (io.greptime.v1.Ddl.DdlRequest) obj;

      if (!getExprCase().equals(other.getExprCase())) return false;
      switch (exprCase_) {
        case 1:
          if (!getCreateDatabase()
              .equals(other.getCreateDatabase())) return false;
          break;
        case 2:
          if (!getCreateTable()
              .equals(other.getCreateTable())) return false;
          break;
        case 3:
          if (!getAlterTable()
              .equals(other.getAlterTable())) return false;
          break;
        case 4:
          if (!getDropTable()
              .equals(other.getDropTable())) return false;
          break;
        case 7:
          if (!getTruncateTable()
              .equals(other.getTruncateTable())) return false;
          break;
        case 8:
          if (!getCreateFlow()
              .equals(other.getCreateFlow())) return false;
          break;
        case 9:
          if (!getDropFlow()
              .equals(other.getDropFlow())) return false;
          break;
        case 10:
          if (!getCreateView()
              .equals(other.getCreateView())) return false;
          break;
        case 11:
          if (!getDropView()
              .equals(other.getDropView())) return false;
          break;
        case 12:
          if (!getAlterDatabase()
              .equals(other.getAlterDatabase())) 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 (exprCase_) {
        case 1:
          hash = (37 * hash) + CREATE_DATABASE_FIELD_NUMBER;
          hash = (53 * hash) + getCreateDatabase().hashCode();
          break;
        case 2:
          hash = (37 * hash) + CREATE_TABLE_FIELD_NUMBER;
          hash = (53 * hash) + getCreateTable().hashCode();
          break;
        case 3:
          hash = (37 * hash) + ALTER_TABLE_FIELD_NUMBER;
          hash = (53 * hash) + getAlterTable().hashCode();
          break;
        case 4:
          hash = (37 * hash) + DROP_TABLE_FIELD_NUMBER;
          hash = (53 * hash) + getDropTable().hashCode();
          break;
        case 7:
          hash = (37 * hash) + TRUNCATE_TABLE_FIELD_NUMBER;
          hash = (53 * hash) + getTruncateTable().hashCode();
          break;
        case 8:
          hash = (37 * hash) + CREATE_FLOW_FIELD_NUMBER;
          hash = (53 * hash) + getCreateFlow().hashCode();
          break;
        case 9:
          hash = (37 * hash) + DROP_FLOW_FIELD_NUMBER;
          hash = (53 * hash) + getDropFlow().hashCode();
          break;
        case 10:
          hash = (37 * hash) + CREATE_VIEW_FIELD_NUMBER;
          hash = (53 * hash) + getCreateView().hashCode();
          break;
        case 11:
          hash = (37 * hash) + DROP_VIEW_FIELD_NUMBER;
          hash = (53 * hash) + getDropView().hashCode();
          break;
        case 12:
          hash = (37 * hash) + ALTER_DATABASE_FIELD_NUMBER;
          hash = (53 * hash) + getAlterDatabase().hashCode();
          break;
        case 0:
        default:
      }
      hash = (29 * hash) + unknownFields.hashCode();
      memoizedHashCode = hash;
      return hash;
    }

    public static io.greptime.v1.Ddl.DdlRequest parseFrom(
        java.nio.ByteBuffer data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static io.greptime.v1.Ddl.DdlRequest 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.Ddl.DdlRequest parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static io.greptime.v1.Ddl.DdlRequest 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.Ddl.DdlRequest parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static io.greptime.v1.Ddl.DdlRequest parseFrom(
        byte[] data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static io.greptime.v1.Ddl.DdlRequest parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input);
    }
    public static io.greptime.v1.Ddl.DdlRequest 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.Ddl.DdlRequest parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseDelimitedWithIOException(PARSER, input);
    }
    public static io.greptime.v1.Ddl.DdlRequest 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.Ddl.DdlRequest parseFrom(
        com.google.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input);
    }
    public static io.greptime.v1.Ddl.DdlRequest 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.Ddl.DdlRequest 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>
     * "Data Definition Language" requests, that create, modify or delete the
     * database structures but not the data. `DdlRequest` could carry more
     * information than plain SQL, for example, the "table_id" in `CreateTableExpr`.
     * So create a new DDL expr if you need it.
     * </pre>
     *
     * Protobuf type {@code greptime.v1.DdlRequest}
     */
    public static final class Builder extends
        com.google.protobuf.GeneratedMessageV3.Builder<Builder> implements
        // @@protoc_insertion_point(builder_implements:greptime.v1.DdlRequest)
        io.greptime.v1.Ddl.DdlRequestOrBuilder {
      public static final com.google.protobuf.Descriptors.Descriptor
          getDescriptor() {
        return io.greptime.v1.Ddl.internal_static_greptime_v1_DdlRequest_descriptor;
      }

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

      // Construct using io.greptime.v1.Ddl.DdlRequest.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();
        exprCase_ = 0;
        expr_ = null;
        return this;
      }

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

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

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

      @java.lang.Override
      public io.greptime.v1.Ddl.DdlRequest buildPartial() {
        io.greptime.v1.Ddl.DdlRequest result = new io.greptime.v1.Ddl.DdlRequest(this);
        if (exprCase_ == 1) {
          if (createDatabaseBuilder_ == null) {
            result.expr_ = expr_;
          } else {
            result.expr_ = createDatabaseBuilder_.build();
          }
        }
        if (exprCase_ == 2) {
          if (createTableBuilder_ == null) {
            result.expr_ = expr_;
          } else {
            result.expr_ = createTableBuilder_.build();
          }
        }
        if (exprCase_ == 3) {
          if (alterTableBuilder_ == null) {
            result.expr_ = expr_;
          } else {
            result.expr_ = alterTableBuilder_.build();
          }
        }
        if (exprCase_ == 4) {
          if (dropTableBuilder_ == null) {
            result.expr_ = expr_;
          } else {
            result.expr_ = dropTableBuilder_.build();
          }
        }
        if (exprCase_ == 7) {
          if (truncateTableBuilder_ == null) {
            result.expr_ = expr_;
          } else {
            result.expr_ = truncateTableBuilder_.build();
          }
        }
        if (exprCase_ == 8) {
          if (createFlowBuilder_ == null) {
            result.expr_ = expr_;
          } else {
            result.expr_ = createFlowBuilder_.build();
          }
        }
        if (exprCase_ == 9) {
          if (dropFlowBuilder_ == null) {
            result.expr_ = expr_;
          } else {
            result.expr_ = dropFlowBuilder_.build();
          }
        }
        if (exprCase_ == 10) {
          if (createViewBuilder_ == null) {
            result.expr_ = expr_;
          } else {
            result.expr_ = createViewBuilder_.build();
          }
        }
        if (exprCase_ == 11) {
          if (dropViewBuilder_ == null) {
            result.expr_ = expr_;
          } else {
            result.expr_ = dropViewBuilder_.build();
          }
        }
        if (exprCase_ == 12) {
          if (alterDatabaseBuilder_ == null) {
            result.expr_ = expr_;
          } else {
            result.expr_ = alterDatabaseBuilder_.build();
          }
        }
        result.exprCase_ = exprCase_;
        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.Ddl.DdlRequest) {
          return mergeFrom((io.greptime.v1.Ddl.DdlRequest)other);
        } else {
          super.mergeFrom(other);
          return this;
        }
      }

      public Builder mergeFrom(io.greptime.v1.Ddl.DdlRequest other) {
        if (other == io.greptime.v1.Ddl.DdlRequest.getDefaultInstance()) return this;
        switch (other.getExprCase()) {
          case CREATE_DATABASE: {
            mergeCreateDatabase(other.getCreateDatabase());
            break;
          }
          case CREATE_TABLE: {
            mergeCreateTable(other.getCreateTable());
            break;
          }
          case ALTER_TABLE: {
            mergeAlterTable(other.getAlterTable());
            break;
          }
          case DROP_TABLE: {
            mergeDropTable(other.getDropTable());
            break;
          }
          case TRUNCATE_TABLE: {
            mergeTruncateTable(other.getTruncateTable());
            break;
          }
          case CREATE_FLOW: {
            mergeCreateFlow(other.getCreateFlow());
            break;
          }
          case DROP_FLOW: {
            mergeDropFlow(other.getDropFlow());
            break;
          }
          case CREATE_VIEW: {
            mergeCreateView(other.getCreateView());
            break;
          }
          case DROP_VIEW: {
            mergeDropView(other.getDropView());
            break;
          }
          case ALTER_DATABASE: {
            mergeAlterDatabase(other.getAlterDatabase());
            break;
          }
          case EXPR_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.Ddl.DdlRequest parsedMessage = null;
        try {
          parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry);
        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
          parsedMessage = (io.greptime.v1.Ddl.DdlRequest) e.getUnfinishedMessage();
          throw e.unwrapIOException();
        } finally {
          if (parsedMessage != null) {
            mergeFrom(parsedMessage);
          }
        }
        return this;
      }
      private int exprCase_ = 0;
      private java.lang.Object expr_;
      public ExprCase
          getExprCase() {
        return ExprCase.forNumber(
            exprCase_);
      }

      public Builder clearExpr() {
        exprCase_ = 0;
        expr_ = null;
        onChanged();
        return this;
      }


      private com.google.protobuf.SingleFieldBuilderV3<
          io.greptime.v1.Ddl.CreateDatabaseExpr, io.greptime.v1.Ddl.CreateDatabaseExpr.Builder, io.greptime.v1.Ddl.CreateDatabaseExprOrBuilder> createDatabaseBuilder_;
      /**
       * <code>.greptime.v1.CreateDatabaseExpr create_database = 1;</code>
       * @return Whether the createDatabase field is set.
       */
      @java.lang.Override
      public boolean hasCreateDatabase() {
        return exprCase_ == 1;
      }
      /**
       * <code>.greptime.v1.CreateDatabaseExpr create_database = 1;</code>
       * @return The createDatabase.
       */
      @java.lang.Override
      public io.greptime.v1.Ddl.CreateDatabaseExpr getCreateDatabase() {
        if (createDatabaseBuilder_ == null) {
          if (exprCase_ == 1) {
            return (io.greptime.v1.Ddl.CreateDatabaseExpr) expr_;
          }
          return io.greptime.v1.Ddl.CreateDatabaseExpr.getDefaultInstance();
        } else {
          if (exprCase_ == 1) {
            return createDatabaseBuilder_.getMessage();
          }
          return io.greptime.v1.Ddl.CreateDatabaseExpr.getDefaultInstance();
        }
      }
      /**
       * <code>.greptime.v1.CreateDatabaseExpr create_database = 1;</code>
       */
      public Builder setCreateDatabase(io.greptime.v1.Ddl.CreateDatabaseExpr value) {
        if (createDatabaseBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          expr_ = value;
          onChanged();
        } else {
          createDatabaseBuilder_.setMessage(value);
        }
        exprCase_ = 1;
        return this;
      }
      /**
       * <code>.greptime.v1.CreateDatabaseExpr create_database = 1;</code>
       */
      public Builder setCreateDatabase(
          io.greptime.v1.Ddl.CreateDatabaseExpr.Builder builderForValue) {
        if (createDatabaseBuilder_ == null) {
          expr_ = builderForValue.build();
          onChanged();
        } else {
          createDatabaseBuilder_.setMessage(builderForValue.build());
        }
        exprCase_ = 1;
        return this;
      }
      /**
       * <code>.greptime.v1.CreateDatabaseExpr create_database = 1;</code>
       */
      public Builder mergeCreateDatabase(io.greptime.v1.Ddl.CreateDatabaseExpr value) {
        if (createDatabaseBuilder_ == null) {
          if (exprCase_ == 1 &&
              expr_ != io.greptime.v1.Ddl.CreateDatabaseExpr.getDefaultInstance()) {
            expr_ = io.greptime.v1.Ddl.CreateDatabaseExpr.newBuilder((io.greptime.v1.Ddl.CreateDatabaseExpr) expr_)
                .mergeFrom(value).buildPartial();
          } else {
            expr_ = value;
          }
          onChanged();
        } else {
          if (exprCase_ == 1) {
            createDatabaseBuilder_.mergeFrom(value);
          } else {
            createDatabaseBuilder_.setMessage(value);
          }
        }
        exprCase_ = 1;
        return this;
      }
      /**
       * <code>.greptime.v1.CreateDatabaseExpr create_database = 1;</code>
       */
      public Builder clearCreateDatabase() {
        if (createDatabaseBuilder_ == null) {
          if (exprCase_ == 1) {
            exprCase_ = 0;
            expr_ = null;
            onChanged();
          }
        } else {
          if (exprCase_ == 1) {
            exprCase_ = 0;
            expr_ = null;
          }
          createDatabaseBuilder_.clear();
        }
        return this;
      }
      /**
       * <code>.greptime.v1.CreateDatabaseExpr create_database = 1;</code>
       */
      public io.greptime.v1.Ddl.CreateDatabaseExpr.Builder getCreateDatabaseBuilder() {
        return getCreateDatabaseFieldBuilder().getBuilder();
      }
      /**
       * <code>.greptime.v1.CreateDatabaseExpr create_database = 1;</code>
       */
      @java.lang.Override
      public io.greptime.v1.Ddl.CreateDatabaseExprOrBuilder getCreateDatabaseOrBuilder() {
        if ((exprCase_ == 1) && (createDatabaseBuilder_ != null)) {
          return createDatabaseBuilder_.getMessageOrBuilder();
        } else {
          if (exprCase_ == 1) {
            return (io.greptime.v1.Ddl.CreateDatabaseExpr) expr_;
          }
          return io.greptime.v1.Ddl.CreateDatabaseExpr.getDefaultInstance();
        }
      }
      /**
       * <code>.greptime.v1.CreateDatabaseExpr create_database = 1;</code>
       */
      private com.google.protobuf.SingleFieldBuilderV3<
          io.greptime.v1.Ddl.CreateDatabaseExpr, io.greptime.v1.Ddl.CreateDatabaseExpr.Builder, io.greptime.v1.Ddl.CreateDatabaseExprOrBuilder> 
          getCreateDatabaseFieldBuilder() {
        if (createDatabaseBuilder_ == null) {
          if (!(exprCase_ == 1)) {
            expr_ = io.greptime.v1.Ddl.CreateDatabaseExpr.getDefaultInstance();
          }
          createDatabaseBuilder_ = new com.google.protobuf.SingleFieldBuilderV3<
              io.greptime.v1.Ddl.CreateDatabaseExpr, io.greptime.v1.Ddl.CreateDatabaseExpr.Builder, io.greptime.v1.Ddl.CreateDatabaseExprOrBuilder>(
                  (io.greptime.v1.Ddl.CreateDatabaseExpr) expr_,
                  getParentForChildren(),
                  isClean());
          expr_ = null;
        }
        exprCase_ = 1;
        onChanged();;
        return createDatabaseBuilder_;
      }

      private com.google.protobuf.SingleFieldBuilderV3<
          io.greptime.v1.Ddl.CreateTableExpr, io.greptime.v1.Ddl.CreateTableExpr.Builder, io.greptime.v1.Ddl.CreateTableExprOrBuilder> createTableBuilder_;
      /**
       * <code>.greptime.v1.CreateTableExpr create_table = 2;</code>
       * @return Whether the createTable field is set.
       */
      @java.lang.Override
      public boolean hasCreateTable() {
        return exprCase_ == 2;
      }
      /**
       * <code>.greptime.v1.CreateTableExpr create_table = 2;</code>
       * @return The createTable.
       */
      @java.lang.Override
      public io.greptime.v1.Ddl.CreateTableExpr getCreateTable() {
        if (createTableBuilder_ == null) {
          if (exprCase_ == 2) {
            return (io.greptime.v1.Ddl.CreateTableExpr) expr_;
          }
          return io.greptime.v1.Ddl.CreateTableExpr.getDefaultInstance();
        } else {
          if (exprCase_ == 2) {
            return createTableBuilder_.getMessage();
          }
          return io.greptime.v1.Ddl.CreateTableExpr.getDefaultInstance();
        }
      }
      /**
       * <code>.greptime.v1.CreateTableExpr create_table = 2;</code>
       */
      public Builder setCreateTable(io.greptime.v1.Ddl.CreateTableExpr value) {
        if (createTableBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          expr_ = value;
          onChanged();
        } else {
          createTableBuilder_.setMessage(value);
        }
        exprCase_ = 2;
        return this;
      }
      /**
       * <code>.greptime.v1.CreateTableExpr create_table = 2;</code>
       */
      public Builder setCreateTable(
          io.greptime.v1.Ddl.CreateTableExpr.Builder builderForValue) {
        if (createTableBuilder_ == null) {
          expr_ = builderForValue.build();
          onChanged();
        } else {
          createTableBuilder_.setMessage(builderForValue.build());
        }
        exprCase_ = 2;
        return this;
      }
      /**
       * <code>.greptime.v1.CreateTableExpr create_table = 2;</code>
       */
      public Builder mergeCreateTable(io.greptime.v1.Ddl.CreateTableExpr value) {
        if (createTableBuilder_ == null) {
          if (exprCase_ == 2 &&
              expr_ != io.greptime.v1.Ddl.CreateTableExpr.getDefaultInstance()) {
            expr_ = io.greptime.v1.Ddl.CreateTableExpr.newBuilder((io.greptime.v1.Ddl.CreateTableExpr) expr_)
                .mergeFrom(value).buildPartial();
          } else {
            expr_ = value;
          }
          onChanged();
        } else {
          if (exprCase_ == 2) {
            createTableBuilder_.mergeFrom(value);
          } else {
            createTableBuilder_.setMessage(value);
          }
        }
        exprCase_ = 2;
        return this;
      }
      /**
       * <code>.greptime.v1.CreateTableExpr create_table = 2;</code>
       */
      public Builder clearCreateTable() {
        if (createTableBuilder_ == null) {
          if (exprCase_ == 2) {
            exprCase_ = 0;
            expr_ = null;
            onChanged();
          }
        } else {
          if (exprCase_ == 2) {
            exprCase_ = 0;
            expr_ = null;
          }
          createTableBuilder_.clear();
        }
        return this;
      }
      /**
       * <code>.greptime.v1.CreateTableExpr create_table = 2;</code>
       */
      public io.greptime.v1.Ddl.CreateTableExpr.Builder getCreateTableBuilder() {
        return getCreateTableFieldBuilder().getBuilder();
      }
      /**
       * <code>.greptime.v1.CreateTableExpr create_table = 2;</code>
       */
      @java.lang.Override
      public io.greptime.v1.Ddl.CreateTableExprOrBuilder getCreateTableOrBuilder() {
        if ((exprCase_ == 2) && (createTableBuilder_ != null)) {
          return createTableBuilder_.getMessageOrBuilder();
        } else {
          if (exprCase_ == 2) {
            return (io.greptime.v1.Ddl.CreateTableExpr) expr_;
          }
          return io.greptime.v1.Ddl.CreateTableExpr.getDefaultInstance();
        }
      }
      /**
       * <code>.greptime.v1.CreateTableExpr create_table = 2;</code>
       */
      private com.google.protobuf.SingleFieldBuilderV3<
          io.greptime.v1.Ddl.CreateTableExpr, io.greptime.v1.Ddl.CreateTableExpr.Builder, io.greptime.v1.Ddl.CreateTableExprOrBuilder> 
          getCreateTableFieldBuilder() {
        if (createTableBuilder_ == null) {
          if (!(exprCase_ == 2)) {
            expr_ = io.greptime.v1.Ddl.CreateTableExpr.getDefaultInstance();
          }
          createTableBuilder_ = new com.google.protobuf.SingleFieldBuilderV3<
              io.greptime.v1.Ddl.CreateTableExpr, io.greptime.v1.Ddl.CreateTableExpr.Builder, io.greptime.v1.Ddl.CreateTableExprOrBuilder>(
                  (io.greptime.v1.Ddl.CreateTableExpr) expr_,
                  getParentForChildren(),
                  isClean());
          expr_ = null;
        }
        exprCase_ = 2;
        onChanged();;
        return createTableBuilder_;
      }

      private com.google.protobuf.SingleFieldBuilderV3<
          io.greptime.v1.Ddl.AlterTableExpr, io.greptime.v1.Ddl.AlterTableExpr.Builder, io.greptime.v1.Ddl.AlterTableExprOrBuilder> alterTableBuilder_;
      /**
       * <code>.greptime.v1.AlterTableExpr alter_table = 3;</code>
       * @return Whether the alterTable field is set.
       */
      @java.lang.Override
      public boolean hasAlterTable() {
        return exprCase_ == 3;
      }
      /**
       * <code>.greptime.v1.AlterTableExpr alter_table = 3;</code>
       * @return The alterTable.
       */
      @java.lang.Override
      public io.greptime.v1.Ddl.AlterTableExpr getAlterTable() {
        if (alterTableBuilder_ == null) {
          if (exprCase_ == 3) {
            return (io.greptime.v1.Ddl.AlterTableExpr) expr_;
          }
          return io.greptime.v1.Ddl.AlterTableExpr.getDefaultInstance();
        } else {
          if (exprCase_ == 3) {
            return alterTableBuilder_.getMessage();
          }
          return io.greptime.v1.Ddl.AlterTableExpr.getDefaultInstance();
        }
      }
      /**
       * <code>.greptime.v1.AlterTableExpr alter_table = 3;</code>
       */
      public Builder setAlterTable(io.greptime.v1.Ddl.AlterTableExpr value) {
        if (alterTableBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          expr_ = value;
          onChanged();
        } else {
          alterTableBuilder_.setMessage(value);
        }
        exprCase_ = 3;
        return this;
      }
      /**
       * <code>.greptime.v1.AlterTableExpr alter_table = 3;</code>
       */
      public Builder setAlterTable(
          io.greptime.v1.Ddl.AlterTableExpr.Builder builderForValue) {
        if (alterTableBuilder_ == null) {
          expr_ = builderForValue.build();
          onChanged();
        } else {
          alterTableBuilder_.setMessage(builderForValue.build());
        }
        exprCase_ = 3;
        return this;
      }
      /**
       * <code>.greptime.v1.AlterTableExpr alter_table = 3;</code>
       */
      public Builder mergeAlterTable(io.greptime.v1.Ddl.AlterTableExpr value) {
        if (alterTableBuilder_ == null) {
          if (exprCase_ == 3 &&
              expr_ != io.greptime.v1.Ddl.AlterTableExpr.getDefaultInstance()) {
            expr_ = io.greptime.v1.Ddl.AlterTableExpr.newBuilder((io.greptime.v1.Ddl.AlterTableExpr) expr_)
                .mergeFrom(value).buildPartial();
          } else {
            expr_ = value;
          }
          onChanged();
        } else {
          if (exprCase_ == 3) {
            alterTableBuilder_.mergeFrom(value);
          } else {
            alterTableBuilder_.setMessage(value);
          }
        }
        exprCase_ = 3;
        return this;
      }
      /**
       * <code>.greptime.v1.AlterTableExpr alter_table = 3;</code>
       */
      public Builder clearAlterTable() {
        if (alterTableBuilder_ == null) {
          if (exprCase_ == 3) {
            exprCase_ = 0;
            expr_ = null;
            onChanged();
          }
        } else {
          if (exprCase_ == 3) {
            exprCase_ = 0;
            expr_ = null;
          }
          alterTableBuilder_.clear();
        }
        return this;
      }
      /**
       * <code>.greptime.v1.AlterTableExpr alter_table = 3;</code>
       */
      public io.greptime.v1.Ddl.AlterTableExpr.Builder getAlterTableBuilder() {
        return getAlterTableFieldBuilder().getBuilder();
      }
      /**
       * <code>.greptime.v1.AlterTableExpr alter_table = 3;</code>
       */
      @java.lang.Override
      public io.greptime.v1.Ddl.AlterTableExprOrBuilder getAlterTableOrBuilder() {
        if ((exprCase_ == 3) && (alterTableBuilder_ != null)) {
          return alterTableBuilder_.getMessageOrBuilder();
        } else {
          if (exprCase_ == 3) {
            return (io.greptime.v1.Ddl.AlterTableExpr) expr_;
          }
          return io.greptime.v1.Ddl.AlterTableExpr.getDefaultInstance();
        }
      }
      /**
       * <code>.greptime.v1.AlterTableExpr alter_table = 3;</code>
       */
      private com.google.protobuf.SingleFieldBuilderV3<
          io.greptime.v1.Ddl.AlterTableExpr, io.greptime.v1.Ddl.AlterTableExpr.Builder, io.greptime.v1.Ddl.AlterTableExprOrBuilder> 
          getAlterTableFieldBuilder() {
        if (alterTableBuilder_ == null) {
          if (!(exprCase_ == 3)) {
            expr_ = io.greptime.v1.Ddl.AlterTableExpr.getDefaultInstance();
          }
          alterTableBuilder_ = new com.google.protobuf.SingleFieldBuilderV3<
              io.greptime.v1.Ddl.AlterTableExpr, io.greptime.v1.Ddl.AlterTableExpr.Builder, io.greptime.v1.Ddl.AlterTableExprOrBuilder>(
                  (io.greptime.v1.Ddl.AlterTableExpr) expr_,
                  getParentForChildren(),
                  isClean());
          expr_ = null;
        }
        exprCase_ = 3;
        onChanged();;
        return alterTableBuilder_;
      }

      private com.google.protobuf.SingleFieldBuilderV3<
          io.greptime.v1.Ddl.DropTableExpr, io.greptime.v1.Ddl.DropTableExpr.Builder, io.greptime.v1.Ddl.DropTableExprOrBuilder> dropTableBuilder_;
      /**
       * <code>.greptime.v1.DropTableExpr drop_table = 4;</code>
       * @return Whether the dropTable field is set.
       */
      @java.lang.Override
      public boolean hasDropTable() {
        return exprCase_ == 4;
      }
      /**
       * <code>.greptime.v1.DropTableExpr drop_table = 4;</code>
       * @return The dropTable.
       */
      @java.lang.Override
      public io.greptime.v1.Ddl.DropTableExpr getDropTable() {
        if (dropTableBuilder_ == null) {
          if (exprCase_ == 4) {
            return (io.greptime.v1.Ddl.DropTableExpr) expr_;
          }
          return io.greptime.v1.Ddl.DropTableExpr.getDefaultInstance();
        } else {
          if (exprCase_ == 4) {
            return dropTableBuilder_.getMessage();
          }
          return io.greptime.v1.Ddl.DropTableExpr.getDefaultInstance();
        }
      }
      /**
       * <code>.greptime.v1.DropTableExpr drop_table = 4;</code>
       */
      public Builder setDropTable(io.greptime.v1.Ddl.DropTableExpr value) {
        if (dropTableBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          expr_ = value;
          onChanged();
        } else {
          dropTableBuilder_.setMessage(value);
        }
        exprCase_ = 4;
        return this;
      }
      /**
       * <code>.greptime.v1.DropTableExpr drop_table = 4;</code>
       */
      public Builder setDropTable(
          io.greptime.v1.Ddl.DropTableExpr.Builder builderForValue) {
        if (dropTableBuilder_ == null) {
          expr_ = builderForValue.build();
          onChanged();
        } else {
          dropTableBuilder_.setMessage(builderForValue.build());
        }
        exprCase_ = 4;
        return this;
      }
      /**
       * <code>.greptime.v1.DropTableExpr drop_table = 4;</code>
       */
      public Builder mergeDropTable(io.greptime.v1.Ddl.DropTableExpr value) {
        if (dropTableBuilder_ == null) {
          if (exprCase_ == 4 &&
              expr_ != io.greptime.v1.Ddl.DropTableExpr.getDefaultInstance()) {
            expr_ = io.greptime.v1.Ddl.DropTableExpr.newBuilder((io.greptime.v1.Ddl.DropTableExpr) expr_)
                .mergeFrom(value).buildPartial();
          } else {
            expr_ = value;
          }
          onChanged();
        } else {
          if (exprCase_ == 4) {
            dropTableBuilder_.mergeFrom(value);
          } else {
            dropTableBuilder_.setMessage(value);
          }
        }
        exprCase_ = 4;
        return this;
      }
      /**
       * <code>.greptime.v1.DropTableExpr drop_table = 4;</code>
       */
      public Builder clearDropTable() {
        if (dropTableBuilder_ == null) {
          if (exprCase_ == 4) {
            exprCase_ = 0;
            expr_ = null;
            onChanged();
          }
        } else {
          if (exprCase_ == 4) {
            exprCase_ = 0;
            expr_ = null;
          }
          dropTableBuilder_.clear();
        }
        return this;
      }
      /**
       * <code>.greptime.v1.DropTableExpr drop_table = 4;</code>
       */
      public io.greptime.v1.Ddl.DropTableExpr.Builder getDropTableBuilder() {
        return getDropTableFieldBuilder().getBuilder();
      }
      /**
       * <code>.greptime.v1.DropTableExpr drop_table = 4;</code>
       */
      @java.lang.Override
      public io.greptime.v1.Ddl.DropTableExprOrBuilder getDropTableOrBuilder() {
        if ((exprCase_ == 4) && (dropTableBuilder_ != null)) {
          return dropTableBuilder_.getMessageOrBuilder();
        } else {
          if (exprCase_ == 4) {
            return (io.greptime.v1.Ddl.DropTableExpr) expr_;
          }
          return io.greptime.v1.Ddl.DropTableExpr.getDefaultInstance();
        }
      }
      /**
       * <code>.greptime.v1.DropTableExpr drop_table = 4;</code>
       */
      private com.google.protobuf.SingleFieldBuilderV3<
          io.greptime.v1.Ddl.DropTableExpr, io.greptime.v1.Ddl.DropTableExpr.Builder, io.greptime.v1.Ddl.DropTableExprOrBuilder> 
          getDropTableFieldBuilder() {
        if (dropTableBuilder_ == null) {
          if (!(exprCase_ == 4)) {
            expr_ = io.greptime.v1.Ddl.DropTableExpr.getDefaultInstance();
          }
          dropTableBuilder_ = new com.google.protobuf.SingleFieldBuilderV3<
              io.greptime.v1.Ddl.DropTableExpr, io.greptime.v1.Ddl.DropTableExpr.Builder, io.greptime.v1.Ddl.DropTableExprOrBuilder>(
                  (io.greptime.v1.Ddl.DropTableExpr) expr_,
                  getParentForChildren(),
                  isClean());
          expr_ = null;
        }
        exprCase_ = 4;
        onChanged();;
        return dropTableBuilder_;
      }

      private com.google.protobuf.SingleFieldBuilderV3<
          io.greptime.v1.Ddl.TruncateTableExpr, io.greptime.v1.Ddl.TruncateTableExpr.Builder, io.greptime.v1.Ddl.TruncateTableExprOrBuilder> truncateTableBuilder_;
      /**
       * <code>.greptime.v1.TruncateTableExpr truncate_table = 7;</code>
       * @return Whether the truncateTable field is set.
       */
      @java.lang.Override
      public boolean hasTruncateTable() {
        return exprCase_ == 7;
      }
      /**
       * <code>.greptime.v1.TruncateTableExpr truncate_table = 7;</code>
       * @return The truncateTable.
       */
      @java.lang.Override
      public io.greptime.v1.Ddl.TruncateTableExpr getTruncateTable() {
        if (truncateTableBuilder_ == null) {
          if (exprCase_ == 7) {
            return (io.greptime.v1.Ddl.TruncateTableExpr) expr_;
          }
          return io.greptime.v1.Ddl.TruncateTableExpr.getDefaultInstance();
        } else {
          if (exprCase_ == 7) {
            return truncateTableBuilder_.getMessage();
          }
          return io.greptime.v1.Ddl.TruncateTableExpr.getDefaultInstance();
        }
      }
      /**
       * <code>.greptime.v1.TruncateTableExpr truncate_table = 7;</code>
       */
      public Builder setTruncateTable(io.greptime.v1.Ddl.TruncateTableExpr value) {
        if (truncateTableBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          expr_ = value;
          onChanged();
        } else {
          truncateTableBuilder_.setMessage(value);
        }
        exprCase_ = 7;
        return this;
      }
      /**
       * <code>.greptime.v1.TruncateTableExpr truncate_table = 7;</code>
       */
      public Builder setTruncateTable(
          io.greptime.v1.Ddl.TruncateTableExpr.Builder builderForValue) {
        if (truncateTableBuilder_ == null) {
          expr_ = builderForValue.build();
          onChanged();
        } else {
          truncateTableBuilder_.setMessage(builderForValue.build());
        }
        exprCase_ = 7;
        return this;
      }
      /**
       * <code>.greptime.v1.TruncateTableExpr truncate_table = 7;</code>
       */
      public Builder mergeTruncateTable(io.greptime.v1.Ddl.TruncateTableExpr value) {
        if (truncateTableBuilder_ == null) {
          if (exprCase_ == 7 &&
              expr_ != io.greptime.v1.Ddl.TruncateTableExpr.getDefaultInstance()) {
            expr_ = io.greptime.v1.Ddl.TruncateTableExpr.newBuilder((io.greptime.v1.Ddl.TruncateTableExpr) expr_)
                .mergeFrom(value).buildPartial();
          } else {
            expr_ = value;
          }
          onChanged();
        } else {
          if (exprCase_ == 7) {
            truncateTableBuilder_.mergeFrom(value);
          } else {
            truncateTableBuilder_.setMessage(value);
          }
        }
        exprCase_ = 7;
        return this;
      }
      /**
       * <code>.greptime.v1.TruncateTableExpr truncate_table = 7;</code>
       */
      public Builder clearTruncateTable() {
        if (truncateTableBuilder_ == null) {
          if (exprCase_ == 7) {
            exprCase_ = 0;
            expr_ = null;
            onChanged();
          }
        } else {
          if (exprCase_ == 7) {
            exprCase_ = 0;
            expr_ = null;
          }
          truncateTableBuilder_.clear();
        }
        return this;
      }
      /**
       * <code>.greptime.v1.TruncateTableExpr truncate_table = 7;</code>
       */
      public io.greptime.v1.Ddl.TruncateTableExpr.Builder getTruncateTableBuilder() {
        return getTruncateTableFieldBuilder().getBuilder();
      }
      /**
       * <code>.greptime.v1.TruncateTableExpr truncate_table = 7;</code>
       */
      @java.lang.Override
      public io.greptime.v1.Ddl.TruncateTableExprOrBuilder getTruncateTableOrBuilder() {
        if ((exprCase_ == 7) && (truncateTableBuilder_ != null)) {
          return truncateTableBuilder_.getMessageOrBuilder();
        } else {
          if (exprCase_ == 7) {
            return (io.greptime.v1.Ddl.TruncateTableExpr) expr_;
          }
          return io.greptime.v1.Ddl.TruncateTableExpr.getDefaultInstance();
        }
      }
      /**
       * <code>.greptime.v1.TruncateTableExpr truncate_table = 7;</code>
       */
      private com.google.protobuf.SingleFieldBuilderV3<
          io.greptime.v1.Ddl.TruncateTableExpr, io.greptime.v1.Ddl.TruncateTableExpr.Builder, io.greptime.v1.Ddl.TruncateTableExprOrBuilder> 
          getTruncateTableFieldBuilder() {
        if (truncateTableBuilder_ == null) {
          if (!(exprCase_ == 7)) {
            expr_ = io.greptime.v1.Ddl.TruncateTableExpr.getDefaultInstance();
          }
          truncateTableBuilder_ = new com.google.protobuf.SingleFieldBuilderV3<
              io.greptime.v1.Ddl.TruncateTableExpr, io.greptime.v1.Ddl.TruncateTableExpr.Builder, io.greptime.v1.Ddl.TruncateTableExprOrBuilder>(
                  (io.greptime.v1.Ddl.TruncateTableExpr) expr_,
                  getParentForChildren(),
                  isClean());
          expr_ = null;
        }
        exprCase_ = 7;
        onChanged();;
        return truncateTableBuilder_;
      }

      private com.google.protobuf.SingleFieldBuilderV3<
          io.greptime.v1.Ddl.CreateFlowExpr, io.greptime.v1.Ddl.CreateFlowExpr.Builder, io.greptime.v1.Ddl.CreateFlowExprOrBuilder> createFlowBuilder_;
      /**
       * <code>.greptime.v1.CreateFlowExpr create_flow = 8;</code>
       * @return Whether the createFlow field is set.
       */
      @java.lang.Override
      public boolean hasCreateFlow() {
        return exprCase_ == 8;
      }
      /**
       * <code>.greptime.v1.CreateFlowExpr create_flow = 8;</code>
       * @return The createFlow.
       */
      @java.lang.Override
      public io.greptime.v1.Ddl.CreateFlowExpr getCreateFlow() {
        if (createFlowBuilder_ == null) {
          if (exprCase_ == 8) {
            return (io.greptime.v1.Ddl.CreateFlowExpr) expr_;
          }
          return io.greptime.v1.Ddl.CreateFlowExpr.getDefaultInstance();
        } else {
          if (exprCase_ == 8) {
            return createFlowBuilder_.getMessage();
          }
          return io.greptime.v1.Ddl.CreateFlowExpr.getDefaultInstance();
        }
      }
      /**
       * <code>.greptime.v1.CreateFlowExpr create_flow = 8;</code>
       */
      public Builder setCreateFlow(io.greptime.v1.Ddl.CreateFlowExpr value) {
        if (createFlowBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          expr_ = value;
          onChanged();
        } else {
          createFlowBuilder_.setMessage(value);
        }
        exprCase_ = 8;
        return this;
      }
      /**
       * <code>.greptime.v1.CreateFlowExpr create_flow = 8;</code>
       */
      public Builder setCreateFlow(
          io.greptime.v1.Ddl.CreateFlowExpr.Builder builderForValue) {
        if (createFlowBuilder_ == null) {
          expr_ = builderForValue.build();
          onChanged();
        } else {
          createFlowBuilder_.setMessage(builderForValue.build());
        }
        exprCase_ = 8;
        return this;
      }
      /**
       * <code>.greptime.v1.CreateFlowExpr create_flow = 8;</code>
       */
      public Builder mergeCreateFlow(io.greptime.v1.Ddl.CreateFlowExpr value) {
        if (createFlowBuilder_ == null) {
          if (exprCase_ == 8 &&
              expr_ != io.greptime.v1.Ddl.CreateFlowExpr.getDefaultInstance()) {
            expr_ = io.greptime.v1.Ddl.CreateFlowExpr.newBuilder((io.greptime.v1.Ddl.CreateFlowExpr) expr_)
                .mergeFrom(value).buildPartial();
          } else {
            expr_ = value;
          }
          onChanged();
        } else {
          if (exprCase_ == 8) {
            createFlowBuilder_.mergeFrom(value);
          } else {
            createFlowBuilder_.setMessage(value);
          }
        }
        exprCase_ = 8;
        return this;
      }
      /**
       * <code>.greptime.v1.CreateFlowExpr create_flow = 8;</code>
       */
      public Builder clearCreateFlow() {
        if (createFlowBuilder_ == null) {
          if (exprCase_ == 8) {
            exprCase_ = 0;
            expr_ = null;
            onChanged();
          }
        } else {
          if (exprCase_ == 8) {
            exprCase_ = 0;
            expr_ = null;
          }
          createFlowBuilder_.clear();
        }
        return this;
      }
      /**
       * <code>.greptime.v1.CreateFlowExpr create_flow = 8;</code>
       */
      public io.greptime.v1.Ddl.CreateFlowExpr.Builder getCreateFlowBuilder() {
        return getCreateFlowFieldBuilder().getBuilder();
      }
      /**
       * <code>.greptime.v1.CreateFlowExpr create_flow = 8;</code>
       */
      @java.lang.Override
      public io.greptime.v1.Ddl.CreateFlowExprOrBuilder getCreateFlowOrBuilder() {
        if ((exprCase_ == 8) && (createFlowBuilder_ != null)) {
          return createFlowBuilder_.getMessageOrBuilder();
        } else {
          if (exprCase_ == 8) {
            return (io.greptime.v1.Ddl.CreateFlowExpr) expr_;
          }
          return io.greptime.v1.Ddl.CreateFlowExpr.getDefaultInstance();
        }
      }
      /**
       * <code>.greptime.v1.CreateFlowExpr create_flow = 8;</code>
       */
      private com.google.protobuf.SingleFieldBuilderV3<
          io.greptime.v1.Ddl.CreateFlowExpr, io.greptime.v1.Ddl.CreateFlowExpr.Builder, io.greptime.v1.Ddl.CreateFlowExprOrBuilder> 
          getCreateFlowFieldBuilder() {
        if (createFlowBuilder_ == null) {
          if (!(exprCase_ == 8)) {
            expr_ = io.greptime.v1.Ddl.CreateFlowExpr.getDefaultInstance();
          }
          createFlowBuilder_ = new com.google.protobuf.SingleFieldBuilderV3<
              io.greptime.v1.Ddl.CreateFlowExpr, io.greptime.v1.Ddl.CreateFlowExpr.Builder, io.greptime.v1.Ddl.CreateFlowExprOrBuilder>(
                  (io.greptime.v1.Ddl.CreateFlowExpr) expr_,
                  getParentForChildren(),
                  isClean());
          expr_ = null;
        }
        exprCase_ = 8;
        onChanged();;
        return createFlowBuilder_;
      }

      private com.google.protobuf.SingleFieldBuilderV3<
          io.greptime.v1.Ddl.DropFlowExpr, io.greptime.v1.Ddl.DropFlowExpr.Builder, io.greptime.v1.Ddl.DropFlowExprOrBuilder> dropFlowBuilder_;
      /**
       * <code>.greptime.v1.DropFlowExpr drop_flow = 9;</code>
       * @return Whether the dropFlow field is set.
       */
      @java.lang.Override
      public boolean hasDropFlow() {
        return exprCase_ == 9;
      }
      /**
       * <code>.greptime.v1.DropFlowExpr drop_flow = 9;</code>
       * @return The dropFlow.
       */
      @java.lang.Override
      public io.greptime.v1.Ddl.DropFlowExpr getDropFlow() {
        if (dropFlowBuilder_ == null) {
          if (exprCase_ == 9) {
            return (io.greptime.v1.Ddl.DropFlowExpr) expr_;
          }
          return io.greptime.v1.Ddl.DropFlowExpr.getDefaultInstance();
        } else {
          if (exprCase_ == 9) {
            return dropFlowBuilder_.getMessage();
          }
          return io.greptime.v1.Ddl.DropFlowExpr.getDefaultInstance();
        }
      }
      /**
       * <code>.greptime.v1.DropFlowExpr drop_flow = 9;</code>
       */
      public Builder setDropFlow(io.greptime.v1.Ddl.DropFlowExpr value) {
        if (dropFlowBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          expr_ = value;
          onChanged();
        } else {
          dropFlowBuilder_.setMessage(value);
        }
        exprCase_ = 9;
        return this;
      }
      /**
       * <code>.greptime.v1.DropFlowExpr drop_flow = 9;</code>
       */
      public Builder setDropFlow(
          io.greptime.v1.Ddl.DropFlowExpr.Builder builderForValue) {
        if (dropFlowBuilder_ == null) {
          expr_ = builderForValue.build();
          onChanged();
        } else {
          dropFlowBuilder_.setMessage(builderForValue.build());
        }
        exprCase_ = 9;
        return this;
      }
      /**
       * <code>.greptime.v1.DropFlowExpr drop_flow = 9;</code>
       */
      public Builder mergeDropFlow(io.greptime.v1.Ddl.DropFlowExpr value) {
        if (dropFlowBuilder_ == null) {
          if (exprCase_ == 9 &&
              expr_ != io.greptime.v1.Ddl.DropFlowExpr.getDefaultInstance()) {
            expr_ = io.greptime.v1.Ddl.DropFlowExpr.newBuilder((io.greptime.v1.Ddl.DropFlowExpr) expr_)
                .mergeFrom(value).buildPartial();
          } else {
            expr_ = value;
          }
          onChanged();
        } else {
          if (exprCase_ == 9) {
            dropFlowBuilder_.mergeFrom(value);
          } else {
            dropFlowBuilder_.setMessage(value);
          }
        }
        exprCase_ = 9;
        return this;
      }
      /**
       * <code>.greptime.v1.DropFlowExpr drop_flow = 9;</code>
       */
      public Builder clearDropFlow() {
        if (dropFlowBuilder_ == null) {
          if (exprCase_ == 9) {
            exprCase_ = 0;
            expr_ = null;
            onChanged();
          }
        } else {
          if (exprCase_ == 9) {
            exprCase_ = 0;
            expr_ = null;
          }
          dropFlowBuilder_.clear();
        }
        return this;
      }
      /**
       * <code>.greptime.v1.DropFlowExpr drop_flow = 9;</code>
       */
      public io.greptime.v1.Ddl.DropFlowExpr.Builder getDropFlowBuilder() {
        return getDropFlowFieldBuilder().getBuilder();
      }
      /**
       * <code>.greptime.v1.DropFlowExpr drop_flow = 9;</code>
       */
      @java.lang.Override
      public io.greptime.v1.Ddl.DropFlowExprOrBuilder getDropFlowOrBuilder() {
        if ((exprCase_ == 9) && (dropFlowBuilder_ != null)) {
          return dropFlowBuilder_.getMessageOrBuilder();
        } else {
          if (exprCase_ == 9) {
            return (io.greptime.v1.Ddl.DropFlowExpr) expr_;
          }
          return io.greptime.v1.Ddl.DropFlowExpr.getDefaultInstance();
        }
      }
      /**
       * <code>.greptime.v1.DropFlowExpr drop_flow = 9;</code>
       */
      private com.google.protobuf.SingleFieldBuilderV3<
          io.greptime.v1.Ddl.DropFlowExpr, io.greptime.v1.Ddl.DropFlowExpr.Builder, io.greptime.v1.Ddl.DropFlowExprOrBuilder> 
          getDropFlowFieldBuilder() {
        if (dropFlowBuilder_ == null) {
          if (!(exprCase_ == 9)) {
            expr_ = io.greptime.v1.Ddl.DropFlowExpr.getDefaultInstance();
          }
          dropFlowBuilder_ = new com.google.protobuf.SingleFieldBuilderV3<
              io.greptime.v1.Ddl.DropFlowExpr, io.greptime.v1.Ddl.DropFlowExpr.Builder, io.greptime.v1.Ddl.DropFlowExprOrBuilder>(
                  (io.greptime.v1.Ddl.DropFlowExpr) expr_,
                  getParentForChildren(),
                  isClean());
          expr_ = null;
        }
        exprCase_ = 9;
        onChanged();;
        return dropFlowBuilder_;
      }

      private com.google.protobuf.SingleFieldBuilderV3<
          io.greptime.v1.Ddl.CreateViewExpr, io.greptime.v1.Ddl.CreateViewExpr.Builder, io.greptime.v1.Ddl.CreateViewExprOrBuilder> createViewBuilder_;
      /**
       * <code>.greptime.v1.CreateViewExpr create_view = 10;</code>
       * @return Whether the createView field is set.
       */
      @java.lang.Override
      public boolean hasCreateView() {
        return exprCase_ == 10;
      }
      /**
       * <code>.greptime.v1.CreateViewExpr create_view = 10;</code>
       * @return The createView.
       */
      @java.lang.Override
      public io.greptime.v1.Ddl.CreateViewExpr getCreateView() {
        if (createViewBuilder_ == null) {
          if (exprCase_ == 10) {
            return (io.greptime.v1.Ddl.CreateViewExpr) expr_;
          }
          return io.greptime.v1.Ddl.CreateViewExpr.getDefaultInstance();
        } else {
          if (exprCase_ == 10) {
            return createViewBuilder_.getMessage();
          }
          return io.greptime.v1.Ddl.CreateViewExpr.getDefaultInstance();
        }
      }
      /**
       * <code>.greptime.v1.CreateViewExpr create_view = 10;</code>
       */
      public Builder setCreateView(io.greptime.v1.Ddl.CreateViewExpr value) {
        if (createViewBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          expr_ = value;
          onChanged();
        } else {
          createViewBuilder_.setMessage(value);
        }
        exprCase_ = 10;
        return this;
      }
      /**
       * <code>.greptime.v1.CreateViewExpr create_view = 10;</code>
       */
      public Builder setCreateView(
          io.greptime.v1.Ddl.CreateViewExpr.Builder builderForValue) {
        if (createViewBuilder_ == null) {
          expr_ = builderForValue.build();
          onChanged();
        } else {
          createViewBuilder_.setMessage(builderForValue.build());
        }
        exprCase_ = 10;
        return this;
      }
      /**
       * <code>.greptime.v1.CreateViewExpr create_view = 10;</code>
       */
      public Builder mergeCreateView(io.greptime.v1.Ddl.CreateViewExpr value) {
        if (createViewBuilder_ == null) {
          if (exprCase_ == 10 &&
              expr_ != io.greptime.v1.Ddl.CreateViewExpr.getDefaultInstance()) {
            expr_ = io.greptime.v1.Ddl.CreateViewExpr.newBuilder((io.greptime.v1.Ddl.CreateViewExpr) expr_)
                .mergeFrom(value).buildPartial();
          } else {
            expr_ = value;
          }
          onChanged();
        } else {
          if (exprCase_ == 10) {
            createViewBuilder_.mergeFrom(value);
          } else {
            createViewBuilder_.setMessage(value);
          }
        }
        exprCase_ = 10;
        return this;
      }
      /**
       * <code>.greptime.v1.CreateViewExpr create_view = 10;</code>
       */
      public Builder clearCreateView() {
        if (createViewBuilder_ == null) {
          if (exprCase_ == 10) {
            exprCase_ = 0;
            expr_ = null;
            onChanged();
          }
        } else {
          if (exprCase_ == 10) {
            exprCase_ = 0;
            expr_ = null;
          }
          createViewBuilder_.clear();
        }
        return this;
      }
      /**
       * <code>.greptime.v1.CreateViewExpr create_view = 10;</code>
       */
      public io.greptime.v1.Ddl.CreateViewExpr.Builder getCreateViewBuilder() {
        return getCreateViewFieldBuilder().getBuilder();
      }
      /**
       * <code>.greptime.v1.CreateViewExpr create_view = 10;</code>
       */
      @java.lang.Override
      public io.greptime.v1.Ddl.CreateViewExprOrBuilder getCreateViewOrBuilder() {
        if ((exprCase_ == 10) && (createViewBuilder_ != null)) {
          return createViewBuilder_.getMessageOrBuilder();
        } else {
          if (exprCase_ == 10) {
            return (io.greptime.v1.Ddl.CreateViewExpr) expr_;
          }
          return io.greptime.v1.Ddl.CreateViewExpr.getDefaultInstance();
        }
      }
      /**
       * <code>.greptime.v1.CreateViewExpr create_view = 10;</code>
       */
      private com.google.protobuf.SingleFieldBuilderV3<
          io.greptime.v1.Ddl.CreateViewExpr, io.greptime.v1.Ddl.CreateViewExpr.Builder, io.greptime.v1.Ddl.CreateViewExprOrBuilder> 
          getCreateViewFieldBuilder() {
        if (createViewBuilder_ == null) {
          if (!(exprCase_ == 10)) {
            expr_ = io.greptime.v1.Ddl.CreateViewExpr.getDefaultInstance();
          }
          createViewBuilder_ = new com.google.protobuf.SingleFieldBuilderV3<
              io.greptime.v1.Ddl.CreateViewExpr, io.greptime.v1.Ddl.CreateViewExpr.Builder, io.greptime.v1.Ddl.CreateViewExprOrBuilder>(
                  (io.greptime.v1.Ddl.CreateViewExpr) expr_,
                  getParentForChildren(),
                  isClean());
          expr_ = null;
        }
        exprCase_ = 10;
        onChanged();;
        return createViewBuilder_;
      }

      private com.google.protobuf.SingleFieldBuilderV3<
          io.greptime.v1.Ddl.DropViewExpr, io.greptime.v1.Ddl.DropViewExpr.Builder, io.greptime.v1.Ddl.DropViewExprOrBuilder> dropViewBuilder_;
      /**
       * <code>.greptime.v1.DropViewExpr drop_view = 11;</code>
       * @return Whether the dropView field is set.
       */
      @java.lang.Override
      public boolean hasDropView() {
        return exprCase_ == 11;
      }
      /**
       * <code>.greptime.v1.DropViewExpr drop_view = 11;</code>
       * @return The dropView.
       */
      @java.lang.Override
      public io.greptime.v1.Ddl.DropViewExpr getDropView() {
        if (dropViewBuilder_ == null) {
          if (exprCase_ == 11) {
            return (io.greptime.v1.Ddl.DropViewExpr) expr_;
          }
          return io.greptime.v1.Ddl.DropViewExpr.getDefaultInstance();
        } else {
          if (exprCase_ == 11) {
            return dropViewBuilder_.getMessage();
          }
          return io.greptime.v1.Ddl.DropViewExpr.getDefaultInstance();
        }
      }
      /**
       * <code>.greptime.v1.DropViewExpr drop_view = 11;</code>
       */
      public Builder setDropView(io.greptime.v1.Ddl.DropViewExpr value) {
        if (dropViewBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          expr_ = value;
          onChanged();
        } else {
          dropViewBuilder_.setMessage(value);
        }
        exprCase_ = 11;
        return this;
      }
      /**
       * <code>.greptime.v1.DropViewExpr drop_view = 11;</code>
       */
      public Builder setDropView(
          io.greptime.v1.Ddl.DropViewExpr.Builder builderForValue) {
        if (dropViewBuilder_ == null) {
          expr_ = builderForValue.build();
          onChanged();
        } else {
          dropViewBuilder_.setMessage(builderForValue.build());
        }
        exprCase_ = 11;
        return this;
      }
      /**
       * <code>.greptime.v1.DropViewExpr drop_view = 11;</code>
       */
      public Builder mergeDropView(io.greptime.v1.Ddl.DropViewExpr value) {
        if (dropViewBuilder_ == null) {
          if (exprCase_ == 11 &&
              expr_ != io.greptime.v1.Ddl.DropViewExpr.getDefaultInstance()) {
            expr_ = io.greptime.v1.Ddl.DropViewExpr.newBuilder((io.greptime.v1.Ddl.DropViewExpr) expr_)
                .mergeFrom(value).buildPartial();
          } else {
            expr_ = value;
          }
          onChanged();
        } else {
          if (exprCase_ == 11) {
            dropViewBuilder_.mergeFrom(value);
          } else {
            dropViewBuilder_.setMessage(value);
          }
        }
        exprCase_ = 11;
        return this;
      }
      /**
       * <code>.greptime.v1.DropViewExpr drop_view = 11;</code>
       */
      public Builder clearDropView() {
        if (dropViewBuilder_ == null) {
          if (exprCase_ == 11) {
            exprCase_ = 0;
            expr_ = null;
            onChanged();
          }
        } else {
          if (exprCase_ == 11) {
            exprCase_ = 0;
            expr_ = null;
          }
          dropViewBuilder_.clear();
        }
        return this;
      }
      /**
       * <code>.greptime.v1.DropViewExpr drop_view = 11;</code>
       */
      public io.greptime.v1.Ddl.DropViewExpr.Builder getDropViewBuilder() {
        return getDropViewFieldBuilder().getBuilder();
      }
      /**
       * <code>.greptime.v1.DropViewExpr drop_view = 11;</code>
       */
      @java.lang.Override
      public io.greptime.v1.Ddl.DropViewExprOrBuilder getDropViewOrBuilder() {
        if ((exprCase_ == 11) && (dropViewBuilder_ != null)) {
          return dropViewBuilder_.getMessageOrBuilder();
        } else {
          if (exprCase_ == 11) {
            return (io.greptime.v1.Ddl.DropViewExpr) expr_;
          }
          return io.greptime.v1.Ddl.DropViewExpr.getDefaultInstance();
        }
      }
      /**
       * <code>.greptime.v1.DropViewExpr drop_view = 11;</code>
       */
      private com.google.protobuf.SingleFieldBuilderV3<
          io.greptime.v1.Ddl.DropViewExpr, io.greptime.v1.Ddl.DropViewExpr.Builder, io.greptime.v1.Ddl.DropViewExprOrBuilder> 
          getDropViewFieldBuilder() {
        if (dropViewBuilder_ == null) {
          if (!(exprCase_ == 11)) {
            expr_ = io.greptime.v1.Ddl.DropViewExpr.getDefaultInstance();
          }
          dropViewBuilder_ = new com.google.protobuf.SingleFieldBuilderV3<
              io.greptime.v1.Ddl.DropViewExpr, io.greptime.v1.Ddl.DropViewExpr.Builder, io.greptime.v1.Ddl.DropViewExprOrBuilder>(
                  (io.greptime.v1.Ddl.DropViewExpr) expr_,
                  getParentForChildren(),
                  isClean());
          expr_ = null;
        }
        exprCase_ = 11;
        onChanged();;
        return dropViewBuilder_;
      }

      private com.google.protobuf.SingleFieldBuilderV3<
          io.greptime.v1.Ddl.AlterDatabaseExpr, io.greptime.v1.Ddl.AlterDatabaseExpr.Builder, io.greptime.v1.Ddl.AlterDatabaseExprOrBuilder> alterDatabaseBuilder_;
      /**
       * <code>.greptime.v1.AlterDatabaseExpr alter_database = 12;</code>
       * @return Whether the alterDatabase field is set.
       */
      @java.lang.Override
      public boolean hasAlterDatabase() {
        return exprCase_ == 12;
      }
      /**
       * <code>.greptime.v1.AlterDatabaseExpr alter_database = 12;</code>
       * @return The alterDatabase.
       */
      @java.lang.Override
      public io.greptime.v1.Ddl.AlterDatabaseExpr getAlterDatabase() {
        if (alterDatabaseBuilder_ == null) {
          if (exprCase_ == 12) {
            return (io.greptime.v1.Ddl.AlterDatabaseExpr) expr_;
          }
          return io.greptime.v1.Ddl.AlterDatabaseExpr.getDefaultInstance();
        } else {
          if (exprCase_ == 12) {
            return alterDatabaseBuilder_.getMessage();
          }
          return io.greptime.v1.Ddl.AlterDatabaseExpr.getDefaultInstance();
        }
      }
      /**
       * <code>.greptime.v1.AlterDatabaseExpr alter_database = 12;</code>
       */
      public Builder setAlterDatabase(io.greptime.v1.Ddl.AlterDatabaseExpr value) {
        if (alterDatabaseBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          expr_ = value;
          onChanged();
        } else {
          alterDatabaseBuilder_.setMessage(value);
        }
        exprCase_ = 12;
        return this;
      }
      /**
       * <code>.greptime.v1.AlterDatabaseExpr alter_database = 12;</code>
       */
      public Builder setAlterDatabase(
          io.greptime.v1.Ddl.AlterDatabaseExpr.Builder builderForValue) {
        if (alterDatabaseBuilder_ == null) {
          expr_ = builderForValue.build();
          onChanged();
        } else {
          alterDatabaseBuilder_.setMessage(builderForValue.build());
        }
        exprCase_ = 12;
        return this;
      }
      /**
       * <code>.greptime.v1.AlterDatabaseExpr alter_database = 12;</code>
       */
      public Builder mergeAlterDatabase(io.greptime.v1.Ddl.AlterDatabaseExpr value) {
        if (alterDatabaseBuilder_ == null) {
          if (exprCase_ == 12 &&
              expr_ != io.greptime.v1.Ddl.AlterDatabaseExpr.getDefaultInstance()) {
            expr_ = io.greptime.v1.Ddl.AlterDatabaseExpr.newBuilder((io.greptime.v1.Ddl.AlterDatabaseExpr) expr_)
                .mergeFrom(value).buildPartial();
          } else {
            expr_ = value;
          }
          onChanged();
        } else {
          if (exprCase_ == 12) {
            alterDatabaseBuilder_.mergeFrom(value);
          } else {
            alterDatabaseBuilder_.setMessage(value);
          }
        }
        exprCase_ = 12;
        return this;
      }
      /**
       * <code>.greptime.v1.AlterDatabaseExpr alter_database = 12;</code>
       */
      public Builder clearAlterDatabase() {
        if (alterDatabaseBuilder_ == null) {
          if (exprCase_ == 12) {
            exprCase_ = 0;
            expr_ = null;
            onChanged();
          }
        } else {
          if (exprCase_ == 12) {
            exprCase_ = 0;
            expr_ = null;
          }
          alterDatabaseBuilder_.clear();
        }
        return this;
      }
      /**
       * <code>.greptime.v1.AlterDatabaseExpr alter_database = 12;</code>
       */
      public io.greptime.v1.Ddl.AlterDatabaseExpr.Builder getAlterDatabaseBuilder() {
        return getAlterDatabaseFieldBuilder().getBuilder();
      }
      /**
       * <code>.greptime.v1.AlterDatabaseExpr alter_database = 12;</code>
       */
      @java.lang.Override
      public io.greptime.v1.Ddl.AlterDatabaseExprOrBuilder getAlterDatabaseOrBuilder() {
        if ((exprCase_ == 12) && (alterDatabaseBuilder_ != null)) {
          return alterDatabaseBuilder_.getMessageOrBuilder();
        } else {
          if (exprCase_ == 12) {
            return (io.greptime.v1.Ddl.AlterDatabaseExpr) expr_;
          }
          return io.greptime.v1.Ddl.AlterDatabaseExpr.getDefaultInstance();
        }
      }
      /**
       * <code>.greptime.v1.AlterDatabaseExpr alter_database = 12;</code>
       */
      private com.google.protobuf.SingleFieldBuilderV3<
          io.greptime.v1.Ddl.AlterDatabaseExpr, io.greptime.v1.Ddl.AlterDatabaseExpr.Builder, io.greptime.v1.Ddl.AlterDatabaseExprOrBuilder> 
          getAlterDatabaseFieldBuilder() {
        if (alterDatabaseBuilder_ == null) {
          if (!(exprCase_ == 12)) {
            expr_ = io.greptime.v1.Ddl.AlterDatabaseExpr.getDefaultInstance();
          }
          alterDatabaseBuilder_ = new com.google.protobuf.SingleFieldBuilderV3<
              io.greptime.v1.Ddl.AlterDatabaseExpr, io.greptime.v1.Ddl.AlterDatabaseExpr.Builder, io.greptime.v1.Ddl.AlterDatabaseExprOrBuilder>(
                  (io.greptime.v1.Ddl.AlterDatabaseExpr) expr_,
                  getParentForChildren(),
                  isClean());
          expr_ = null;
        }
        exprCase_ = 12;
        onChanged();;
        return alterDatabaseBuilder_;
      }
      @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.DdlRequest)
    }

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

    public static io.greptime.v1.Ddl.DdlRequest getDefaultInstance() {
      return DEFAULT_INSTANCE;
    }

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

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

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

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

  }

  public interface CreateFlowExprOrBuilder extends
      // @@protoc_insertion_point(interface_extends:greptime.v1.CreateFlowExpr)
      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 flow_name = 2;</code>
     * @return The flowName.
     */
    java.lang.String getFlowName();
    /**
     * <code>string flow_name = 2;</code>
     * @return The bytes for flowName.
     */
    com.google.protobuf.ByteString
        getFlowNameBytes();

    /**
     * <code>repeated .greptime.v1.TableName source_table_names = 3;</code>
     */
    java.util.List<io.greptime.v1.Common.TableName> 
        getSourceTableNamesList();
    /**
     * <code>repeated .greptime.v1.TableName source_table_names = 3;</code>
     */
    io.greptime.v1.Common.TableName getSourceTableNames(int index);
    /**
     * <code>repeated .greptime.v1.TableName source_table_names = 3;</code>
     */
    int getSourceTableNamesCount();
    /**
     * <code>repeated .greptime.v1.TableName source_table_names = 3;</code>
     */
    java.util.List<? extends io.greptime.v1.Common.TableNameOrBuilder> 
        getSourceTableNamesOrBuilderList();
    /**
     * <code>repeated .greptime.v1.TableName source_table_names = 3;</code>
     */
    io.greptime.v1.Common.TableNameOrBuilder getSourceTableNamesOrBuilder(
        int index);

    /**
     * <code>.greptime.v1.TableName sink_table_name = 4;</code>
     * @return Whether the sinkTableName field is set.
     */
    boolean hasSinkTableName();
    /**
     * <code>.greptime.v1.TableName sink_table_name = 4;</code>
     * @return The sinkTableName.
     */
    io.greptime.v1.Common.TableName getSinkTableName();
    /**
     * <code>.greptime.v1.TableName sink_table_name = 4;</code>
     */
    io.greptime.v1.Common.TableNameOrBuilder getSinkTableNameOrBuilder();

    /**
     * <code>bool or_replace = 5;</code>
     * @return The orReplace.
     */
    boolean getOrReplace();

    /**
     * <code>bool create_if_not_exists = 6;</code>
     * @return The createIfNotExists.
     */
    boolean getCreateIfNotExists();

    /**
     * <pre>
     * Expire data older than the given duration seconds.
     * </pre>
     *
     * <code>.greptime.v1.ExpireAfter expire_after = 7;</code>
     * @return Whether the expireAfter field is set.
     */
    boolean hasExpireAfter();
    /**
     * <pre>
     * Expire data older than the given duration seconds.
     * </pre>
     *
     * <code>.greptime.v1.ExpireAfter expire_after = 7;</code>
     * @return The expireAfter.
     */
    io.greptime.v1.Common.ExpireAfter getExpireAfter();
    /**
     * <pre>
     * Expire data older than the given duration seconds.
     * </pre>
     *
     * <code>.greptime.v1.ExpireAfter expire_after = 7;</code>
     */
    io.greptime.v1.Common.ExpireAfterOrBuilder getExpireAfterOrBuilder();

    /**
     * <code>string comment = 8;</code>
     * @return The comment.
     */
    java.lang.String getComment();
    /**
     * <code>string comment = 8;</code>
     * @return The bytes for comment.
     */
    com.google.protobuf.ByteString
        getCommentBytes();

    /**
     * <code>string sql = 9;</code>
     * @return The sql.
     */
    java.lang.String getSql();
    /**
     * <code>string sql = 9;</code>
     * @return The bytes for sql.
     */
    com.google.protobuf.ByteString
        getSqlBytes();

    /**
     * <code>map&lt;string, string&gt; flow_options = 10;</code>
     */
    int getFlowOptionsCount();
    /**
     * <code>map&lt;string, string&gt; flow_options = 10;</code>
     */
    boolean containsFlowOptions(
        java.lang.String key);
    /**
     * Use {@link #getFlowOptionsMap()} instead.
     */
    @java.lang.Deprecated
    java.util.Map<java.lang.String, java.lang.String>
    getFlowOptions();
    /**
     * <code>map&lt;string, string&gt; flow_options = 10;</code>
     */
    java.util.Map<java.lang.String, java.lang.String>
    getFlowOptionsMap();
    /**
     * <code>map&lt;string, string&gt; flow_options = 10;</code>
     */

    /* nullable */
java.lang.String getFlowOptionsOrDefault(
        java.lang.String key,
        /* nullable */
java.lang.String defaultValue);
    /**
     * <code>map&lt;string, string&gt; flow_options = 10;</code>
     */

    java.lang.String getFlowOptionsOrThrow(
        java.lang.String key);
  }
  /**
   * <pre>
   * Create a flow to run the SQL when new data arrives.
   * </pre>
   *
   * Protobuf type {@code greptime.v1.CreateFlowExpr}
   */
  public static final class CreateFlowExpr extends
      com.google.protobuf.GeneratedMessageV3 implements
      // @@protoc_insertion_point(message_implements:greptime.v1.CreateFlowExpr)
      CreateFlowExprOrBuilder {
  private static final long serialVersionUID = 0L;
    // Use CreateFlowExpr.newBuilder() to construct.
    private CreateFlowExpr(com.google.protobuf.GeneratedMessageV3.Builder<?> builder) {
      super(builder);
    }
    private CreateFlowExpr() {
      catalogName_ = "";
      flowName_ = "";
      sourceTableNames_ = java.util.Collections.emptyList();
      comment_ = "";
      sql_ = "";
    }

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

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

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

              flowName_ = s;
              break;
            }
            case 26: {
              if (!((mutable_bitField0_ & 0x00000001) != 0)) {
                sourceTableNames_ = new java.util.ArrayList<io.greptime.v1.Common.TableName>();
                mutable_bitField0_ |= 0x00000001;
              }
              sourceTableNames_.add(
                  input.readMessage(io.greptime.v1.Common.TableName.parser(), extensionRegistry));
              break;
            }
            case 34: {
              io.greptime.v1.Common.TableName.Builder subBuilder = null;
              if (sinkTableName_ != null) {
                subBuilder = sinkTableName_.toBuilder();
              }
              sinkTableName_ = input.readMessage(io.greptime.v1.Common.TableName.parser(), extensionRegistry);
              if (subBuilder != null) {
                subBuilder.mergeFrom(sinkTableName_);
                sinkTableName_ = subBuilder.buildPartial();
              }

              break;
            }
            case 40: {

              orReplace_ = input.readBool();
              break;
            }
            case 48: {

              createIfNotExists_ = input.readBool();
              break;
            }
            case 58: {
              io.greptime.v1.Common.ExpireAfter.Builder subBuilder = null;
              if (expireAfter_ != null) {
                subBuilder = expireAfter_.toBuilder();
              }
              expireAfter_ = input.readMessage(io.greptime.v1.Common.ExpireAfter.parser(), extensionRegistry);
              if (subBuilder != null) {
                subBuilder.mergeFrom(expireAfter_);
                expireAfter_ = subBuilder.buildPartial();
              }

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

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

              sql_ = s;
              break;
            }
            case 82: {
              if (!((mutable_bitField0_ & 0x00000002) != 0)) {
                flowOptions_ = com.google.protobuf.MapField.newMapField(
                    FlowOptionsDefaultEntryHolder.defaultEntry);
                mutable_bitField0_ |= 0x00000002;
              }
              com.google.protobuf.MapEntry<java.lang.String, java.lang.String>
              flowOptions__ = input.readMessage(
                  FlowOptionsDefaultEntryHolder.defaultEntry.getParserForType(), extensionRegistry);
              flowOptions_.getMutableMap().put(
                  flowOptions__.getKey(), flowOptions__.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 {
        if (((mutable_bitField0_ & 0x00000001) != 0)) {
          sourceTableNames_ = java.util.Collections.unmodifiableList(sourceTableNames_);
        }
        this.unknownFields = unknownFields.build();
        makeExtensionsImmutable();
      }
    }
    public static final com.google.protobuf.Descriptors.Descriptor
        getDescriptor() {
      return io.greptime.v1.Ddl.internal_static_greptime_v1_CreateFlowExpr_descriptor;
    }

    @SuppressWarnings({"rawtypes"})
    @java.lang.Override
    protected com.google.protobuf.MapField internalGetMapField(
        int number) {
      switch (number) {
        case 10:
          return internalGetFlowOptions();
        default:
          throw new RuntimeException(
              "Invalid map field number: " + number);
      }
    }
    @java.lang.Override
    protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
        internalGetFieldAccessorTable() {
      return io.greptime.v1.Ddl.internal_static_greptime_v1_CreateFlowExpr_fieldAccessorTable
          .ensureFieldAccessorsInitialized(
              io.greptime.v1.Ddl.CreateFlowExpr.class, io.greptime.v1.Ddl.CreateFlowExpr.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 FLOW_NAME_FIELD_NUMBER = 2;
    private volatile java.lang.Object flowName_;
    /**
     * <code>string flow_name = 2;</code>
     * @return The flowName.
     */
    @java.lang.Override
    public java.lang.String getFlowName() {
      java.lang.Object ref = flowName_;
      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();
        flowName_ = s;
        return s;
      }
    }
    /**
     * <code>string flow_name = 2;</code>
     * @return The bytes for flowName.
     */
    @java.lang.Override
    public com.google.protobuf.ByteString
        getFlowNameBytes() {
      java.lang.Object ref = flowName_;
      if (ref instanceof java.lang.String) {
        com.google.protobuf.ByteString b = 
            com.google.protobuf.ByteString.copyFromUtf8(
                (java.lang.String) ref);
        flowName_ = b;
        return b;
      } else {
        return (com.google.protobuf.ByteString) ref;
      }
    }

    public static final int SOURCE_TABLE_NAMES_FIELD_NUMBER = 3;
    private java.util.List<io.greptime.v1.Common.TableName> sourceTableNames_;
    /**
     * <code>repeated .greptime.v1.TableName source_table_names = 3;</code>
     */
    @java.lang.Override
    public java.util.List<io.greptime.v1.Common.TableName> getSourceTableNamesList() {
      return sourceTableNames_;
    }
    /**
     * <code>repeated .greptime.v1.TableName source_table_names = 3;</code>
     */
    @java.lang.Override
    public java.util.List<? extends io.greptime.v1.Common.TableNameOrBuilder> 
        getSourceTableNamesOrBuilderList() {
      return sourceTableNames_;
    }
    /**
     * <code>repeated .greptime.v1.TableName source_table_names = 3;</code>
     */
    @java.lang.Override
    public int getSourceTableNamesCount() {
      return sourceTableNames_.size();
    }
    /**
     * <code>repeated .greptime.v1.TableName source_table_names = 3;</code>
     */
    @java.lang.Override
    public io.greptime.v1.Common.TableName getSourceTableNames(int index) {
      return sourceTableNames_.get(index);
    }
    /**
     * <code>repeated .greptime.v1.TableName source_table_names = 3;</code>
     */
    @java.lang.Override
    public io.greptime.v1.Common.TableNameOrBuilder getSourceTableNamesOrBuilder(
        int index) {
      return sourceTableNames_.get(index);
    }

    public static final int SINK_TABLE_NAME_FIELD_NUMBER = 4;
    private io.greptime.v1.Common.TableName sinkTableName_;
    /**
     * <code>.greptime.v1.TableName sink_table_name = 4;</code>
     * @return Whether the sinkTableName field is set.
     */
    @java.lang.Override
    public boolean hasSinkTableName() {
      return sinkTableName_ != null;
    }
    /**
     * <code>.greptime.v1.TableName sink_table_name = 4;</code>
     * @return The sinkTableName.
     */
    @java.lang.Override
    public io.greptime.v1.Common.TableName getSinkTableName() {
      return sinkTableName_ == null ? io.greptime.v1.Common.TableName.getDefaultInstance() : sinkTableName_;
    }
    /**
     * <code>.greptime.v1.TableName sink_table_name = 4;</code>
     */
    @java.lang.Override
    public io.greptime.v1.Common.TableNameOrBuilder getSinkTableNameOrBuilder() {
      return getSinkTableName();
    }

    public static final int OR_REPLACE_FIELD_NUMBER = 5;
    private boolean orReplace_;
    /**
     * <code>bool or_replace = 5;</code>
     * @return The orReplace.
     */
    @java.lang.Override
    public boolean getOrReplace() {
      return orReplace_;
    }

    public static final int CREATE_IF_NOT_EXISTS_FIELD_NUMBER = 6;
    private boolean createIfNotExists_;
    /**
     * <code>bool create_if_not_exists = 6;</code>
     * @return The createIfNotExists.
     */
    @java.lang.Override
    public boolean getCreateIfNotExists() {
      return createIfNotExists_;
    }

    public static final int EXPIRE_AFTER_FIELD_NUMBER = 7;
    private io.greptime.v1.Common.ExpireAfter expireAfter_;
    /**
     * <pre>
     * Expire data older than the given duration seconds.
     * </pre>
     *
     * <code>.greptime.v1.ExpireAfter expire_after = 7;</code>
     * @return Whether the expireAfter field is set.
     */
    @java.lang.Override
    public boolean hasExpireAfter() {
      return expireAfter_ != null;
    }
    /**
     * <pre>
     * Expire data older than the given duration seconds.
     * </pre>
     *
     * <code>.greptime.v1.ExpireAfter expire_after = 7;</code>
     * @return The expireAfter.
     */
    @java.lang.Override
    public io.greptime.v1.Common.ExpireAfter getExpireAfter() {
      return expireAfter_ == null ? io.greptime.v1.Common.ExpireAfter.getDefaultInstance() : expireAfter_;
    }
    /**
     * <pre>
     * Expire data older than the given duration seconds.
     * </pre>
     *
     * <code>.greptime.v1.ExpireAfter expire_after = 7;</code>
     */
    @java.lang.Override
    public io.greptime.v1.Common.ExpireAfterOrBuilder getExpireAfterOrBuilder() {
      return getExpireAfter();
    }

    public static final int COMMENT_FIELD_NUMBER = 8;
    private volatile java.lang.Object comment_;
    /**
     * <code>string comment = 8;</code>
     * @return The comment.
     */
    @java.lang.Override
    public java.lang.String getComment() {
      java.lang.Object ref = comment_;
      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();
        comment_ = s;
        return s;
      }
    }
    /**
     * <code>string comment = 8;</code>
     * @return The bytes for comment.
     */
    @java.lang.Override
    public com.google.protobuf.ByteString
        getCommentBytes() {
      java.lang.Object ref = comment_;
      if (ref instanceof java.lang.String) {
        com.google.protobuf.ByteString b = 
            com.google.protobuf.ByteString.copyFromUtf8(
                (java.lang.String) ref);
        comment_ = b;
        return b;
      } else {
        return (com.google.protobuf.ByteString) ref;
      }
    }

    public static final int SQL_FIELD_NUMBER = 9;
    private volatile java.lang.Object sql_;
    /**
     * <code>string sql = 9;</code>
     * @return The sql.
     */
    @java.lang.Override
    public java.lang.String getSql() {
      java.lang.Object ref = sql_;
      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();
        sql_ = s;
        return s;
      }
    }
    /**
     * <code>string sql = 9;</code>
     * @return The bytes for sql.
     */
    @java.lang.Override
    public com.google.protobuf.ByteString
        getSqlBytes() {
      java.lang.Object ref = sql_;
      if (ref instanceof java.lang.String) {
        com.google.protobuf.ByteString b = 
            com.google.protobuf.ByteString.copyFromUtf8(
                (java.lang.String) ref);
        sql_ = b;
        return b;
      } else {
        return (com.google.protobuf.ByteString) ref;
      }
    }

    public static final int FLOW_OPTIONS_FIELD_NUMBER = 10;
    private static final class FlowOptionsDefaultEntryHolder {
      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.Ddl.internal_static_greptime_v1_CreateFlowExpr_FlowOptionsEntry_descriptor, 
                  com.google.protobuf.WireFormat.FieldType.STRING,
                  "",
                  com.google.protobuf.WireFormat.FieldType.STRING,
                  "");
    }
    private com.google.protobuf.MapField<
        java.lang.String, java.lang.String> flowOptions_;
    private com.google.protobuf.MapField<java.lang.String, java.lang.String>
    internalGetFlowOptions() {
      if (flowOptions_ == null) {
        return com.google.protobuf.MapField.emptyMapField(
            FlowOptionsDefaultEntryHolder.defaultEntry);
      }
      return flowOptions_;
    }

    public int getFlowOptionsCount() {
      return internalGetFlowOptions().getMap().size();
    }
    /**
     * <code>map&lt;string, string&gt; flow_options = 10;</code>
     */

    @java.lang.Override
    public boolean containsFlowOptions(
        java.lang.String key) {
      if (key == null) { throw new NullPointerException("map key"); }
      return internalGetFlowOptions().getMap().containsKey(key);
    }
    /**
     * Use {@link #getFlowOptionsMap()} instead.
     */
    @java.lang.Override
    @java.lang.Deprecated
    public java.util.Map<java.lang.String, java.lang.String> getFlowOptions() {
      return getFlowOptionsMap();
    }
    /**
     * <code>map&lt;string, string&gt; flow_options = 10;</code>
     */
    @java.lang.Override

    public java.util.Map<java.lang.String, java.lang.String> getFlowOptionsMap() {
      return internalGetFlowOptions().getMap();
    }
    /**
     * <code>map&lt;string, string&gt; flow_options = 10;</code>
     */
    @java.lang.Override

    public java.lang.String getFlowOptionsOrDefault(
        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 =
          internalGetFlowOptions().getMap();
      return map.containsKey(key) ? map.get(key) : defaultValue;
    }
    /**
     * <code>map&lt;string, string&gt; flow_options = 10;</code>
     */
    @java.lang.Override

    public java.lang.String getFlowOptionsOrThrow(
        java.lang.String key) {
      if (key == null) { throw new NullPointerException("map key"); }
      java.util.Map<java.lang.String, java.lang.String> map =
          internalGetFlowOptions().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 {
      if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(catalogName_)) {
        com.google.protobuf.GeneratedMessageV3.writeString(output, 1, catalogName_);
      }
      if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(flowName_)) {
        com.google.protobuf.GeneratedMessageV3.writeString(output, 2, flowName_);
      }
      for (int i = 0; i < sourceTableNames_.size(); i++) {
        output.writeMessage(3, sourceTableNames_.get(i));
      }
      if (sinkTableName_ != null) {
        output.writeMessage(4, getSinkTableName());
      }
      if (orReplace_ != false) {
        output.writeBool(5, orReplace_);
      }
      if (createIfNotExists_ != false) {
        output.writeBool(6, createIfNotExists_);
      }
      if (expireAfter_ != null) {
        output.writeMessage(7, getExpireAfter());
      }
      if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(comment_)) {
        com.google.protobuf.GeneratedMessageV3.writeString(output, 8, comment_);
      }
      if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(sql_)) {
        com.google.protobuf.GeneratedMessageV3.writeString(output, 9, sql_);
      }
      com.google.protobuf.GeneratedMessageV3
        .serializeStringMapTo(
          output,
          internalGetFlowOptions(),
          FlowOptionsDefaultEntryHolder.defaultEntry,
          10);
      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(flowName_)) {
        size += com.google.protobuf.GeneratedMessageV3.computeStringSize(2, flowName_);
      }
      for (int i = 0; i < sourceTableNames_.size(); i++) {
        size += com.google.protobuf.CodedOutputStream
          .computeMessageSize(3, sourceTableNames_.get(i));
      }
      if (sinkTableName_ != null) {
        size += com.google.protobuf.CodedOutputStream
          .computeMessageSize(4, getSinkTableName());
      }
      if (orReplace_ != false) {
        size += com.google.protobuf.CodedOutputStream
          .computeBoolSize(5, orReplace_);
      }
      if (createIfNotExists_ != false) {
        size += com.google.protobuf.CodedOutputStream
          .computeBoolSize(6, createIfNotExists_);
      }
      if (expireAfter_ != null) {
        size += com.google.protobuf.CodedOutputStream
          .computeMessageSize(7, getExpireAfter());
      }
      if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(comment_)) {
        size += com.google.protobuf.GeneratedMessageV3.computeStringSize(8, comment_);
      }
      if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(sql_)) {
        size += com.google.protobuf.GeneratedMessageV3.computeStringSize(9, sql_);
      }
      for (java.util.Map.Entry<java.lang.String, java.lang.String> entry
           : internalGetFlowOptions().getMap().entrySet()) {
        com.google.protobuf.MapEntry<java.lang.String, java.lang.String>
        flowOptions__ = FlowOptionsDefaultEntryHolder.defaultEntry.newBuilderForType()
            .setKey(entry.getKey())
            .setValue(entry.getValue())
            .build();
        size += com.google.protobuf.CodedOutputStream
            .computeMessageSize(10, flowOptions__);
      }
      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.Ddl.CreateFlowExpr)) {
        return super.equals(obj);
      }
      io.greptime.v1.Ddl.CreateFlowExpr other = (io.greptime.v1.Ddl.CreateFlowExpr) obj;

      if (!getCatalogName()
          .equals(other.getCatalogName())) return false;
      if (!getFlowName()
          .equals(other.getFlowName())) return false;
      if (!getSourceTableNamesList()
          .equals(other.getSourceTableNamesList())) return false;
      if (hasSinkTableName() != other.hasSinkTableName()) return false;
      if (hasSinkTableName()) {
        if (!getSinkTableName()
            .equals(other.getSinkTableName())) return false;
      }
      if (getOrReplace()
          != other.getOrReplace()) return false;
      if (getCreateIfNotExists()
          != other.getCreateIfNotExists()) return false;
      if (hasExpireAfter() != other.hasExpireAfter()) return false;
      if (hasExpireAfter()) {
        if (!getExpireAfter()
            .equals(other.getExpireAfter())) return false;
      }
      if (!getComment()
          .equals(other.getComment())) return false;
      if (!getSql()
          .equals(other.getSql())) return false;
      if (!internalGetFlowOptions().equals(
          other.internalGetFlowOptions())) 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) + FLOW_NAME_FIELD_NUMBER;
      hash = (53 * hash) + getFlowName().hashCode();
      if (getSourceTableNamesCount() > 0) {
        hash = (37 * hash) + SOURCE_TABLE_NAMES_FIELD_NUMBER;
        hash = (53 * hash) + getSourceTableNamesList().hashCode();
      }
      if (hasSinkTableName()) {
        hash = (37 * hash) + SINK_TABLE_NAME_FIELD_NUMBER;
        hash = (53 * hash) + getSinkTableName().hashCode();
      }
      hash = (37 * hash) + OR_REPLACE_FIELD_NUMBER;
      hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean(
          getOrReplace());
      hash = (37 * hash) + CREATE_IF_NOT_EXISTS_FIELD_NUMBER;
      hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean(
          getCreateIfNotExists());
      if (hasExpireAfter()) {
        hash = (37 * hash) + EXPIRE_AFTER_FIELD_NUMBER;
        hash = (53 * hash) + getExpireAfter().hashCode();
      }
      hash = (37 * hash) + COMMENT_FIELD_NUMBER;
      hash = (53 * hash) + getComment().hashCode();
      hash = (37 * hash) + SQL_FIELD_NUMBER;
      hash = (53 * hash) + getSql().hashCode();
      if (!internalGetFlowOptions().getMap().isEmpty()) {
        hash = (37 * hash) + FLOW_OPTIONS_FIELD_NUMBER;
        hash = (53 * hash) + internalGetFlowOptions().hashCode();
      }
      hash = (29 * hash) + unknownFields.hashCode();
      memoizedHashCode = hash;
      return hash;
    }

    public static io.greptime.v1.Ddl.CreateFlowExpr parseFrom(
        java.nio.ByteBuffer data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static io.greptime.v1.Ddl.CreateFlowExpr 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.Ddl.CreateFlowExpr parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static io.greptime.v1.Ddl.CreateFlowExpr 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.Ddl.CreateFlowExpr parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static io.greptime.v1.Ddl.CreateFlowExpr parseFrom(
        byte[] data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static io.greptime.v1.Ddl.CreateFlowExpr parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input);
    }
    public static io.greptime.v1.Ddl.CreateFlowExpr 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.Ddl.CreateFlowExpr parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseDelimitedWithIOException(PARSER, input);
    }
    public static io.greptime.v1.Ddl.CreateFlowExpr 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.Ddl.CreateFlowExpr parseFrom(
        com.google.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input);
    }
    public static io.greptime.v1.Ddl.CreateFlowExpr 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.Ddl.CreateFlowExpr 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>
     * Create a flow to run the SQL when new data arrives.
     * </pre>
     *
     * Protobuf type {@code greptime.v1.CreateFlowExpr}
     */
    public static final class Builder extends
        com.google.protobuf.GeneratedMessageV3.Builder<Builder> implements
        // @@protoc_insertion_point(builder_implements:greptime.v1.CreateFlowExpr)
        io.greptime.v1.Ddl.CreateFlowExprOrBuilder {
      public static final com.google.protobuf.Descriptors.Descriptor
          getDescriptor() {
        return io.greptime.v1.Ddl.internal_static_greptime_v1_CreateFlowExpr_descriptor;
      }

      @SuppressWarnings({"rawtypes"})
      protected com.google.protobuf.MapField internalGetMapField(
          int number) {
        switch (number) {
          case 10:
            return internalGetFlowOptions();
          default:
            throw new RuntimeException(
                "Invalid map field number: " + number);
        }
      }
      @SuppressWarnings({"rawtypes"})
      protected com.google.protobuf.MapField internalGetMutableMapField(
          int number) {
        switch (number) {
          case 10:
            return internalGetMutableFlowOptions();
          default:
            throw new RuntimeException(
                "Invalid map field number: " + number);
        }
      }
      @java.lang.Override
      protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return io.greptime.v1.Ddl.internal_static_greptime_v1_CreateFlowExpr_fieldAccessorTable
            .ensureFieldAccessorsInitialized(
                io.greptime.v1.Ddl.CreateFlowExpr.class, io.greptime.v1.Ddl.CreateFlowExpr.Builder.class);
      }

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

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

        flowName_ = "";

        if (sourceTableNamesBuilder_ == null) {
          sourceTableNames_ = java.util.Collections.emptyList();
          bitField0_ = (bitField0_ & ~0x00000001);
        } else {
          sourceTableNamesBuilder_.clear();
        }
        if (sinkTableNameBuilder_ == null) {
          sinkTableName_ = null;
        } else {
          sinkTableName_ = null;
          sinkTableNameBuilder_ = null;
        }
        orReplace_ = false;

        createIfNotExists_ = false;

        if (expireAfterBuilder_ == null) {
          expireAfter_ = null;
        } else {
          expireAfter_ = null;
          expireAfterBuilder_ = null;
        }
        comment_ = "";

        sql_ = "";

        internalGetMutableFlowOptions().clear();
        return this;
      }

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

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

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

      @java.lang.Override
      public io.greptime.v1.Ddl.CreateFlowExpr buildPartial() {
        io.greptime.v1.Ddl.CreateFlowExpr result = new io.greptime.v1.Ddl.CreateFlowExpr(this);
        int from_bitField0_ = bitField0_;
        result.catalogName_ = catalogName_;
        result.flowName_ = flowName_;
        if (sourceTableNamesBuilder_ == null) {
          if (((bitField0_ & 0x00000001) != 0)) {
            sourceTableNames_ = java.util.Collections.unmodifiableList(sourceTableNames_);
            bitField0_ = (bitField0_ & ~0x00000001);
          }
          result.sourceTableNames_ = sourceTableNames_;
        } else {
          result.sourceTableNames_ = sourceTableNamesBuilder_.build();
        }
        if (sinkTableNameBuilder_ == null) {
          result.sinkTableName_ = sinkTableName_;
        } else {
          result.sinkTableName_ = sinkTableNameBuilder_.build();
        }
        result.orReplace_ = orReplace_;
        result.createIfNotExists_ = createIfNotExists_;
        if (expireAfterBuilder_ == null) {
          result.expireAfter_ = expireAfter_;
        } else {
          result.expireAfter_ = expireAfterBuilder_.build();
        }
        result.comment_ = comment_;
        result.sql_ = sql_;
        result.flowOptions_ = internalGetFlowOptions();
        result.flowOptions_.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.Ddl.CreateFlowExpr) {
          return mergeFrom((io.greptime.v1.Ddl.CreateFlowExpr)other);
        } else {
          super.mergeFrom(other);
          return this;
        }
      }

      public Builder mergeFrom(io.greptime.v1.Ddl.CreateFlowExpr other) {
        if (other == io.greptime.v1.Ddl.CreateFlowExpr.getDefaultInstance()) return this;
        if (!other.getCatalogName().isEmpty()) {
          catalogName_ = other.catalogName_;
          onChanged();
        }
        if (!other.getFlowName().isEmpty()) {
          flowName_ = other.flowName_;
          onChanged();
        }
        if (sourceTableNamesBuilder_ == null) {
          if (!other.sourceTableNames_.isEmpty()) {
            if (sourceTableNames_.isEmpty()) {
              sourceTableNames_ = other.sourceTableNames_;
              bitField0_ = (bitField0_ & ~0x00000001);
            } else {
              ensureSourceTableNamesIsMutable();
              sourceTableNames_.addAll(other.sourceTableNames_);
            }
            onChanged();
          }
        } else {
          if (!other.sourceTableNames_.isEmpty()) {
            if (sourceTableNamesBuilder_.isEmpty()) {
              sourceTableNamesBuilder_.dispose();
              sourceTableNamesBuilder_ = null;
              sourceTableNames_ = other.sourceTableNames_;
              bitField0_ = (bitField0_ & ~0x00000001);
              sourceTableNamesBuilder_ = 
                com.google.protobuf.GeneratedMessageV3.alwaysUseFieldBuilders ?
                   getSourceTableNamesFieldBuilder() : null;
            } else {
              sourceTableNamesBuilder_.addAllMessages(other.sourceTableNames_);
            }
          }
        }
        if (other.hasSinkTableName()) {
          mergeSinkTableName(other.getSinkTableName());
        }
        if (other.getOrReplace() != false) {
          setOrReplace(other.getOrReplace());
        }
        if (other.getCreateIfNotExists() != false) {
          setCreateIfNotExists(other.getCreateIfNotExists());
        }
        if (other.hasExpireAfter()) {
          mergeExpireAfter(other.getExpireAfter());
        }
        if (!other.getComment().isEmpty()) {
          comment_ = other.comment_;
          onChanged();
        }
        if (!other.getSql().isEmpty()) {
          sql_ = other.sql_;
          onChanged();
        }
        internalGetMutableFlowOptions().mergeFrom(
            other.internalGetFlowOptions());
        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.Ddl.CreateFlowExpr parsedMessage = null;
        try {
          parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry);
        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
          parsedMessage = (io.greptime.v1.Ddl.CreateFlowExpr) e.getUnfinishedMessage();
          throw e.unwrapIOException();
        } finally {
          if (parsedMessage != null) {
            mergeFrom(parsedMessage);
          }
        }
        return this;
      }
      private int bitField0_;

      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 flowName_ = "";
      /**
       * <code>string flow_name = 2;</code>
       * @return The flowName.
       */
      public java.lang.String getFlowName() {
        java.lang.Object ref = flowName_;
        if (!(ref instanceof java.lang.String)) {
          com.google.protobuf.ByteString bs =
              (com.google.protobuf.ByteString) ref;
          java.lang.String s = bs.toStringUtf8();
          flowName_ = s;
          return s;
        } else {
          return (java.lang.String) ref;
        }
      }
      /**
       * <code>string flow_name = 2;</code>
       * @return The bytes for flowName.
       */
      public com.google.protobuf.ByteString
          getFlowNameBytes() {
        java.lang.Object ref = flowName_;
        if (ref instanceof String) {
          com.google.protobuf.ByteString b = 
              com.google.protobuf.ByteString.copyFromUtf8(
                  (java.lang.String) ref);
          flowName_ = b;
          return b;
        } else {
          return (com.google.protobuf.ByteString) ref;
        }
      }
      /**
       * <code>string flow_name = 2;</code>
       * @param value The flowName to set.
       * @return This builder for chaining.
       */
      public Builder setFlowName(
          java.lang.String value) {
        if (value == null) {
    throw new NullPointerException();
  }
  
        flowName_ = value;
        onChanged();
        return this;
      }
      /**
       * <code>string flow_name = 2;</code>
       * @return This builder for chaining.
       */
      public Builder clearFlowName() {
        
        flowName_ = getDefaultInstance().getFlowName();
        onChanged();
        return this;
      }
      /**
       * <code>string flow_name = 2;</code>
       * @param value The bytes for flowName to set.
       * @return This builder for chaining.
       */
      public Builder setFlowNameBytes(
          com.google.protobuf.ByteString value) {
        if (value == null) {
    throw new NullPointerException();
  }
  checkByteStringIsUtf8(value);
        
        flowName_ = value;
        onChanged();
        return this;
      }

      private java.util.List<io.greptime.v1.Common.TableName> sourceTableNames_ =
        java.util.Collections.emptyList();
      private void ensureSourceTableNamesIsMutable() {
        if (!((bitField0_ & 0x00000001) != 0)) {
          sourceTableNames_ = new java.util.ArrayList<io.greptime.v1.Common.TableName>(sourceTableNames_);
          bitField0_ |= 0x00000001;
         }
      }

      private com.google.protobuf.RepeatedFieldBuilderV3<
          io.greptime.v1.Common.TableName, io.greptime.v1.Common.TableName.Builder, io.greptime.v1.Common.TableNameOrBuilder> sourceTableNamesBuilder_;

      /**
       * <code>repeated .greptime.v1.TableName source_table_names = 3;</code>
       */
      public java.util.List<io.greptime.v1.Common.TableName> getSourceTableNamesList() {
        if (sourceTableNamesBuilder_ == null) {
          return java.util.Collections.unmodifiableList(sourceTableNames_);
        } else {
          return sourceTableNamesBuilder_.getMessageList();
        }
      }
      /**
       * <code>repeated .greptime.v1.TableName source_table_names = 3;</code>
       */
      public int getSourceTableNamesCount() {
        if (sourceTableNamesBuilder_ == null) {
          return sourceTableNames_.size();
        } else {
          return sourceTableNamesBuilder_.getCount();
        }
      }
      /**
       * <code>repeated .greptime.v1.TableName source_table_names = 3;</code>
       */
      public io.greptime.v1.Common.TableName getSourceTableNames(int index) {
        if (sourceTableNamesBuilder_ == null) {
          return sourceTableNames_.get(index);
        } else {
          return sourceTableNamesBuilder_.getMessage(index);
        }
      }
      /**
       * <code>repeated .greptime.v1.TableName source_table_names = 3;</code>
       */
      public Builder setSourceTableNames(
          int index, io.greptime.v1.Common.TableName value) {
        if (sourceTableNamesBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          ensureSourceTableNamesIsMutable();
          sourceTableNames_.set(index, value);
          onChanged();
        } else {
          sourceTableNamesBuilder_.setMessage(index, value);
        }
        return this;
      }
      /**
       * <code>repeated .greptime.v1.TableName source_table_names = 3;</code>
       */
      public Builder setSourceTableNames(
          int index, io.greptime.v1.Common.TableName.Builder builderForValue) {
        if (sourceTableNamesBuilder_ == null) {
          ensureSourceTableNamesIsMutable();
          sourceTableNames_.set(index, builderForValue.build());
          onChanged();
        } else {
          sourceTableNamesBuilder_.setMessage(index, builderForValue.build());
        }
        return this;
      }
      /**
       * <code>repeated .greptime.v1.TableName source_table_names = 3;</code>
       */
      public Builder addSourceTableNames(io.greptime.v1.Common.TableName value) {
        if (sourceTableNamesBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          ensureSourceTableNamesIsMutable();
          sourceTableNames_.add(value);
          onChanged();
        } else {
          sourceTableNamesBuilder_.addMessage(value);
        }
        return this;
      }
      /**
       * <code>repeated .greptime.v1.TableName source_table_names = 3;</code>
       */
      public Builder addSourceTableNames(
          int index, io.greptime.v1.Common.TableName value) {
        if (sourceTableNamesBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          ensureSourceTableNamesIsMutable();
          sourceTableNames_.add(index, value);
          onChanged();
        } else {
          sourceTableNamesBuilder_.addMessage(index, value);
        }
        return this;
      }
      /**
       * <code>repeated .greptime.v1.TableName source_table_names = 3;</code>
       */
      public Builder addSourceTableNames(
          io.greptime.v1.Common.TableName.Builder builderForValue) {
        if (sourceTableNamesBuilder_ == null) {
          ensureSourceTableNamesIsMutable();
          sourceTableNames_.add(builderForValue.build());
          onChanged();
        } else {
          sourceTableNamesBuilder_.addMessage(builderForValue.build());
        }
        return this;
      }
      /**
       * <code>repeated .greptime.v1.TableName source_table_names = 3;</code>
       */
      public Builder addSourceTableNames(
          int index, io.greptime.v1.Common.TableName.Builder builderForValue) {
        if (sourceTableNamesBuilder_ == null) {
          ensureSourceTableNamesIsMutable();
          sourceTableNames_.add(index, builderForValue.build());
          onChanged();
        } else {
          sourceTableNamesBuilder_.addMessage(index, builderForValue.build());
        }
        return this;
      }
      /**
       * <code>repeated .greptime.v1.TableName source_table_names = 3;</code>
       */
      public Builder addAllSourceTableNames(
          java.lang.Iterable<? extends io.greptime.v1.Common.TableName> values) {
        if (sourceTableNamesBuilder_ == null) {
          ensureSourceTableNamesIsMutable();
          com.google.protobuf.AbstractMessageLite.Builder.addAll(
              values, sourceTableNames_);
          onChanged();
        } else {
          sourceTableNamesBuilder_.addAllMessages(values);
        }
        return this;
      }
      /**
       * <code>repeated .greptime.v1.TableName source_table_names = 3;</code>
       */
      public Builder clearSourceTableNames() {
        if (sourceTableNamesBuilder_ == null) {
          sourceTableNames_ = java.util.Collections.emptyList();
          bitField0_ = (bitField0_ & ~0x00000001);
          onChanged();
        } else {
          sourceTableNamesBuilder_.clear();
        }
        return this;
      }
      /**
       * <code>repeated .greptime.v1.TableName source_table_names = 3;</code>
       */
      public Builder removeSourceTableNames(int index) {
        if (sourceTableNamesBuilder_ == null) {
          ensureSourceTableNamesIsMutable();
          sourceTableNames_.remove(index);
          onChanged();
        } else {
          sourceTableNamesBuilder_.remove(index);
        }
        return this;
      }
      /**
       * <code>repeated .greptime.v1.TableName source_table_names = 3;</code>
       */
      public io.greptime.v1.Common.TableName.Builder getSourceTableNamesBuilder(
          int index) {
        return getSourceTableNamesFieldBuilder().getBuilder(index);
      }
      /**
       * <code>repeated .greptime.v1.TableName source_table_names = 3;</code>
       */
      public io.greptime.v1.Common.TableNameOrBuilder getSourceTableNamesOrBuilder(
          int index) {
        if (sourceTableNamesBuilder_ == null) {
          return sourceTableNames_.get(index);  } else {
          return sourceTableNamesBuilder_.getMessageOrBuilder(index);
        }
      }
      /**
       * <code>repeated .greptime.v1.TableName source_table_names = 3;</code>
       */
      public java.util.List<? extends io.greptime.v1.Common.TableNameOrBuilder> 
           getSourceTableNamesOrBuilderList() {
        if (sourceTableNamesBuilder_ != null) {
          return sourceTableNamesBuilder_.getMessageOrBuilderList();
        } else {
          return java.util.Collections.unmodifiableList(sourceTableNames_);
        }
      }
      /**
       * <code>repeated .greptime.v1.TableName source_table_names = 3;</code>
       */
      public io.greptime.v1.Common.TableName.Builder addSourceTableNamesBuilder() {
        return getSourceTableNamesFieldBuilder().addBuilder(
            io.greptime.v1.Common.TableName.getDefaultInstance());
      }
      /**
       * <code>repeated .greptime.v1.TableName source_table_names = 3;</code>
       */
      public io.greptime.v1.Common.TableName.Builder addSourceTableNamesBuilder(
          int index) {
        return getSourceTableNamesFieldBuilder().addBuilder(
            index, io.greptime.v1.Common.TableName.getDefaultInstance());
      }
      /**
       * <code>repeated .greptime.v1.TableName source_table_names = 3;</code>
       */
      public java.util.List<io.greptime.v1.Common.TableName.Builder> 
           getSourceTableNamesBuilderList() {
        return getSourceTableNamesFieldBuilder().getBuilderList();
      }
      private com.google.protobuf.RepeatedFieldBuilderV3<
          io.greptime.v1.Common.TableName, io.greptime.v1.Common.TableName.Builder, io.greptime.v1.Common.TableNameOrBuilder> 
          getSourceTableNamesFieldBuilder() {
        if (sourceTableNamesBuilder_ == null) {
          sourceTableNamesBuilder_ = new com.google.protobuf.RepeatedFieldBuilderV3<
              io.greptime.v1.Common.TableName, io.greptime.v1.Common.TableName.Builder, io.greptime.v1.Common.TableNameOrBuilder>(
                  sourceTableNames_,
                  ((bitField0_ & 0x00000001) != 0),
                  getParentForChildren(),
                  isClean());
          sourceTableNames_ = null;
        }
        return sourceTableNamesBuilder_;
      }

      private io.greptime.v1.Common.TableName sinkTableName_;
      private com.google.protobuf.SingleFieldBuilderV3<
          io.greptime.v1.Common.TableName, io.greptime.v1.Common.TableName.Builder, io.greptime.v1.Common.TableNameOrBuilder> sinkTableNameBuilder_;
      /**
       * <code>.greptime.v1.TableName sink_table_name = 4;</code>
       * @return Whether the sinkTableName field is set.
       */
      public boolean hasSinkTableName() {
        return sinkTableNameBuilder_ != null || sinkTableName_ != null;
      }
      /**
       * <code>.greptime.v1.TableName sink_table_name = 4;</code>
       * @return The sinkTableName.
       */
      public io.greptime.v1.Common.TableName getSinkTableName() {
        if (sinkTableNameBuilder_ == null) {
          return sinkTableName_ == null ? io.greptime.v1.Common.TableName.getDefaultInstance() : sinkTableName_;
        } else {
          return sinkTableNameBuilder_.getMessage();
        }
      }
      /**
       * <code>.greptime.v1.TableName sink_table_name = 4;</code>
       */
      public Builder setSinkTableName(io.greptime.v1.Common.TableName value) {
        if (sinkTableNameBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          sinkTableName_ = value;
          onChanged();
        } else {
          sinkTableNameBuilder_.setMessage(value);
        }

        return this;
      }
      /**
       * <code>.greptime.v1.TableName sink_table_name = 4;</code>
       */
      public Builder setSinkTableName(
          io.greptime.v1.Common.TableName.Builder builderForValue) {
        if (sinkTableNameBuilder_ == null) {
          sinkTableName_ = builderForValue.build();
          onChanged();
        } else {
          sinkTableNameBuilder_.setMessage(builderForValue.build());
        }

        return this;
      }
      /**
       * <code>.greptime.v1.TableName sink_table_name = 4;</code>
       */
      public Builder mergeSinkTableName(io.greptime.v1.Common.TableName value) {
        if (sinkTableNameBuilder_ == null) {
          if (sinkTableName_ != null) {
            sinkTableName_ =
              io.greptime.v1.Common.TableName.newBuilder(sinkTableName_).mergeFrom(value).buildPartial();
          } else {
            sinkTableName_ = value;
          }
          onChanged();
        } else {
          sinkTableNameBuilder_.mergeFrom(value);
        }

        return this;
      }
      /**
       * <code>.greptime.v1.TableName sink_table_name = 4;</code>
       */
      public Builder clearSinkTableName() {
        if (sinkTableNameBuilder_ == null) {
          sinkTableName_ = null;
          onChanged();
        } else {
          sinkTableName_ = null;
          sinkTableNameBuilder_ = null;
        }

        return this;
      }
      /**
       * <code>.greptime.v1.TableName sink_table_name = 4;</code>
       */
      public io.greptime.v1.Common.TableName.Builder getSinkTableNameBuilder() {
        
        onChanged();
        return getSinkTableNameFieldBuilder().getBuilder();
      }
      /**
       * <code>.greptime.v1.TableName sink_table_name = 4;</code>
       */
      public io.greptime.v1.Common.TableNameOrBuilder getSinkTableNameOrBuilder() {
        if (sinkTableNameBuilder_ != null) {
          return sinkTableNameBuilder_.getMessageOrBuilder();
        } else {
          return sinkTableName_ == null ?
              io.greptime.v1.Common.TableName.getDefaultInstance() : sinkTableName_;
        }
      }
      /**
       * <code>.greptime.v1.TableName sink_table_name = 4;</code>
       */
      private com.google.protobuf.SingleFieldBuilderV3<
          io.greptime.v1.Common.TableName, io.greptime.v1.Common.TableName.Builder, io.greptime.v1.Common.TableNameOrBuilder> 
          getSinkTableNameFieldBuilder() {
        if (sinkTableNameBuilder_ == null) {
          sinkTableNameBuilder_ = new com.google.protobuf.SingleFieldBuilderV3<
              io.greptime.v1.Common.TableName, io.greptime.v1.Common.TableName.Builder, io.greptime.v1.Common.TableNameOrBuilder>(
                  getSinkTableName(),
                  getParentForChildren(),
                  isClean());
          sinkTableName_ = null;
        }
        return sinkTableNameBuilder_;
      }

      private boolean orReplace_ ;
      /**
       * <code>bool or_replace = 5;</code>
       * @return The orReplace.
       */
      @java.lang.Override
      public boolean getOrReplace() {
        return orReplace_;
      }
      /**
       * <code>bool or_replace = 5;</code>
       * @param value The orReplace to set.
       * @return This builder for chaining.
       */
      public Builder setOrReplace(boolean value) {
        
        orReplace_ = value;
        onChanged();
        return this;
      }
      /**
       * <code>bool or_replace = 5;</code>
       * @return This builder for chaining.
       */
      public Builder clearOrReplace() {
        
        orReplace_ = false;
        onChanged();
        return this;
      }

      private boolean createIfNotExists_ ;
      /**
       * <code>bool create_if_not_exists = 6;</code>
       * @return The createIfNotExists.
       */
      @java.lang.Override
      public boolean getCreateIfNotExists() {
        return createIfNotExists_;
      }
      /**
       * <code>bool create_if_not_exists = 6;</code>
       * @param value The createIfNotExists to set.
       * @return This builder for chaining.
       */
      public Builder setCreateIfNotExists(boolean value) {
        
        createIfNotExists_ = value;
        onChanged();
        return this;
      }
      /**
       * <code>bool create_if_not_exists = 6;</code>
       * @return This builder for chaining.
       */
      public Builder clearCreateIfNotExists() {
        
        createIfNotExists_ = false;
        onChanged();
        return this;
      }

      private io.greptime.v1.Common.ExpireAfter expireAfter_;
      private com.google.protobuf.SingleFieldBuilderV3<
          io.greptime.v1.Common.ExpireAfter, io.greptime.v1.Common.ExpireAfter.Builder, io.greptime.v1.Common.ExpireAfterOrBuilder> expireAfterBuilder_;
      /**
       * <pre>
       * Expire data older than the given duration seconds.
       * </pre>
       *
       * <code>.greptime.v1.ExpireAfter expire_after = 7;</code>
       * @return Whether the expireAfter field is set.
       */
      public boolean hasExpireAfter() {
        return expireAfterBuilder_ != null || expireAfter_ != null;
      }
      /**
       * <pre>
       * Expire data older than the given duration seconds.
       * </pre>
       *
       * <code>.greptime.v1.ExpireAfter expire_after = 7;</code>
       * @return The expireAfter.
       */
      public io.greptime.v1.Common.ExpireAfter getExpireAfter() {
        if (expireAfterBuilder_ == null) {
          return expireAfter_ == null ? io.greptime.v1.Common.ExpireAfter.getDefaultInstance() : expireAfter_;
        } else {
          return expireAfterBuilder_.getMessage();
        }
      }
      /**
       * <pre>
       * Expire data older than the given duration seconds.
       * </pre>
       *
       * <code>.greptime.v1.ExpireAfter expire_after = 7;</code>
       */
      public Builder setExpireAfter(io.greptime.v1.Common.ExpireAfter value) {
        if (expireAfterBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          expireAfter_ = value;
          onChanged();
        } else {
          expireAfterBuilder_.setMessage(value);
        }

        return this;
      }
      /**
       * <pre>
       * Expire data older than the given duration seconds.
       * </pre>
       *
       * <code>.greptime.v1.ExpireAfter expire_after = 7;</code>
       */
      public Builder setExpireAfter(
          io.greptime.v1.Common.ExpireAfter.Builder builderForValue) {
        if (expireAfterBuilder_ == null) {
          expireAfter_ = builderForValue.build();
          onChanged();
        } else {
          expireAfterBuilder_.setMessage(builderForValue.build());
        }

        return this;
      }
      /**
       * <pre>
       * Expire data older than the given duration seconds.
       * </pre>
       *
       * <code>.greptime.v1.ExpireAfter expire_after = 7;</code>
       */
      public Builder mergeExpireAfter(io.greptime.v1.Common.ExpireAfter value) {
        if (expireAfterBuilder_ == null) {
          if (expireAfter_ != null) {
            expireAfter_ =
              io.greptime.v1.Common.ExpireAfter.newBuilder(expireAfter_).mergeFrom(value).buildPartial();
          } else {
            expireAfter_ = value;
          }
          onChanged();
        } else {
          expireAfterBuilder_.mergeFrom(value);
        }

        return this;
      }
      /**
       * <pre>
       * Expire data older than the given duration seconds.
       * </pre>
       *
       * <code>.greptime.v1.ExpireAfter expire_after = 7;</code>
       */
      public Builder clearExpireAfter() {
        if (expireAfterBuilder_ == null) {
          expireAfter_ = null;
          onChanged();
        } else {
          expireAfter_ = null;
          expireAfterBuilder_ = null;
        }

        return this;
      }
      /**
       * <pre>
       * Expire data older than the given duration seconds.
       * </pre>
       *
       * <code>.greptime.v1.ExpireAfter expire_after = 7;</code>
       */
      public io.greptime.v1.Common.ExpireAfter.Builder getExpireAfterBuilder() {
        
        onChanged();
        return getExpireAfterFieldBuilder().getBuilder();
      }
      /**
       * <pre>
       * Expire data older than the given duration seconds.
       * </pre>
       *
       * <code>.greptime.v1.ExpireAfter expire_after = 7;</code>
       */
      public io.greptime.v1.Common.ExpireAfterOrBuilder getExpireAfterOrBuilder() {
        if (expireAfterBuilder_ != null) {
          return expireAfterBuilder_.getMessageOrBuilder();
        } else {
          return expireAfter_ == null ?
              io.greptime.v1.Common.ExpireAfter.getDefaultInstance() : expireAfter_;
        }
      }
      /**
       * <pre>
       * Expire data older than the given duration seconds.
       * </pre>
       *
       * <code>.greptime.v1.ExpireAfter expire_after = 7;</code>
       */
      private com.google.protobuf.SingleFieldBuilderV3<
          io.greptime.v1.Common.ExpireAfter, io.greptime.v1.Common.ExpireAfter.Builder, io.greptime.v1.Common.ExpireAfterOrBuilder> 
          getExpireAfterFieldBuilder() {
        if (expireAfterBuilder_ == null) {
          expireAfterBuilder_ = new com.google.protobuf.SingleFieldBuilderV3<
              io.greptime.v1.Common.ExpireAfter, io.greptime.v1.Common.ExpireAfter.Builder, io.greptime.v1.Common.ExpireAfterOrBuilder>(
                  getExpireAfter(),
                  getParentForChildren(),
                  isClean());
          expireAfter_ = null;
        }
        return expireAfterBuilder_;
      }

      private java.lang.Object comment_ = "";
      /**
       * <code>string comment = 8;</code>
       * @return The comment.
       */
      public java.lang.String getComment() {
        java.lang.Object ref = comment_;
        if (!(ref instanceof java.lang.String)) {
          com.google.protobuf.ByteString bs =
              (com.google.protobuf.ByteString) ref;
          java.lang.String s = bs.toStringUtf8();
          comment_ = s;
          return s;
        } else {
          return (java.lang.String) ref;
        }
      }
      /**
       * <code>string comment = 8;</code>
       * @return The bytes for comment.
       */
      public com.google.protobuf.ByteString
          getCommentBytes() {
        java.lang.Object ref = comment_;
        if (ref instanceof String) {
          com.google.protobuf.ByteString b = 
              com.google.protobuf.ByteString.copyFromUtf8(
                  (java.lang.String) ref);
          comment_ = b;
          return b;
        } else {
          return (com.google.protobuf.ByteString) ref;
        }
      }
      /**
       * <code>string comment = 8;</code>
       * @param value The comment to set.
       * @return This builder for chaining.
       */
      public Builder setComment(
          java.lang.String value) {
        if (value == null) {
    throw new NullPointerException();
  }
  
        comment_ = value;
        onChanged();
        return this;
      }
      /**
       * <code>string comment = 8;</code>
       * @return This builder for chaining.
       */
      public Builder clearComment() {
        
        comment_ = getDefaultInstance().getComment();
        onChanged();
        return this;
      }
      /**
       * <code>string comment = 8;</code>
       * @param value The bytes for comment to set.
       * @return This builder for chaining.
       */
      public Builder setCommentBytes(
          com.google.protobuf.ByteString value) {
        if (value == null) {
    throw new NullPointerException();
  }
  checkByteStringIsUtf8(value);
        
        comment_ = value;
        onChanged();
        return this;
      }

      private java.lang.Object sql_ = "";
      /**
       * <code>string sql = 9;</code>
       * @return The sql.
       */
      public java.lang.String getSql() {
        java.lang.Object ref = sql_;
        if (!(ref instanceof java.lang.String)) {
          com.google.protobuf.ByteString bs =
              (com.google.protobuf.ByteString) ref;
          java.lang.String s = bs.toStringUtf8();
          sql_ = s;
          return s;
        } else {
          return (java.lang.String) ref;
        }
      }
      /**
       * <code>string sql = 9;</code>
       * @return The bytes for sql.
       */
      public com.google.protobuf.ByteString
          getSqlBytes() {
        java.lang.Object ref = sql_;
        if (ref instanceof String) {
          com.google.protobuf.ByteString b = 
              com.google.protobuf.ByteString.copyFromUtf8(
                  (java.lang.String) ref);
          sql_ = b;
          return b;
        } else {
          return (com.google.protobuf.ByteString) ref;
        }
      }
      /**
       * <code>string sql = 9;</code>
       * @param value The sql to set.
       * @return This builder for chaining.
       */
      public Builder setSql(
          java.lang.String value) {
        if (value == null) {
    throw new NullPointerException();
  }
  
        sql_ = value;
        onChanged();
        return this;
      }
      /**
       * <code>string sql = 9;</code>
       * @return This builder for chaining.
       */
      public Builder clearSql() {
        
        sql_ = getDefaultInstance().getSql();
        onChanged();
        return this;
      }
      /**
       * <code>string sql = 9;</code>
       * @param value The bytes for sql to set.
       * @return This builder for chaining.
       */
      public Builder setSqlBytes(
          com.google.protobuf.ByteString value) {
        if (value == null) {
    throw new NullPointerException();
  }
  checkByteStringIsUtf8(value);
        
        sql_ = value;
        onChanged();
        return this;
      }

      private com.google.protobuf.MapField<
          java.lang.String, java.lang.String> flowOptions_;
      private com.google.protobuf.MapField<java.lang.String, java.lang.String>
      internalGetFlowOptions() {
        if (flowOptions_ == null) {
          return com.google.protobuf.MapField.emptyMapField(
              FlowOptionsDefaultEntryHolder.defaultEntry);
        }
        return flowOptions_;
      }
      private com.google.protobuf.MapField<java.lang.String, java.lang.String>
      internalGetMutableFlowOptions() {
        onChanged();;
        if (flowOptions_ == null) {
          flowOptions_ = com.google.protobuf.MapField.newMapField(
              FlowOptionsDefaultEntryHolder.defaultEntry);
        }
        if (!flowOptions_.isMutable()) {
          flowOptions_ = flowOptions_.copy();
        }
        return flowOptions_;
      }

      public int getFlowOptionsCount() {
        return internalGetFlowOptions().getMap().size();
      }
      /**
       * <code>map&lt;string, string&gt; flow_options = 10;</code>
       */

      @java.lang.Override
      public boolean containsFlowOptions(
          java.lang.String key) {
        if (key == null) { throw new NullPointerException("map key"); }
        return internalGetFlowOptions().getMap().containsKey(key);
      }
      /**
       * Use {@link #getFlowOptionsMap()} instead.
       */
      @java.lang.Override
      @java.lang.Deprecated
      public java.util.Map<java.lang.String, java.lang.String> getFlowOptions() {
        return getFlowOptionsMap();
      }
      /**
       * <code>map&lt;string, string&gt; flow_options = 10;</code>
       */
      @java.lang.Override

      public java.util.Map<java.lang.String, java.lang.String> getFlowOptionsMap() {
        return internalGetFlowOptions().getMap();
      }
      /**
       * <code>map&lt;string, string&gt; flow_options = 10;</code>
       */
      @java.lang.Override

      public java.lang.String getFlowOptionsOrDefault(
          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 =
            internalGetFlowOptions().getMap();
        return map.containsKey(key) ? map.get(key) : defaultValue;
      }
      /**
       * <code>map&lt;string, string&gt; flow_options = 10;</code>
       */
      @java.lang.Override

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

      public Builder clearFlowOptions() {
        internalGetMutableFlowOptions().getMutableMap()
            .clear();
        return this;
      }
      /**
       * <code>map&lt;string, string&gt; flow_options = 10;</code>
       */

      public Builder removeFlowOptions(
          java.lang.String key) {
        if (key == null) { throw new NullPointerException("map key"); }
        internalGetMutableFlowOptions().getMutableMap()
            .remove(key);
        return this;
      }
      /**
       * Use alternate mutation accessors instead.
       */
      @java.lang.Deprecated
      public java.util.Map<java.lang.String, java.lang.String>
      getMutableFlowOptions() {
        return internalGetMutableFlowOptions().getMutableMap();
      }
      /**
       * <code>map&lt;string, string&gt; flow_options = 10;</code>
       */
      public Builder putFlowOptions(
          java.lang.String key,
          java.lang.String value) {
        if (key == null) { throw new NullPointerException("map key"); }
        if (value == null) {
  throw new NullPointerException("map value");
}

        internalGetMutableFlowOptions().getMutableMap()
            .put(key, value);
        return this;
      }
      /**
       * <code>map&lt;string, string&gt; flow_options = 10;</code>
       */

      public Builder putAllFlowOptions(
          java.util.Map<java.lang.String, java.lang.String> values) {
        internalGetMutableFlowOptions().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.CreateFlowExpr)
    }

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

    public static io.greptime.v1.Ddl.CreateFlowExpr getDefaultInstance() {
      return DEFAULT_INSTANCE;
    }

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

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

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

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

  }

  public interface DropFlowExprOrBuilder extends
      // @@protoc_insertion_point(interface_extends:greptime.v1.DropFlowExpr)
      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 flow_name = 2;</code>
     * @return The flowName.
     */
    java.lang.String getFlowName();
    /**
     * <code>string flow_name = 2;</code>
     * @return The bytes for flowName.
     */
    com.google.protobuf.ByteString
        getFlowNameBytes();

    /**
     * <code>.greptime.v1.FlowId flow_id = 3;</code>
     * @return Whether the flowId field is set.
     */
    boolean hasFlowId();
    /**
     * <code>.greptime.v1.FlowId flow_id = 3;</code>
     * @return The flowId.
     */
    io.greptime.v1.Ddl.FlowId getFlowId();
    /**
     * <code>.greptime.v1.FlowId flow_id = 3;</code>
     */
    io.greptime.v1.Ddl.FlowIdOrBuilder getFlowIdOrBuilder();

    /**
     * <code>bool drop_if_exists = 5;</code>
     * @return The dropIfExists.
     */
    boolean getDropIfExists();
  }
  /**
   * <pre>
   * Drop a flow.
   * </pre>
   *
   * Protobuf type {@code greptime.v1.DropFlowExpr}
   */
  public static final class DropFlowExpr extends
      com.google.protobuf.GeneratedMessageV3 implements
      // @@protoc_insertion_point(message_implements:greptime.v1.DropFlowExpr)
      DropFlowExprOrBuilder {
  private static final long serialVersionUID = 0L;
    // Use DropFlowExpr.newBuilder() to construct.
    private DropFlowExpr(com.google.protobuf.GeneratedMessageV3.Builder<?> builder) {
      super(builder);
    }
    private DropFlowExpr() {
      catalogName_ = "";
      flowName_ = "";
    }

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

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

              flowName_ = s;
              break;
            }
            case 26: {
              io.greptime.v1.Ddl.FlowId.Builder subBuilder = null;
              if (flowId_ != null) {
                subBuilder = flowId_.toBuilder();
              }
              flowId_ = input.readMessage(io.greptime.v1.Ddl.FlowId.parser(), extensionRegistry);
              if (subBuilder != null) {
                subBuilder.mergeFrom(flowId_);
                flowId_ = subBuilder.buildPartial();
              }

              break;
            }
            case 40: {

              dropIfExists_ = 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.Ddl.internal_static_greptime_v1_DropFlowExpr_descriptor;
    }

    @java.lang.Override
    protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
        internalGetFieldAccessorTable() {
      return io.greptime.v1.Ddl.internal_static_greptime_v1_DropFlowExpr_fieldAccessorTable
          .ensureFieldAccessorsInitialized(
              io.greptime.v1.Ddl.DropFlowExpr.class, io.greptime.v1.Ddl.DropFlowExpr.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 FLOW_NAME_FIELD_NUMBER = 2;
    private volatile java.lang.Object flowName_;
    /**
     * <code>string flow_name = 2;</code>
     * @return The flowName.
     */
    @java.lang.Override
    public java.lang.String getFlowName() {
      java.lang.Object ref = flowName_;
      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();
        flowName_ = s;
        return s;
      }
    }
    /**
     * <code>string flow_name = 2;</code>
     * @return The bytes for flowName.
     */
    @java.lang.Override
    public com.google.protobuf.ByteString
        getFlowNameBytes() {
      java.lang.Object ref = flowName_;
      if (ref instanceof java.lang.String) {
        com.google.protobuf.ByteString b = 
            com.google.protobuf.ByteString.copyFromUtf8(
                (java.lang.String) ref);
        flowName_ = b;
        return b;
      } else {
        return (com.google.protobuf.ByteString) ref;
      }
    }

    public static final int FLOW_ID_FIELD_NUMBER = 3;
    private io.greptime.v1.Ddl.FlowId flowId_;
    /**
     * <code>.greptime.v1.FlowId flow_id = 3;</code>
     * @return Whether the flowId field is set.
     */
    @java.lang.Override
    public boolean hasFlowId() {
      return flowId_ != null;
    }
    /**
     * <code>.greptime.v1.FlowId flow_id = 3;</code>
     * @return The flowId.
     */
    @java.lang.Override
    public io.greptime.v1.Ddl.FlowId getFlowId() {
      return flowId_ == null ? io.greptime.v1.Ddl.FlowId.getDefaultInstance() : flowId_;
    }
    /**
     * <code>.greptime.v1.FlowId flow_id = 3;</code>
     */
    @java.lang.Override
    public io.greptime.v1.Ddl.FlowIdOrBuilder getFlowIdOrBuilder() {
      return getFlowId();
    }

    public static final int DROP_IF_EXISTS_FIELD_NUMBER = 5;
    private boolean dropIfExists_;
    /**
     * <code>bool drop_if_exists = 5;</code>
     * @return The dropIfExists.
     */
    @java.lang.Override
    public boolean getDropIfExists() {
      return dropIfExists_;
    }

    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(flowName_)) {
        com.google.protobuf.GeneratedMessageV3.writeString(output, 2, flowName_);
      }
      if (flowId_ != null) {
        output.writeMessage(3, getFlowId());
      }
      if (dropIfExists_ != false) {
        output.writeBool(5, dropIfExists_);
      }
      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(flowName_)) {
        size += com.google.protobuf.GeneratedMessageV3.computeStringSize(2, flowName_);
      }
      if (flowId_ != null) {
        size += com.google.protobuf.CodedOutputStream
          .computeMessageSize(3, getFlowId());
      }
      if (dropIfExists_ != false) {
        size += com.google.protobuf.CodedOutputStream
          .computeBoolSize(5, dropIfExists_);
      }
      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.Ddl.DropFlowExpr)) {
        return super.equals(obj);
      }
      io.greptime.v1.Ddl.DropFlowExpr other = (io.greptime.v1.Ddl.DropFlowExpr) obj;

      if (!getCatalogName()
          .equals(other.getCatalogName())) return false;
      if (!getFlowName()
          .equals(other.getFlowName())) return false;
      if (hasFlowId() != other.hasFlowId()) return false;
      if (hasFlowId()) {
        if (!getFlowId()
            .equals(other.getFlowId())) return false;
      }
      if (getDropIfExists()
          != other.getDropIfExists()) 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) + FLOW_NAME_FIELD_NUMBER;
      hash = (53 * hash) + getFlowName().hashCode();
      if (hasFlowId()) {
        hash = (37 * hash) + FLOW_ID_FIELD_NUMBER;
        hash = (53 * hash) + getFlowId().hashCode();
      }
      hash = (37 * hash) + DROP_IF_EXISTS_FIELD_NUMBER;
      hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean(
          getDropIfExists());
      hash = (29 * hash) + unknownFields.hashCode();
      memoizedHashCode = hash;
      return hash;
    }

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

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

      // Construct using io.greptime.v1.Ddl.DropFlowExpr.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_ = "";

        flowName_ = "";

        if (flowIdBuilder_ == null) {
          flowId_ = null;
        } else {
          flowId_ = null;
          flowIdBuilder_ = null;
        }
        dropIfExists_ = false;

        return this;
      }

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

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

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

      @java.lang.Override
      public io.greptime.v1.Ddl.DropFlowExpr buildPartial() {
        io.greptime.v1.Ddl.DropFlowExpr result = new io.greptime.v1.Ddl.DropFlowExpr(this);
        result.catalogName_ = catalogName_;
        result.flowName_ = flowName_;
        if (flowIdBuilder_ == null) {
          result.flowId_ = flowId_;
        } else {
          result.flowId_ = flowIdBuilder_.build();
        }
        result.dropIfExists_ = dropIfExists_;
        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.Ddl.DropFlowExpr) {
          return mergeFrom((io.greptime.v1.Ddl.DropFlowExpr)other);
        } else {
          super.mergeFrom(other);
          return this;
        }
      }

      public Builder mergeFrom(io.greptime.v1.Ddl.DropFlowExpr other) {
        if (other == io.greptime.v1.Ddl.DropFlowExpr.getDefaultInstance()) return this;
        if (!other.getCatalogName().isEmpty()) {
          catalogName_ = other.catalogName_;
          onChanged();
        }
        if (!other.getFlowName().isEmpty()) {
          flowName_ = other.flowName_;
          onChanged();
        }
        if (other.hasFlowId()) {
          mergeFlowId(other.getFlowId());
        }
        if (other.getDropIfExists() != false) {
          setDropIfExists(other.getDropIfExists());
        }
        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.Ddl.DropFlowExpr parsedMessage = null;
        try {
          parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry);
        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
          parsedMessage = (io.greptime.v1.Ddl.DropFlowExpr) 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 flowName_ = "";
      /**
       * <code>string flow_name = 2;</code>
       * @return The flowName.
       */
      public java.lang.String getFlowName() {
        java.lang.Object ref = flowName_;
        if (!(ref instanceof java.lang.String)) {
          com.google.protobuf.ByteString bs =
              (com.google.protobuf.ByteString) ref;
          java.lang.String s = bs.toStringUtf8();
          flowName_ = s;
          return s;
        } else {
          return (java.lang.String) ref;
        }
      }
      /**
       * <code>string flow_name = 2;</code>
       * @return The bytes for flowName.
       */
      public com.google.protobuf.ByteString
          getFlowNameBytes() {
        java.lang.Object ref = flowName_;
        if (ref instanceof String) {
          com.google.protobuf.ByteString b = 
              com.google.protobuf.ByteString.copyFromUtf8(
                  (java.lang.String) ref);
          flowName_ = b;
          return b;
        } else {
          return (com.google.protobuf.ByteString) ref;
        }
      }
      /**
       * <code>string flow_name = 2;</code>
       * @param value The flowName to set.
       * @return This builder for chaining.
       */
      public Builder setFlowName(
          java.lang.String value) {
        if (value == null) {
    throw new NullPointerException();
  }
  
        flowName_ = value;
        onChanged();
        return this;
      }
      /**
       * <code>string flow_name = 2;</code>
       * @return This builder for chaining.
       */
      public Builder clearFlowName() {
        
        flowName_ = getDefaultInstance().getFlowName();
        onChanged();
        return this;
      }
      /**
       * <code>string flow_name = 2;</code>
       * @param value The bytes for flowName to set.
       * @return This builder for chaining.
       */
      public Builder setFlowNameBytes(
          com.google.protobuf.ByteString value) {
        if (value == null) {
    throw new NullPointerException();
  }
  checkByteStringIsUtf8(value);
        
        flowName_ = value;
        onChanged();
        return this;
      }

      private io.greptime.v1.Ddl.FlowId flowId_;
      private com.google.protobuf.SingleFieldBuilderV3<
          io.greptime.v1.Ddl.FlowId, io.greptime.v1.Ddl.FlowId.Builder, io.greptime.v1.Ddl.FlowIdOrBuilder> flowIdBuilder_;
      /**
       * <code>.greptime.v1.FlowId flow_id = 3;</code>
       * @return Whether the flowId field is set.
       */
      public boolean hasFlowId() {
        return flowIdBuilder_ != null || flowId_ != null;
      }
      /**
       * <code>.greptime.v1.FlowId flow_id = 3;</code>
       * @return The flowId.
       */
      public io.greptime.v1.Ddl.FlowId getFlowId() {
        if (flowIdBuilder_ == null) {
          return flowId_ == null ? io.greptime.v1.Ddl.FlowId.getDefaultInstance() : flowId_;
        } else {
          return flowIdBuilder_.getMessage();
        }
      }
      /**
       * <code>.greptime.v1.FlowId flow_id = 3;</code>
       */
      public Builder setFlowId(io.greptime.v1.Ddl.FlowId value) {
        if (flowIdBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          flowId_ = value;
          onChanged();
        } else {
          flowIdBuilder_.setMessage(value);
        }

        return this;
      }
      /**
       * <code>.greptime.v1.FlowId flow_id = 3;</code>
       */
      public Builder setFlowId(
          io.greptime.v1.Ddl.FlowId.Builder builderForValue) {
        if (flowIdBuilder_ == null) {
          flowId_ = builderForValue.build();
          onChanged();
        } else {
          flowIdBuilder_.setMessage(builderForValue.build());
        }

        return this;
      }
      /**
       * <code>.greptime.v1.FlowId flow_id = 3;</code>
       */
      public Builder mergeFlowId(io.greptime.v1.Ddl.FlowId value) {
        if (flowIdBuilder_ == null) {
          if (flowId_ != null) {
            flowId_ =
              io.greptime.v1.Ddl.FlowId.newBuilder(flowId_).mergeFrom(value).buildPartial();
          } else {
            flowId_ = value;
          }
          onChanged();
        } else {
          flowIdBuilder_.mergeFrom(value);
        }

        return this;
      }
      /**
       * <code>.greptime.v1.FlowId flow_id = 3;</code>
       */
      public Builder clearFlowId() {
        if (flowIdBuilder_ == null) {
          flowId_ = null;
          onChanged();
        } else {
          flowId_ = null;
          flowIdBuilder_ = null;
        }

        return this;
      }
      /**
       * <code>.greptime.v1.FlowId flow_id = 3;</code>
       */
      public io.greptime.v1.Ddl.FlowId.Builder getFlowIdBuilder() {
        
        onChanged();
        return getFlowIdFieldBuilder().getBuilder();
      }
      /**
       * <code>.greptime.v1.FlowId flow_id = 3;</code>
       */
      public io.greptime.v1.Ddl.FlowIdOrBuilder getFlowIdOrBuilder() {
        if (flowIdBuilder_ != null) {
          return flowIdBuilder_.getMessageOrBuilder();
        } else {
          return flowId_ == null ?
              io.greptime.v1.Ddl.FlowId.getDefaultInstance() : flowId_;
        }
      }
      /**
       * <code>.greptime.v1.FlowId flow_id = 3;</code>
       */
      private com.google.protobuf.SingleFieldBuilderV3<
          io.greptime.v1.Ddl.FlowId, io.greptime.v1.Ddl.FlowId.Builder, io.greptime.v1.Ddl.FlowIdOrBuilder> 
          getFlowIdFieldBuilder() {
        if (flowIdBuilder_ == null) {
          flowIdBuilder_ = new com.google.protobuf.SingleFieldBuilderV3<
              io.greptime.v1.Ddl.FlowId, io.greptime.v1.Ddl.FlowId.Builder, io.greptime.v1.Ddl.FlowIdOrBuilder>(
                  getFlowId(),
                  getParentForChildren(),
                  isClean());
          flowId_ = null;
        }
        return flowIdBuilder_;
      }

      private boolean dropIfExists_ ;
      /**
       * <code>bool drop_if_exists = 5;</code>
       * @return The dropIfExists.
       */
      @java.lang.Override
      public boolean getDropIfExists() {
        return dropIfExists_;
      }
      /**
       * <code>bool drop_if_exists = 5;</code>
       * @param value The dropIfExists to set.
       * @return This builder for chaining.
       */
      public Builder setDropIfExists(boolean value) {
        
        dropIfExists_ = value;
        onChanged();
        return this;
      }
      /**
       * <code>bool drop_if_exists = 5;</code>
       * @return This builder for chaining.
       */
      public Builder clearDropIfExists() {
        
        dropIfExists_ = 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.DropFlowExpr)
    }

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

    public static io.greptime.v1.Ddl.DropFlowExpr getDefaultInstance() {
      return DEFAULT_INSTANCE;
    }

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

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

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

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

  }

  public interface CreateViewExprOrBuilder extends
      // @@protoc_insertion_point(interface_extends:greptime.v1.CreateViewExpr)
      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 view_name = 3;</code>
     * @return The viewName.
     */
    java.lang.String getViewName();
    /**
     * <code>string view_name = 3;</code>
     * @return The bytes for viewName.
     */
    com.google.protobuf.ByteString
        getViewNameBytes();

    /**
     * <code>bytes logical_plan = 4;</code>
     * @return The logicalPlan.
     */
    com.google.protobuf.ByteString getLogicalPlan();

    /**
     * <code>bool create_if_not_exists = 5;</code>
     * @return The createIfNotExists.
     */
    boolean getCreateIfNotExists();

    /**
     * <code>bool or_replace = 6;</code>
     * @return The orReplace.
     */
    boolean getOrReplace();

    /**
     * <code>repeated .greptime.v1.TableName table_names = 7;</code>
     */
    java.util.List<io.greptime.v1.Common.TableName> 
        getTableNamesList();
    /**
     * <code>repeated .greptime.v1.TableName table_names = 7;</code>
     */
    io.greptime.v1.Common.TableName getTableNames(int index);
    /**
     * <code>repeated .greptime.v1.TableName table_names = 7;</code>
     */
    int getTableNamesCount();
    /**
     * <code>repeated .greptime.v1.TableName table_names = 7;</code>
     */
    java.util.List<? extends io.greptime.v1.Common.TableNameOrBuilder> 
        getTableNamesOrBuilderList();
    /**
     * <code>repeated .greptime.v1.TableName table_names = 7;</code>
     */
    io.greptime.v1.Common.TableNameOrBuilder getTableNamesOrBuilder(
        int index);

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

    /**
     * <code>repeated string plan_columns = 9;</code>
     * @return A list containing the planColumns.
     */
    java.util.List<java.lang.String>
        getPlanColumnsList();
    /**
     * <code>repeated string plan_columns = 9;</code>
     * @return The count of planColumns.
     */
    int getPlanColumnsCount();
    /**
     * <code>repeated string plan_columns = 9;</code>
     * @param index The index of the element to return.
     * @return The planColumns at the given index.
     */
    java.lang.String getPlanColumns(int index);
    /**
     * <code>repeated string plan_columns = 9;</code>
     * @param index The index of the value to return.
     * @return The bytes of the planColumns at the given index.
     */
    com.google.protobuf.ByteString
        getPlanColumnsBytes(int index);

    /**
     * <code>string definition = 10;</code>
     * @return The definition.
     */
    java.lang.String getDefinition();
    /**
     * <code>string definition = 10;</code>
     * @return The bytes for definition.
     */
    com.google.protobuf.ByteString
        getDefinitionBytes();
  }
  /**
   * <pre>
   * Create a view
   * </pre>
   *
   * Protobuf type {@code greptime.v1.CreateViewExpr}
   */
  public static final class CreateViewExpr extends
      com.google.protobuf.GeneratedMessageV3 implements
      // @@protoc_insertion_point(message_implements:greptime.v1.CreateViewExpr)
      CreateViewExprOrBuilder {
  private static final long serialVersionUID = 0L;
    // Use CreateViewExpr.newBuilder() to construct.
    private CreateViewExpr(com.google.protobuf.GeneratedMessageV3.Builder<?> builder) {
      super(builder);
    }
    private CreateViewExpr() {
      catalogName_ = "";
      schemaName_ = "";
      viewName_ = "";
      logicalPlan_ = com.google.protobuf.ByteString.EMPTY;
      tableNames_ = java.util.Collections.emptyList();
      columns_ = com.google.protobuf.LazyStringArrayList.EMPTY;
      planColumns_ = com.google.protobuf.LazyStringArrayList.EMPTY;
      definition_ = "";
    }

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

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

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

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

              viewName_ = s;
              break;
            }
            case 34: {

              logicalPlan_ = input.readBytes();
              break;
            }
            case 40: {

              createIfNotExists_ = input.readBool();
              break;
            }
            case 48: {

              orReplace_ = input.readBool();
              break;
            }
            case 58: {
              if (!((mutable_bitField0_ & 0x00000001) != 0)) {
                tableNames_ = new java.util.ArrayList<io.greptime.v1.Common.TableName>();
                mutable_bitField0_ |= 0x00000001;
              }
              tableNames_.add(
                  input.readMessage(io.greptime.v1.Common.TableName.parser(), extensionRegistry));
              break;
            }
            case 66: {
              java.lang.String s = input.readStringRequireUtf8();
              if (!((mutable_bitField0_ & 0x00000002) != 0)) {
                columns_ = new com.google.protobuf.LazyStringArrayList();
                mutable_bitField0_ |= 0x00000002;
              }
              columns_.add(s);
              break;
            }
            case 74: {
              java.lang.String s = input.readStringRequireUtf8();
              if (!((mutable_bitField0_ & 0x00000004) != 0)) {
                planColumns_ = new com.google.protobuf.LazyStringArrayList();
                mutable_bitField0_ |= 0x00000004;
              }
              planColumns_.add(s);
              break;
            }
            case 82: {
              java.lang.String s = input.readStringRequireUtf8();

              definition_ = 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 {
        if (((mutable_bitField0_ & 0x00000001) != 0)) {
          tableNames_ = java.util.Collections.unmodifiableList(tableNames_);
        }
        if (((mutable_bitField0_ & 0x00000002) != 0)) {
          columns_ = columns_.getUnmodifiableView();
        }
        if (((mutable_bitField0_ & 0x00000004) != 0)) {
          planColumns_ = planColumns_.getUnmodifiableView();
        }
        this.unknownFields = unknownFields.build();
        makeExtensionsImmutable();
      }
    }
    public static final com.google.protobuf.Descriptors.Descriptor
        getDescriptor() {
      return io.greptime.v1.Ddl.internal_static_greptime_v1_CreateViewExpr_descriptor;
    }

    @java.lang.Override
    protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
        internalGetFieldAccessorTable() {
      return io.greptime.v1.Ddl.internal_static_greptime_v1_CreateViewExpr_fieldAccessorTable
          .ensureFieldAccessorsInitialized(
              io.greptime.v1.Ddl.CreateViewExpr.class, io.greptime.v1.Ddl.CreateViewExpr.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 VIEW_NAME_FIELD_NUMBER = 3;
    private volatile java.lang.Object viewName_;
    /**
     * <code>string view_name = 3;</code>
     * @return The viewName.
     */
    @java.lang.Override
    public java.lang.String getViewName() {
      java.lang.Object ref = viewName_;
      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();
        viewName_ = s;
        return s;
      }
    }
    /**
     * <code>string view_name = 3;</code>
     * @return The bytes for viewName.
     */
    @java.lang.Override
    public com.google.protobuf.ByteString
        getViewNameBytes() {
      java.lang.Object ref = viewName_;
      if (ref instanceof java.lang.String) {
        com.google.protobuf.ByteString b = 
            com.google.protobuf.ByteString.copyFromUtf8(
                (java.lang.String) ref);
        viewName_ = b;
        return b;
      } else {
        return (com.google.protobuf.ByteString) ref;
      }
    }

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

    public static final int CREATE_IF_NOT_EXISTS_FIELD_NUMBER = 5;
    private boolean createIfNotExists_;
    /**
     * <code>bool create_if_not_exists = 5;</code>
     * @return The createIfNotExists.
     */
    @java.lang.Override
    public boolean getCreateIfNotExists() {
      return createIfNotExists_;
    }

    public static final int OR_REPLACE_FIELD_NUMBER = 6;
    private boolean orReplace_;
    /**
     * <code>bool or_replace = 6;</code>
     * @return The orReplace.
     */
    @java.lang.Override
    public boolean getOrReplace() {
      return orReplace_;
    }

    public static final int TABLE_NAMES_FIELD_NUMBER = 7;
    private java.util.List<io.greptime.v1.Common.TableName> tableNames_;
    /**
     * <code>repeated .greptime.v1.TableName table_names = 7;</code>
     */
    @java.lang.Override
    public java.util.List<io.greptime.v1.Common.TableName> getTableNamesList() {
      return tableNames_;
    }
    /**
     * <code>repeated .greptime.v1.TableName table_names = 7;</code>
     */
    @java.lang.Override
    public java.util.List<? extends io.greptime.v1.Common.TableNameOrBuilder> 
        getTableNamesOrBuilderList() {
      return tableNames_;
    }
    /**
     * <code>repeated .greptime.v1.TableName table_names = 7;</code>
     */
    @java.lang.Override
    public int getTableNamesCount() {
      return tableNames_.size();
    }
    /**
     * <code>repeated .greptime.v1.TableName table_names = 7;</code>
     */
    @java.lang.Override
    public io.greptime.v1.Common.TableName getTableNames(int index) {
      return tableNames_.get(index);
    }
    /**
     * <code>repeated .greptime.v1.TableName table_names = 7;</code>
     */
    @java.lang.Override
    public io.greptime.v1.Common.TableNameOrBuilder getTableNamesOrBuilder(
        int index) {
      return tableNames_.get(index);
    }

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

    public static final int PLAN_COLUMNS_FIELD_NUMBER = 9;
    private com.google.protobuf.LazyStringList planColumns_;
    /**
     * <code>repeated string plan_columns = 9;</code>
     * @return A list containing the planColumns.
     */
    public com.google.protobuf.ProtocolStringList
        getPlanColumnsList() {
      return planColumns_;
    }
    /**
     * <code>repeated string plan_columns = 9;</code>
     * @return The count of planColumns.
     */
    public int getPlanColumnsCount() {
      return planColumns_.size();
    }
    /**
     * <code>repeated string plan_columns = 9;</code>
     * @param index The index of the element to return.
     * @return The planColumns at the given index.
     */
    public java.lang.String getPlanColumns(int index) {
      return planColumns_.get(index);
    }
    /**
     * <code>repeated string plan_columns = 9;</code>
     * @param index The index of the value to return.
     * @return The bytes of the planColumns at the given index.
     */
    public com.google.protobuf.ByteString
        getPlanColumnsBytes(int index) {
      return planColumns_.getByteString(index);
    }

    public static final int DEFINITION_FIELD_NUMBER = 10;
    private volatile java.lang.Object definition_;
    /**
     * <code>string definition = 10;</code>
     * @return The definition.
     */
    @java.lang.Override
    public java.lang.String getDefinition() {
      java.lang.Object ref = definition_;
      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();
        definition_ = s;
        return s;
      }
    }
    /**
     * <code>string definition = 10;</code>
     * @return The bytes for definition.
     */
    @java.lang.Override
    public com.google.protobuf.ByteString
        getDefinitionBytes() {
      java.lang.Object ref = definition_;
      if (ref instanceof java.lang.String) {
        com.google.protobuf.ByteString b = 
            com.google.protobuf.ByteString.copyFromUtf8(
                (java.lang.String) ref);
        definition_ = 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(viewName_)) {
        com.google.protobuf.GeneratedMessageV3.writeString(output, 3, viewName_);
      }
      if (!logicalPlan_.isEmpty()) {
        output.writeBytes(4, logicalPlan_);
      }
      if (createIfNotExists_ != false) {
        output.writeBool(5, createIfNotExists_);
      }
      if (orReplace_ != false) {
        output.writeBool(6, orReplace_);
      }
      for (int i = 0; i < tableNames_.size(); i++) {
        output.writeMessage(7, tableNames_.get(i));
      }
      for (int i = 0; i < columns_.size(); i++) {
        com.google.protobuf.GeneratedMessageV3.writeString(output, 8, columns_.getRaw(i));
      }
      for (int i = 0; i < planColumns_.size(); i++) {
        com.google.protobuf.GeneratedMessageV3.writeString(output, 9, planColumns_.getRaw(i));
      }
      if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(definition_)) {
        com.google.protobuf.GeneratedMessageV3.writeString(output, 10, definition_);
      }
      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(viewName_)) {
        size += com.google.protobuf.GeneratedMessageV3.computeStringSize(3, viewName_);
      }
      if (!logicalPlan_.isEmpty()) {
        size += com.google.protobuf.CodedOutputStream
          .computeBytesSize(4, logicalPlan_);
      }
      if (createIfNotExists_ != false) {
        size += com.google.protobuf.CodedOutputStream
          .computeBoolSize(5, createIfNotExists_);
      }
      if (orReplace_ != false) {
        size += com.google.protobuf.CodedOutputStream
          .computeBoolSize(6, orReplace_);
      }
      for (int i = 0; i < tableNames_.size(); i++) {
        size += com.google.protobuf.CodedOutputStream
          .computeMessageSize(7, tableNames_.get(i));
      }
      {
        int dataSize = 0;
        for (int i = 0; i < columns_.size(); i++) {
          dataSize += computeStringSizeNoTag(columns_.getRaw(i));
        }
        size += dataSize;
        size += 1 * getColumnsList().size();
      }
      {
        int dataSize = 0;
        for (int i = 0; i < planColumns_.size(); i++) {
          dataSize += computeStringSizeNoTag(planColumns_.getRaw(i));
        }
        size += dataSize;
        size += 1 * getPlanColumnsList().size();
      }
      if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(definition_)) {
        size += com.google.protobuf.GeneratedMessageV3.computeStringSize(10, definition_);
      }
      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.Ddl.CreateViewExpr)) {
        return super.equals(obj);
      }
      io.greptime.v1.Ddl.CreateViewExpr other = (io.greptime.v1.Ddl.CreateViewExpr) obj;

      if (!getCatalogName()
          .equals(other.getCatalogName())) return false;
      if (!getSchemaName()
          .equals(other.getSchemaName())) return false;
      if (!getViewName()
          .equals(other.getViewName())) return false;
      if (!getLogicalPlan()
          .equals(other.getLogicalPlan())) return false;
      if (getCreateIfNotExists()
          != other.getCreateIfNotExists()) return false;
      if (getOrReplace()
          != other.getOrReplace()) return false;
      if (!getTableNamesList()
          .equals(other.getTableNamesList())) return false;
      if (!getColumnsList()
          .equals(other.getColumnsList())) return false;
      if (!getPlanColumnsList()
          .equals(other.getPlanColumnsList())) return false;
      if (!getDefinition()
          .equals(other.getDefinition())) 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) + VIEW_NAME_FIELD_NUMBER;
      hash = (53 * hash) + getViewName().hashCode();
      hash = (37 * hash) + LOGICAL_PLAN_FIELD_NUMBER;
      hash = (53 * hash) + getLogicalPlan().hashCode();
      hash = (37 * hash) + CREATE_IF_NOT_EXISTS_FIELD_NUMBER;
      hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean(
          getCreateIfNotExists());
      hash = (37 * hash) + OR_REPLACE_FIELD_NUMBER;
      hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean(
          getOrReplace());
      if (getTableNamesCount() > 0) {
        hash = (37 * hash) + TABLE_NAMES_FIELD_NUMBER;
        hash = (53 * hash) + getTableNamesList().hashCode();
      }
      if (getColumnsCount() > 0) {
        hash = (37 * hash) + COLUMNS_FIELD_NUMBER;
        hash = (53 * hash) + getColumnsList().hashCode();
      }
      if (getPlanColumnsCount() > 0) {
        hash = (37 * hash) + PLAN_COLUMNS_FIELD_NUMBER;
        hash = (53 * hash) + getPlanColumnsList().hashCode();
      }
      hash = (37 * hash) + DEFINITION_FIELD_NUMBER;
      hash = (53 * hash) + getDefinition().hashCode();
      hash = (29 * hash) + unknownFields.hashCode();
      memoizedHashCode = hash;
      return hash;
    }

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

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

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

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

        schemaName_ = "";

        viewName_ = "";

        logicalPlan_ = com.google.protobuf.ByteString.EMPTY;

        createIfNotExists_ = false;

        orReplace_ = false;

        if (tableNamesBuilder_ == null) {
          tableNames_ = java.util.Collections.emptyList();
          bitField0_ = (bitField0_ & ~0x00000001);
        } else {
          tableNamesBuilder_.clear();
        }
        columns_ = com.google.protobuf.LazyStringArrayList.EMPTY;
        bitField0_ = (bitField0_ & ~0x00000002);
        planColumns_ = com.google.protobuf.LazyStringArrayList.EMPTY;
        bitField0_ = (bitField0_ & ~0x00000004);
        definition_ = "";

        return this;
      }

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

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

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

      @java.lang.Override
      public io.greptime.v1.Ddl.CreateViewExpr buildPartial() {
        io.greptime.v1.Ddl.CreateViewExpr result = new io.greptime.v1.Ddl.CreateViewExpr(this);
        int from_bitField0_ = bitField0_;
        result.catalogName_ = catalogName_;
        result.schemaName_ = schemaName_;
        result.viewName_ = viewName_;
        result.logicalPlan_ = logicalPlan_;
        result.createIfNotExists_ = createIfNotExists_;
        result.orReplace_ = orReplace_;
        if (tableNamesBuilder_ == null) {
          if (((bitField0_ & 0x00000001) != 0)) {
            tableNames_ = java.util.Collections.unmodifiableList(tableNames_);
            bitField0_ = (bitField0_ & ~0x00000001);
          }
          result.tableNames_ = tableNames_;
        } else {
          result.tableNames_ = tableNamesBuilder_.build();
        }
        if (((bitField0_ & 0x00000002) != 0)) {
          columns_ = columns_.getUnmodifiableView();
          bitField0_ = (bitField0_ & ~0x00000002);
        }
        result.columns_ = columns_;
        if (((bitField0_ & 0x00000004) != 0)) {
          planColumns_ = planColumns_.getUnmodifiableView();
          bitField0_ = (bitField0_ & ~0x00000004);
        }
        result.planColumns_ = planColumns_;
        result.definition_ = definition_;
        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.Ddl.CreateViewExpr) {
          return mergeFrom((io.greptime.v1.Ddl.CreateViewExpr)other);
        } else {
          super.mergeFrom(other);
          return this;
        }
      }

      public Builder mergeFrom(io.greptime.v1.Ddl.CreateViewExpr other) {
        if (other == io.greptime.v1.Ddl.CreateViewExpr.getDefaultInstance()) return this;
        if (!other.getCatalogName().isEmpty()) {
          catalogName_ = other.catalogName_;
          onChanged();
        }
        if (!other.getSchemaName().isEmpty()) {
          schemaName_ = other.schemaName_;
          onChanged();
        }
        if (!other.getViewName().isEmpty()) {
          viewName_ = other.viewName_;
          onChanged();
        }
        if (other.getLogicalPlan() != com.google.protobuf.ByteString.EMPTY) {
          setLogicalPlan(other.getLogicalPlan());
        }
        if (other.getCreateIfNotExists() != false) {
          setCreateIfNotExists(other.getCreateIfNotExists());
        }
        if (other.getOrReplace() != false) {
          setOrReplace(other.getOrReplace());
        }
        if (tableNamesBuilder_ == null) {
          if (!other.tableNames_.isEmpty()) {
            if (tableNames_.isEmpty()) {
              tableNames_ = other.tableNames_;
              bitField0_ = (bitField0_ & ~0x00000001);
            } else {
              ensureTableNamesIsMutable();
              tableNames_.addAll(other.tableNames_);
            }
            onChanged();
          }
        } else {
          if (!other.tableNames_.isEmpty()) {
            if (tableNamesBuilder_.isEmpty()) {
              tableNamesBuilder_.dispose();
              tableNamesBuilder_ = null;
              tableNames_ = other.tableNames_;
              bitField0_ = (bitField0_ & ~0x00000001);
              tableNamesBuilder_ = 
                com.google.protobuf.GeneratedMessageV3.alwaysUseFieldBuilders ?
                   getTableNamesFieldBuilder() : null;
            } else {
              tableNamesBuilder_.addAllMessages(other.tableNames_);
            }
          }
        }
        if (!other.columns_.isEmpty()) {
          if (columns_.isEmpty()) {
            columns_ = other.columns_;
            bitField0_ = (bitField0_ & ~0x00000002);
          } else {
            ensureColumnsIsMutable();
            columns_.addAll(other.columns_);
          }
          onChanged();
        }
        if (!other.planColumns_.isEmpty()) {
          if (planColumns_.isEmpty()) {
            planColumns_ = other.planColumns_;
            bitField0_ = (bitField0_ & ~0x00000004);
          } else {
            ensurePlanColumnsIsMutable();
            planColumns_.addAll(other.planColumns_);
          }
          onChanged();
        }
        if (!other.getDefinition().isEmpty()) {
          definition_ = other.definition_;
          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.Ddl.CreateViewExpr parsedMessage = null;
        try {
          parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry);
        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
          parsedMessage = (io.greptime.v1.Ddl.CreateViewExpr) e.getUnfinishedMessage();
          throw e.unwrapIOException();
        } finally {
          if (parsedMessage != null) {
            mergeFrom(parsedMessage);
          }
        }
        return this;
      }
      private int bitField0_;

      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 viewName_ = "";
      /**
       * <code>string view_name = 3;</code>
       * @return The viewName.
       */
      public java.lang.String getViewName() {
        java.lang.Object ref = viewName_;
        if (!(ref instanceof java.lang.String)) {
          com.google.protobuf.ByteString bs =
              (com.google.protobuf.ByteString) ref;
          java.lang.String s = bs.toStringUtf8();
          viewName_ = s;
          return s;
        } else {
          return (java.lang.String) ref;
        }
      }
      /**
       * <code>string view_name = 3;</code>
       * @return The bytes for viewName.
       */
      public com.google.protobuf.ByteString
          getViewNameBytes() {
        java.lang.Object ref = viewName_;
        if (ref instanceof String) {
          com.google.protobuf.ByteString b = 
              com.google.protobuf.ByteString.copyFromUtf8(
                  (java.lang.String) ref);
          viewName_ = b;
          return b;
        } else {
          return (com.google.protobuf.ByteString) ref;
        }
      }
      /**
       * <code>string view_name = 3;</code>
       * @param value The viewName to set.
       * @return This builder for chaining.
       */
      public Builder setViewName(
          java.lang.String value) {
        if (value == null) {
    throw new NullPointerException();
  }
  
        viewName_ = value;
        onChanged();
        return this;
      }
      /**
       * <code>string view_name = 3;</code>
       * @return This builder for chaining.
       */
      public Builder clearViewName() {
        
        viewName_ = getDefaultInstance().getViewName();
        onChanged();
        return this;
      }
      /**
       * <code>string view_name = 3;</code>
       * @param value The bytes for viewName to set.
       * @return This builder for chaining.
       */
      public Builder setViewNameBytes(
          com.google.protobuf.ByteString value) {
        if (value == null) {
    throw new NullPointerException();
  }
  checkByteStringIsUtf8(value);
        
        viewName_ = value;
        onChanged();
        return this;
      }

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

      private boolean createIfNotExists_ ;
      /**
       * <code>bool create_if_not_exists = 5;</code>
       * @return The createIfNotExists.
       */
      @java.lang.Override
      public boolean getCreateIfNotExists() {
        return createIfNotExists_;
      }
      /**
       * <code>bool create_if_not_exists = 5;</code>
       * @param value The createIfNotExists to set.
       * @return This builder for chaining.
       */
      public Builder setCreateIfNotExists(boolean value) {
        
        createIfNotExists_ = value;
        onChanged();
        return this;
      }
      /**
       * <code>bool create_if_not_exists = 5;</code>
       * @return This builder for chaining.
       */
      public Builder clearCreateIfNotExists() {
        
        createIfNotExists_ = false;
        onChanged();
        return this;
      }

      private boolean orReplace_ ;
      /**
       * <code>bool or_replace = 6;</code>
       * @return The orReplace.
       */
      @java.lang.Override
      public boolean getOrReplace() {
        return orReplace_;
      }
      /**
       * <code>bool or_replace = 6;</code>
       * @param value The orReplace to set.
       * @return This builder for chaining.
       */
      public Builder setOrReplace(boolean value) {
        
        orReplace_ = value;
        onChanged();
        return this;
      }
      /**
       * <code>bool or_replace = 6;</code>
       * @return This builder for chaining.
       */
      public Builder clearOrReplace() {
        
        orReplace_ = false;
        onChanged();
        return this;
      }

      private java.util.List<io.greptime.v1.Common.TableName> tableNames_ =
        java.util.Collections.emptyList();
      private void ensureTableNamesIsMutable() {
        if (!((bitField0_ & 0x00000001) != 0)) {
          tableNames_ = new java.util.ArrayList<io.greptime.v1.Common.TableName>(tableNames_);
          bitField0_ |= 0x00000001;
         }
      }

      private com.google.protobuf.RepeatedFieldBuilderV3<
          io.greptime.v1.Common.TableName, io.greptime.v1.Common.TableName.Builder, io.greptime.v1.Common.TableNameOrBuilder> tableNamesBuilder_;

      /**
       * <code>repeated .greptime.v1.TableName table_names = 7;</code>
       */
      public java.util.List<io.greptime.v1.Common.TableName> getTableNamesList() {
        if (tableNamesBuilder_ == null) {
          return java.util.Collections.unmodifiableList(tableNames_);
        } else {
          return tableNamesBuilder_.getMessageList();
        }
      }
      /**
       * <code>repeated .greptime.v1.TableName table_names = 7;</code>
       */
      public int getTableNamesCount() {
        if (tableNamesBuilder_ == null) {
          return tableNames_.size();
        } else {
          return tableNamesBuilder_.getCount();
        }
      }
      /**
       * <code>repeated .greptime.v1.TableName table_names = 7;</code>
       */
      public io.greptime.v1.Common.TableName getTableNames(int index) {
        if (tableNamesBuilder_ == null) {
          return tableNames_.get(index);
        } else {
          return tableNamesBuilder_.getMessage(index);
        }
      }
      /**
       * <code>repeated .greptime.v1.TableName table_names = 7;</code>
       */
      public Builder setTableNames(
          int index, io.greptime.v1.Common.TableName value) {
        if (tableNamesBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          ensureTableNamesIsMutable();
          tableNames_.set(index, value);
          onChanged();
        } else {
          tableNamesBuilder_.setMessage(index, value);
        }
        return this;
      }
      /**
       * <code>repeated .greptime.v1.TableName table_names = 7;</code>
       */
      public Builder setTableNames(
          int index, io.greptime.v1.Common.TableName.Builder builderForValue) {
        if (tableNamesBuilder_ == null) {
          ensureTableNamesIsMutable();
          tableNames_.set(index, builderForValue.build());
          onChanged();
        } else {
          tableNamesBuilder_.setMessage(index, builderForValue.build());
        }
        return this;
      }
      /**
       * <code>repeated .greptime.v1.TableName table_names = 7;</code>
       */
      public Builder addTableNames(io.greptime.v1.Common.TableName value) {
        if (tableNamesBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          ensureTableNamesIsMutable();
          tableNames_.add(value);
          onChanged();
        } else {
          tableNamesBuilder_.addMessage(value);
        }
        return this;
      }
      /**
       * <code>repeated .greptime.v1.TableName table_names = 7;</code>
       */
      public Builder addTableNames(
          int index, io.greptime.v1.Common.TableName value) {
        if (tableNamesBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          ensureTableNamesIsMutable();
          tableNames_.add(index, value);
          onChanged();
        } else {
          tableNamesBuilder_.addMessage(index, value);
        }
        return this;
      }
      /**
       * <code>repeated .greptime.v1.TableName table_names = 7;</code>
       */
      public Builder addTableNames(
          io.greptime.v1.Common.TableName.Builder builderForValue) {
        if (tableNamesBuilder_ == null) {
          ensureTableNamesIsMutable();
          tableNames_.add(builderForValue.build());
          onChanged();
        } else {
          tableNamesBuilder_.addMessage(builderForValue.build());
        }
        return this;
      }
      /**
       * <code>repeated .greptime.v1.TableName table_names = 7;</code>
       */
      public Builder addTableNames(
          int index, io.greptime.v1.Common.TableName.Builder builderForValue) {
        if (tableNamesBuilder_ == null) {
          ensureTableNamesIsMutable();
          tableNames_.add(index, builderForValue.build());
          onChanged();
        } else {
          tableNamesBuilder_.addMessage(index, builderForValue.build());
        }
        return this;
      }
      /**
       * <code>repeated .greptime.v1.TableName table_names = 7;</code>
       */
      public Builder addAllTableNames(
          java.lang.Iterable<? extends io.greptime.v1.Common.TableName> values) {
        if (tableNamesBuilder_ == null) {
          ensureTableNamesIsMutable();
          com.google.protobuf.AbstractMessageLite.Builder.addAll(
              values, tableNames_);
          onChanged();
        } else {
          tableNamesBuilder_.addAllMessages(values);
        }
        return this;
      }
      /**
       * <code>repeated .greptime.v1.TableName table_names = 7;</code>
       */
      public Builder clearTableNames() {
        if (tableNamesBuilder_ == null) {
          tableNames_ = java.util.Collections.emptyList();
          bitField0_ = (bitField0_ & ~0x00000001);
          onChanged();
        } else {
          tableNamesBuilder_.clear();
        }
        return this;
      }
      /**
       * <code>repeated .greptime.v1.TableName table_names = 7;</code>
       */
      public Builder removeTableNames(int index) {
        if (tableNamesBuilder_ == null) {
          ensureTableNamesIsMutable();
          tableNames_.remove(index);
          onChanged();
        } else {
          tableNamesBuilder_.remove(index);
        }
        return this;
      }
      /**
       * <code>repeated .greptime.v1.TableName table_names = 7;</code>
       */
      public io.greptime.v1.Common.TableName.Builder getTableNamesBuilder(
          int index) {
        return getTableNamesFieldBuilder().getBuilder(index);
      }
      /**
       * <code>repeated .greptime.v1.TableName table_names = 7;</code>
       */
      public io.greptime.v1.Common.TableNameOrBuilder getTableNamesOrBuilder(
          int index) {
        if (tableNamesBuilder_ == null) {
          return tableNames_.get(index);  } else {
          return tableNamesBuilder_.getMessageOrBuilder(index);
        }
      }
      /**
       * <code>repeated .greptime.v1.TableName table_names = 7;</code>
       */
      public java.util.List<? extends io.greptime.v1.Common.TableNameOrBuilder> 
           getTableNamesOrBuilderList() {
        if (tableNamesBuilder_ != null) {
          return tableNamesBuilder_.getMessageOrBuilderList();
        } else {
          return java.util.Collections.unmodifiableList(tableNames_);
        }
      }
      /**
       * <code>repeated .greptime.v1.TableName table_names = 7;</code>
       */
      public io.greptime.v1.Common.TableName.Builder addTableNamesBuilder() {
        return getTableNamesFieldBuilder().addBuilder(
            io.greptime.v1.Common.TableName.getDefaultInstance());
      }
      /**
       * <code>repeated .greptime.v1.TableName table_names = 7;</code>
       */
      public io.greptime.v1.Common.TableName.Builder addTableNamesBuilder(
          int index) {
        return getTableNamesFieldBuilder().addBuilder(
            index, io.greptime.v1.Common.TableName.getDefaultInstance());
      }
      /**
       * <code>repeated .greptime.v1.TableName table_names = 7;</code>
       */
      public java.util.List<io.greptime.v1.Common.TableName.Builder> 
           getTableNamesBuilderList() {
        return getTableNamesFieldBuilder().getBuilderList();
      }
      private com.google.protobuf.RepeatedFieldBuilderV3<
          io.greptime.v1.Common.TableName, io.greptime.v1.Common.TableName.Builder, io.greptime.v1.Common.TableNameOrBuilder> 
          getTableNamesFieldBuilder() {
        if (tableNamesBuilder_ == null) {
          tableNamesBuilder_ = new com.google.protobuf.RepeatedFieldBuilderV3<
              io.greptime.v1.Common.TableName, io.greptime.v1.Common.TableName.Builder, io.greptime.v1.Common.TableNameOrBuilder>(
                  tableNames_,
                  ((bitField0_ & 0x00000001) != 0),
                  getParentForChildren(),
                  isClean());
          tableNames_ = null;
        }
        return tableNamesBuilder_;
      }

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

      private com.google.protobuf.LazyStringList planColumns_ = com.google.protobuf.LazyStringArrayList.EMPTY;
      private void ensurePlanColumnsIsMutable() {
        if (!((bitField0_ & 0x00000004) != 0)) {
          planColumns_ = new com.google.protobuf.LazyStringArrayList(planColumns_);
          bitField0_ |= 0x00000004;
         }
      }
      /**
       * <code>repeated string plan_columns = 9;</code>
       * @return A list containing the planColumns.
       */
      public com.google.protobuf.ProtocolStringList
          getPlanColumnsList() {
        return planColumns_.getUnmodifiableView();
      }
      /**
       * <code>repeated string plan_columns = 9;</code>
       * @return The count of planColumns.
       */
      public int getPlanColumnsCount() {
        return planColumns_.size();
      }
      /**
       * <code>repeated string plan_columns = 9;</code>
       * @param index The index of the element to return.
       * @return The planColumns at the given index.
       */
      public java.lang.String getPlanColumns(int index) {
        return planColumns_.get(index);
      }
      /**
       * <code>repeated string plan_columns = 9;</code>
       * @param index The index of the value to return.
       * @return The bytes of the planColumns at the given index.
       */
      public com.google.protobuf.ByteString
          getPlanColumnsBytes(int index) {
        return planColumns_.getByteString(index);
      }
      /**
       * <code>repeated string plan_columns = 9;</code>
       * @param index The index to set the value at.
       * @param value The planColumns to set.
       * @return This builder for chaining.
       */
      public Builder setPlanColumns(
          int index, java.lang.String value) {
        if (value == null) {
    throw new NullPointerException();
  }
  ensurePlanColumnsIsMutable();
        planColumns_.set(index, value);
        onChanged();
        return this;
      }
      /**
       * <code>repeated string plan_columns = 9;</code>
       * @param value The planColumns to add.
       * @return This builder for chaining.
       */
      public Builder addPlanColumns(
          java.lang.String value) {
        if (value == null) {
    throw new NullPointerException();
  }
  ensurePlanColumnsIsMutable();
        planColumns_.add(value);
        onChanged();
        return this;
      }
      /**
       * <code>repeated string plan_columns = 9;</code>
       * @param values The planColumns to add.
       * @return This builder for chaining.
       */
      public Builder addAllPlanColumns(
          java.lang.Iterable<java.lang.String> values) {
        ensurePlanColumnsIsMutable();
        com.google.protobuf.AbstractMessageLite.Builder.addAll(
            values, planColumns_);
        onChanged();
        return this;
      }
      /**
       * <code>repeated string plan_columns = 9;</code>
       * @return This builder for chaining.
       */
      public Builder clearPlanColumns() {
        planColumns_ = com.google.protobuf.LazyStringArrayList.EMPTY;
        bitField0_ = (bitField0_ & ~0x00000004);
        onChanged();
        return this;
      }
      /**
       * <code>repeated string plan_columns = 9;</code>
       * @param value The bytes of the planColumns to add.
       * @return This builder for chaining.
       */
      public Builder addPlanColumnsBytes(
          com.google.protobuf.ByteString value) {
        if (value == null) {
    throw new NullPointerException();
  }
  checkByteStringIsUtf8(value);
        ensurePlanColumnsIsMutable();
        planColumns_.add(value);
        onChanged();
        return this;
      }

      private java.lang.Object definition_ = "";
      /**
       * <code>string definition = 10;</code>
       * @return The definition.
       */
      public java.lang.String getDefinition() {
        java.lang.Object ref = definition_;
        if (!(ref instanceof java.lang.String)) {
          com.google.protobuf.ByteString bs =
              (com.google.protobuf.ByteString) ref;
          java.lang.String s = bs.toStringUtf8();
          definition_ = s;
          return s;
        } else {
          return (java.lang.String) ref;
        }
      }
      /**
       * <code>string definition = 10;</code>
       * @return The bytes for definition.
       */
      public com.google.protobuf.ByteString
          getDefinitionBytes() {
        java.lang.Object ref = definition_;
        if (ref instanceof String) {
          com.google.protobuf.ByteString b = 
              com.google.protobuf.ByteString.copyFromUtf8(
                  (java.lang.String) ref);
          definition_ = b;
          return b;
        } else {
          return (com.google.protobuf.ByteString) ref;
        }
      }
      /**
       * <code>string definition = 10;</code>
       * @param value The definition to set.
       * @return This builder for chaining.
       */
      public Builder setDefinition(
          java.lang.String value) {
        if (value == null) {
    throw new NullPointerException();
  }
  
        definition_ = value;
        onChanged();
        return this;
      }
      /**
       * <code>string definition = 10;</code>
       * @return This builder for chaining.
       */
      public Builder clearDefinition() {
        
        definition_ = getDefaultInstance().getDefinition();
        onChanged();
        return this;
      }
      /**
       * <code>string definition = 10;</code>
       * @param value The bytes for definition to set.
       * @return This builder for chaining.
       */
      public Builder setDefinitionBytes(
          com.google.protobuf.ByteString value) {
        if (value == null) {
    throw new NullPointerException();
  }
  checkByteStringIsUtf8(value);
        
        definition_ = 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.CreateViewExpr)
    }

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

    public static io.greptime.v1.Ddl.CreateViewExpr getDefaultInstance() {
      return DEFAULT_INSTANCE;
    }

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

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

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

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

  }

  public interface DropViewExprOrBuilder extends
      // @@protoc_insertion_point(interface_extends:greptime.v1.DropViewExpr)
      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 view_name = 3;</code>
     * @return The viewName.
     */
    java.lang.String getViewName();
    /**
     * <code>string view_name = 3;</code>
     * @return The bytes for viewName.
     */
    com.google.protobuf.ByteString
        getViewNameBytes();

    /**
     * <code>.greptime.v1.TableId view_id = 4;</code>
     * @return Whether the viewId field is set.
     */
    boolean hasViewId();
    /**
     * <code>.greptime.v1.TableId view_id = 4;</code>
     * @return The viewId.
     */
    io.greptime.v1.Ddl.TableId getViewId();
    /**
     * <code>.greptime.v1.TableId view_id = 4;</code>
     */
    io.greptime.v1.Ddl.TableIdOrBuilder getViewIdOrBuilder();

    /**
     * <code>bool drop_if_exists = 5;</code>
     * @return The dropIfExists.
     */
    boolean getDropIfExists();
  }
  /**
   * <pre>
   * Drop a view
   * </pre>
   *
   * Protobuf type {@code greptime.v1.DropViewExpr}
   */
  public static final class DropViewExpr extends
      com.google.protobuf.GeneratedMessageV3 implements
      // @@protoc_insertion_point(message_implements:greptime.v1.DropViewExpr)
      DropViewExprOrBuilder {
  private static final long serialVersionUID = 0L;
    // Use DropViewExpr.newBuilder() to construct.
    private DropViewExpr(com.google.protobuf.GeneratedMessageV3.Builder<?> builder) {
      super(builder);
    }
    private DropViewExpr() {
      catalogName_ = "";
      schemaName_ = "";
      viewName_ = "";
    }

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

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

              viewName_ = s;
              break;
            }
            case 34: {
              io.greptime.v1.Ddl.TableId.Builder subBuilder = null;
              if (viewId_ != null) {
                subBuilder = viewId_.toBuilder();
              }
              viewId_ = input.readMessage(io.greptime.v1.Ddl.TableId.parser(), extensionRegistry);
              if (subBuilder != null) {
                subBuilder.mergeFrom(viewId_);
                viewId_ = subBuilder.buildPartial();
              }

              break;
            }
            case 40: {

              dropIfExists_ = 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.Ddl.internal_static_greptime_v1_DropViewExpr_descriptor;
    }

    @java.lang.Override
    protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
        internalGetFieldAccessorTable() {
      return io.greptime.v1.Ddl.internal_static_greptime_v1_DropViewExpr_fieldAccessorTable
          .ensureFieldAccessorsInitialized(
              io.greptime.v1.Ddl.DropViewExpr.class, io.greptime.v1.Ddl.DropViewExpr.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 VIEW_NAME_FIELD_NUMBER = 3;
    private volatile java.lang.Object viewName_;
    /**
     * <code>string view_name = 3;</code>
     * @return The viewName.
     */
    @java.lang.Override
    public java.lang.String getViewName() {
      java.lang.Object ref = viewName_;
      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();
        viewName_ = s;
        return s;
      }
    }
    /**
     * <code>string view_name = 3;</code>
     * @return The bytes for viewName.
     */
    @java.lang.Override
    public com.google.protobuf.ByteString
        getViewNameBytes() {
      java.lang.Object ref = viewName_;
      if (ref instanceof java.lang.String) {
        com.google.protobuf.ByteString b = 
            com.google.protobuf.ByteString.copyFromUtf8(
                (java.lang.String) ref);
        viewName_ = b;
        return b;
      } else {
        return (com.google.protobuf.ByteString) ref;
      }
    }

    public static final int VIEW_ID_FIELD_NUMBER = 4;
    private io.greptime.v1.Ddl.TableId viewId_;
    /**
     * <code>.greptime.v1.TableId view_id = 4;</code>
     * @return Whether the viewId field is set.
     */
    @java.lang.Override
    public boolean hasViewId() {
      return viewId_ != null;
    }
    /**
     * <code>.greptime.v1.TableId view_id = 4;</code>
     * @return The viewId.
     */
    @java.lang.Override
    public io.greptime.v1.Ddl.TableId getViewId() {
      return viewId_ == null ? io.greptime.v1.Ddl.TableId.getDefaultInstance() : viewId_;
    }
    /**
     * <code>.greptime.v1.TableId view_id = 4;</code>
     */
    @java.lang.Override
    public io.greptime.v1.Ddl.TableIdOrBuilder getViewIdOrBuilder() {
      return getViewId();
    }

    public static final int DROP_IF_EXISTS_FIELD_NUMBER = 5;
    private boolean dropIfExists_;
    /**
     * <code>bool drop_if_exists = 5;</code>
     * @return The dropIfExists.
     */
    @java.lang.Override
    public boolean getDropIfExists() {
      return dropIfExists_;
    }

    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(viewName_)) {
        com.google.protobuf.GeneratedMessageV3.writeString(output, 3, viewName_);
      }
      if (viewId_ != null) {
        output.writeMessage(4, getViewId());
      }
      if (dropIfExists_ != false) {
        output.writeBool(5, dropIfExists_);
      }
      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(viewName_)) {
        size += com.google.protobuf.GeneratedMessageV3.computeStringSize(3, viewName_);
      }
      if (viewId_ != null) {
        size += com.google.protobuf.CodedOutputStream
          .computeMessageSize(4, getViewId());
      }
      if (dropIfExists_ != false) {
        size += com.google.protobuf.CodedOutputStream
          .computeBoolSize(5, dropIfExists_);
      }
      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.Ddl.DropViewExpr)) {
        return super.equals(obj);
      }
      io.greptime.v1.Ddl.DropViewExpr other = (io.greptime.v1.Ddl.DropViewExpr) obj;

      if (!getCatalogName()
          .equals(other.getCatalogName())) return false;
      if (!getSchemaName()
          .equals(other.getSchemaName())) return false;
      if (!getViewName()
          .equals(other.getViewName())) return false;
      if (hasViewId() != other.hasViewId()) return false;
      if (hasViewId()) {
        if (!getViewId()
            .equals(other.getViewId())) return false;
      }
      if (getDropIfExists()
          != other.getDropIfExists()) 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) + VIEW_NAME_FIELD_NUMBER;
      hash = (53 * hash) + getViewName().hashCode();
      if (hasViewId()) {
        hash = (37 * hash) + VIEW_ID_FIELD_NUMBER;
        hash = (53 * hash) + getViewId().hashCode();
      }
      hash = (37 * hash) + DROP_IF_EXISTS_FIELD_NUMBER;
      hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean(
          getDropIfExists());
      hash = (29 * hash) + unknownFields.hashCode();
      memoizedHashCode = hash;
      return hash;
    }

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

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

      // Construct using io.greptime.v1.Ddl.DropViewExpr.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_ = "";

        viewName_ = "";

        if (viewIdBuilder_ == null) {
          viewId_ = null;
        } else {
          viewId_ = null;
          viewIdBuilder_ = null;
        }
        dropIfExists_ = false;

        return this;
      }

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

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

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

      @java.lang.Override
      public io.greptime.v1.Ddl.DropViewExpr buildPartial() {
        io.greptime.v1.Ddl.DropViewExpr result = new io.greptime.v1.Ddl.DropViewExpr(this);
        result.catalogName_ = catalogName_;
        result.schemaName_ = schemaName_;
        result.viewName_ = viewName_;
        if (viewIdBuilder_ == null) {
          result.viewId_ = viewId_;
        } else {
          result.viewId_ = viewIdBuilder_.build();
        }
        result.dropIfExists_ = dropIfExists_;
        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.Ddl.DropViewExpr) {
          return mergeFrom((io.greptime.v1.Ddl.DropViewExpr)other);
        } else {
          super.mergeFrom(other);
          return this;
        }
      }

      public Builder mergeFrom(io.greptime.v1.Ddl.DropViewExpr other) {
        if (other == io.greptime.v1.Ddl.DropViewExpr.getDefaultInstance()) return this;
        if (!other.getCatalogName().isEmpty()) {
          catalogName_ = other.catalogName_;
          onChanged();
        }
        if (!other.getSchemaName().isEmpty()) {
          schemaName_ = other.schemaName_;
          onChanged();
        }
        if (!other.getViewName().isEmpty()) {
          viewName_ = other.viewName_;
          onChanged();
        }
        if (other.hasViewId()) {
          mergeViewId(other.getViewId());
        }
        if (other.getDropIfExists() != false) {
          setDropIfExists(other.getDropIfExists());
        }
        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.Ddl.DropViewExpr parsedMessage = null;
        try {
          parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry);
        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
          parsedMessage = (io.greptime.v1.Ddl.DropViewExpr) 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 viewName_ = "";
      /**
       * <code>string view_name = 3;</code>
       * @return The viewName.
       */
      public java.lang.String getViewName() {
        java.lang.Object ref = viewName_;
        if (!(ref instanceof java.lang.String)) {
          com.google.protobuf.ByteString bs =
              (com.google.protobuf.ByteString) ref;
          java.lang.String s = bs.toStringUtf8();
          viewName_ = s;
          return s;
        } else {
          return (java.lang.String) ref;
        }
      }
      /**
       * <code>string view_name = 3;</code>
       * @return The bytes for viewName.
       */
      public com.google.protobuf.ByteString
          getViewNameBytes() {
        java.lang.Object ref = viewName_;
        if (ref instanceof String) {
          com.google.protobuf.ByteString b = 
              com.google.protobuf.ByteString.copyFromUtf8(
                  (java.lang.String) ref);
          viewName_ = b;
          return b;
        } else {
          return (com.google.protobuf.ByteString) ref;
        }
      }
      /**
       * <code>string view_name = 3;</code>
       * @param value The viewName to set.
       * @return This builder for chaining.
       */
      public Builder setViewName(
          java.lang.String value) {
        if (value == null) {
    throw new NullPointerException();
  }
  
        viewName_ = value;
        onChanged();
        return this;
      }
      /**
       * <code>string view_name = 3;</code>
       * @return This builder for chaining.
       */
      public Builder clearViewName() {
        
        viewName_ = getDefaultInstance().getViewName();
        onChanged();
        return this;
      }
      /**
       * <code>string view_name = 3;</code>
       * @param value The bytes for viewName to set.
       * @return This builder for chaining.
       */
      public Builder setViewNameBytes(
          com.google.protobuf.ByteString value) {
        if (value == null) {
    throw new NullPointerException();
  }
  checkByteStringIsUtf8(value);
        
        viewName_ = value;
        onChanged();
        return this;
      }

      private io.greptime.v1.Ddl.TableId viewId_;
      private com.google.protobuf.SingleFieldBuilderV3<
          io.greptime.v1.Ddl.TableId, io.greptime.v1.Ddl.TableId.Builder, io.greptime.v1.Ddl.TableIdOrBuilder> viewIdBuilder_;
      /**
       * <code>.greptime.v1.TableId view_id = 4;</code>
       * @return Whether the viewId field is set.
       */
      public boolean hasViewId() {
        return viewIdBuilder_ != null || viewId_ != null;
      }
      /**
       * <code>.greptime.v1.TableId view_id = 4;</code>
       * @return The viewId.
       */
      public io.greptime.v1.Ddl.TableId getViewId() {
        if (viewIdBuilder_ == null) {
          return viewId_ == null ? io.greptime.v1.Ddl.TableId.getDefaultInstance() : viewId_;
        } else {
          return viewIdBuilder_.getMessage();
        }
      }
      /**
       * <code>.greptime.v1.TableId view_id = 4;</code>
       */
      public Builder setViewId(io.greptime.v1.Ddl.TableId value) {
        if (viewIdBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          viewId_ = value;
          onChanged();
        } else {
          viewIdBuilder_.setMessage(value);
        }

        return this;
      }
      /**
       * <code>.greptime.v1.TableId view_id = 4;</code>
       */
      public Builder setViewId(
          io.greptime.v1.Ddl.TableId.Builder builderForValue) {
        if (viewIdBuilder_ == null) {
          viewId_ = builderForValue.build();
          onChanged();
        } else {
          viewIdBuilder_.setMessage(builderForValue.build());
        }

        return this;
      }
      /**
       * <code>.greptime.v1.TableId view_id = 4;</code>
       */
      public Builder mergeViewId(io.greptime.v1.Ddl.TableId value) {
        if (viewIdBuilder_ == null) {
          if (viewId_ != null) {
            viewId_ =
              io.greptime.v1.Ddl.TableId.newBuilder(viewId_).mergeFrom(value).buildPartial();
          } else {
            viewId_ = value;
          }
          onChanged();
        } else {
          viewIdBuilder_.mergeFrom(value);
        }

        return this;
      }
      /**
       * <code>.greptime.v1.TableId view_id = 4;</code>
       */
      public Builder clearViewId() {
        if (viewIdBuilder_ == null) {
          viewId_ = null;
          onChanged();
        } else {
          viewId_ = null;
          viewIdBuilder_ = null;
        }

        return this;
      }
      /**
       * <code>.greptime.v1.TableId view_id = 4;</code>
       */
      public io.greptime.v1.Ddl.TableId.Builder getViewIdBuilder() {
        
        onChanged();
        return getViewIdFieldBuilder().getBuilder();
      }
      /**
       * <code>.greptime.v1.TableId view_id = 4;</code>
       */
      public io.greptime.v1.Ddl.TableIdOrBuilder getViewIdOrBuilder() {
        if (viewIdBuilder_ != null) {
          return viewIdBuilder_.getMessageOrBuilder();
        } else {
          return viewId_ == null ?
              io.greptime.v1.Ddl.TableId.getDefaultInstance() : viewId_;
        }
      }
      /**
       * <code>.greptime.v1.TableId view_id = 4;</code>
       */
      private com.google.protobuf.SingleFieldBuilderV3<
          io.greptime.v1.Ddl.TableId, io.greptime.v1.Ddl.TableId.Builder, io.greptime.v1.Ddl.TableIdOrBuilder> 
          getViewIdFieldBuilder() {
        if (viewIdBuilder_ == null) {
          viewIdBuilder_ = new com.google.protobuf.SingleFieldBuilderV3<
              io.greptime.v1.Ddl.TableId, io.greptime.v1.Ddl.TableId.Builder, io.greptime.v1.Ddl.TableIdOrBuilder>(
                  getViewId(),
                  getParentForChildren(),
                  isClean());
          viewId_ = null;
        }
        return viewIdBuilder_;
      }

      private boolean dropIfExists_ ;
      /**
       * <code>bool drop_if_exists = 5;</code>
       * @return The dropIfExists.
       */
      @java.lang.Override
      public boolean getDropIfExists() {
        return dropIfExists_;
      }
      /**
       * <code>bool drop_if_exists = 5;</code>
       * @param value The dropIfExists to set.
       * @return This builder for chaining.
       */
      public Builder setDropIfExists(boolean value) {
        
        dropIfExists_ = value;
        onChanged();
        return this;
      }
      /**
       * <code>bool drop_if_exists = 5;</code>
       * @return This builder for chaining.
       */
      public Builder clearDropIfExists() {
        
        dropIfExists_ = 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.DropViewExpr)
    }

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

    public static io.greptime.v1.Ddl.DropViewExpr getDefaultInstance() {
      return DEFAULT_INSTANCE;
    }

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

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

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

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

  }

  public interface CreateTableExprOrBuilder extends
      // @@protoc_insertion_point(interface_extends:greptime.v1.CreateTableExpr)
      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();

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

    /**
     * <code>repeated .greptime.v1.ColumnDef column_defs = 5;</code>
     */
    java.util.List<io.greptime.v1.Ddl.ColumnDef> 
        getColumnDefsList();
    /**
     * <code>repeated .greptime.v1.ColumnDef column_defs = 5;</code>
     */
    io.greptime.v1.Ddl.ColumnDef getColumnDefs(int index);
    /**
     * <code>repeated .greptime.v1.ColumnDef column_defs = 5;</code>
     */
    int getColumnDefsCount();
    /**
     * <code>repeated .greptime.v1.ColumnDef column_defs = 5;</code>
     */
    java.util.List<? extends io.greptime.v1.Ddl.ColumnDefOrBuilder> 
        getColumnDefsOrBuilderList();
    /**
     * <code>repeated .greptime.v1.ColumnDef column_defs = 5;</code>
     */
    io.greptime.v1.Ddl.ColumnDefOrBuilder getColumnDefsOrBuilder(
        int index);

    /**
     * <code>string time_index = 6;</code>
     * @return The timeIndex.
     */
    java.lang.String getTimeIndex();
    /**
     * <code>string time_index = 6;</code>
     * @return The bytes for timeIndex.
     */
    com.google.protobuf.ByteString
        getTimeIndexBytes();

    /**
     * <code>repeated string primary_keys = 7;</code>
     * @return A list containing the primaryKeys.
     */
    java.util.List<java.lang.String>
        getPrimaryKeysList();
    /**
     * <code>repeated string primary_keys = 7;</code>
     * @return The count of primaryKeys.
     */
    int getPrimaryKeysCount();
    /**
     * <code>repeated string primary_keys = 7;</code>
     * @param index The index of the element to return.
     * @return The primaryKeys at the given index.
     */
    java.lang.String getPrimaryKeys(int index);
    /**
     * <code>repeated string primary_keys = 7;</code>
     * @param index The index of the value to return.
     * @return The bytes of the primaryKeys at the given index.
     */
    com.google.protobuf.ByteString
        getPrimaryKeysBytes(int index);

    /**
     * <code>bool create_if_not_exists = 8;</code>
     * @return The createIfNotExists.
     */
    boolean getCreateIfNotExists();

    /**
     * <code>map&lt;string, string&gt; table_options = 9;</code>
     */
    int getTableOptionsCount();
    /**
     * <code>map&lt;string, string&gt; table_options = 9;</code>
     */
    boolean containsTableOptions(
        java.lang.String key);
    /**
     * Use {@link #getTableOptionsMap()} instead.
     */
    @java.lang.Deprecated
    java.util.Map<java.lang.String, java.lang.String>
    getTableOptions();
    /**
     * <code>map&lt;string, string&gt; table_options = 9;</code>
     */
    java.util.Map<java.lang.String, java.lang.String>
    getTableOptionsMap();
    /**
     * <code>map&lt;string, string&gt; table_options = 9;</code>
     */

    /* nullable */
java.lang.String getTableOptionsOrDefault(
        java.lang.String key,
        /* nullable */
java.lang.String defaultValue);
    /**
     * <code>map&lt;string, string&gt; table_options = 9;</code>
     */

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

    /**
     * <code>.greptime.v1.TableId table_id = 10;</code>
     * @return Whether the tableId field is set.
     */
    boolean hasTableId();
    /**
     * <code>.greptime.v1.TableId table_id = 10;</code>
     * @return The tableId.
     */
    io.greptime.v1.Ddl.TableId getTableId();
    /**
     * <code>.greptime.v1.TableId table_id = 10;</code>
     */
    io.greptime.v1.Ddl.TableIdOrBuilder getTableIdOrBuilder();

    /**
     * <code>string engine = 12;</code>
     * @return The engine.
     */
    java.lang.String getEngine();
    /**
     * <code>string engine = 12;</code>
     * @return The bytes for engine.
     */
    com.google.protobuf.ByteString
        getEngineBytes();
  }
  /**
   * Protobuf type {@code greptime.v1.CreateTableExpr}
   */
  public static final class CreateTableExpr extends
      com.google.protobuf.GeneratedMessageV3 implements
      // @@protoc_insertion_point(message_implements:greptime.v1.CreateTableExpr)
      CreateTableExprOrBuilder {
  private static final long serialVersionUID = 0L;
    // Use CreateTableExpr.newBuilder() to construct.
    private CreateTableExpr(com.google.protobuf.GeneratedMessageV3.Builder<?> builder) {
      super(builder);
    }
    private CreateTableExpr() {
      catalogName_ = "";
      schemaName_ = "";
      tableName_ = "";
      desc_ = "";
      columnDefs_ = java.util.Collections.emptyList();
      timeIndex_ = "";
      primaryKeys_ = com.google.protobuf.LazyStringArrayList.EMPTY;
      engine_ = "";
    }

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

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

              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;
            }
            case 34: {
              java.lang.String s = input.readStringRequireUtf8();

              desc_ = s;
              break;
            }
            case 42: {
              if (!((mutable_bitField0_ & 0x00000001) != 0)) {
                columnDefs_ = new java.util.ArrayList<io.greptime.v1.Ddl.ColumnDef>();
                mutable_bitField0_ |= 0x00000001;
              }
              columnDefs_.add(
                  input.readMessage(io.greptime.v1.Ddl.ColumnDef.parser(), extensionRegistry));
              break;
            }
            case 50: {
              java.lang.String s = input.readStringRequireUtf8();

              timeIndex_ = s;
              break;
            }
            case 58: {
              java.lang.String s = input.readStringRequireUtf8();
              if (!((mutable_bitField0_ & 0x00000002) != 0)) {
                primaryKeys_ = new com.google.protobuf.LazyStringArrayList();
                mutable_bitField0_ |= 0x00000002;
              }
              primaryKeys_.add(s);
              break;
            }
            case 64: {

              createIfNotExists_ = input.readBool();
              break;
            }
            case 74: {
              if (!((mutable_bitField0_ & 0x00000004) != 0)) {
                tableOptions_ = com.google.protobuf.MapField.newMapField(
                    TableOptionsDefaultEntryHolder.defaultEntry);
                mutable_bitField0_ |= 0x00000004;
              }
              com.google.protobuf.MapEntry<java.lang.String, java.lang.String>
              tableOptions__ = input.readMessage(
                  TableOptionsDefaultEntryHolder.defaultEntry.getParserForType(), extensionRegistry);
              tableOptions_.getMutableMap().put(
                  tableOptions__.getKey(), tableOptions__.getValue());
              break;
            }
            case 82: {
              io.greptime.v1.Ddl.TableId.Builder subBuilder = null;
              if (tableId_ != null) {
                subBuilder = tableId_.toBuilder();
              }
              tableId_ = input.readMessage(io.greptime.v1.Ddl.TableId.parser(), extensionRegistry);
              if (subBuilder != null) {
                subBuilder.mergeFrom(tableId_);
                tableId_ = subBuilder.buildPartial();
              }

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

              engine_ = 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 {
        if (((mutable_bitField0_ & 0x00000001) != 0)) {
          columnDefs_ = java.util.Collections.unmodifiableList(columnDefs_);
        }
        if (((mutable_bitField0_ & 0x00000002) != 0)) {
          primaryKeys_ = primaryKeys_.getUnmodifiableView();
        }
        this.unknownFields = unknownFields.build();
        makeExtensionsImmutable();
      }
    }
    public static final com.google.protobuf.Descriptors.Descriptor
        getDescriptor() {
      return io.greptime.v1.Ddl.internal_static_greptime_v1_CreateTableExpr_descriptor;
    }

    @SuppressWarnings({"rawtypes"})
    @java.lang.Override
    protected com.google.protobuf.MapField internalGetMapField(
        int number) {
      switch (number) {
        case 9:
          return internalGetTableOptions();
        default:
          throw new RuntimeException(
              "Invalid map field number: " + number);
      }
    }
    @java.lang.Override
    protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
        internalGetFieldAccessorTable() {
      return io.greptime.v1.Ddl.internal_static_greptime_v1_CreateTableExpr_fieldAccessorTable
          .ensureFieldAccessorsInitialized(
              io.greptime.v1.Ddl.CreateTableExpr.class, io.greptime.v1.Ddl.CreateTableExpr.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;
      }
    }

    public static final int DESC_FIELD_NUMBER = 4;
    private volatile java.lang.Object desc_;
    /**
     * <code>string desc = 4;</code>
     * @return The desc.
     */
    @java.lang.Override
    public java.lang.String getDesc() {
      java.lang.Object ref = desc_;
      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();
        desc_ = s;
        return s;
      }
    }
    /**
     * <code>string desc = 4;</code>
     * @return The bytes for desc.
     */
    @java.lang.Override
    public com.google.protobuf.ByteString
        getDescBytes() {
      java.lang.Object ref = desc_;
      if (ref instanceof java.lang.String) {
        com.google.protobuf.ByteString b = 
            com.google.protobuf.ByteString.copyFromUtf8(
                (java.lang.String) ref);
        desc_ = b;
        return b;
      } else {
        return (com.google.protobuf.ByteString) ref;
      }
    }

    public static final int COLUMN_DEFS_FIELD_NUMBER = 5;
    private java.util.List<io.greptime.v1.Ddl.ColumnDef> columnDefs_;
    /**
     * <code>repeated .greptime.v1.ColumnDef column_defs = 5;</code>
     */
    @java.lang.Override
    public java.util.List<io.greptime.v1.Ddl.ColumnDef> getColumnDefsList() {
      return columnDefs_;
    }
    /**
     * <code>repeated .greptime.v1.ColumnDef column_defs = 5;</code>
     */
    @java.lang.Override
    public java.util.List<? extends io.greptime.v1.Ddl.ColumnDefOrBuilder> 
        getColumnDefsOrBuilderList() {
      return columnDefs_;
    }
    /**
     * <code>repeated .greptime.v1.ColumnDef column_defs = 5;</code>
     */
    @java.lang.Override
    public int getColumnDefsCount() {
      return columnDefs_.size();
    }
    /**
     * <code>repeated .greptime.v1.ColumnDef column_defs = 5;</code>
     */
    @java.lang.Override
    public io.greptime.v1.Ddl.ColumnDef getColumnDefs(int index) {
      return columnDefs_.get(index);
    }
    /**
     * <code>repeated .greptime.v1.ColumnDef column_defs = 5;</code>
     */
    @java.lang.Override
    public io.greptime.v1.Ddl.ColumnDefOrBuilder getColumnDefsOrBuilder(
        int index) {
      return columnDefs_.get(index);
    }

    public static final int TIME_INDEX_FIELD_NUMBER = 6;
    private volatile java.lang.Object timeIndex_;
    /**
     * <code>string time_index = 6;</code>
     * @return The timeIndex.
     */
    @java.lang.Override
    public java.lang.String getTimeIndex() {
      java.lang.Object ref = timeIndex_;
      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();
        timeIndex_ = s;
        return s;
      }
    }
    /**
     * <code>string time_index = 6;</code>
     * @return The bytes for timeIndex.
     */
    @java.lang.Override
    public com.google.protobuf.ByteString
        getTimeIndexBytes() {
      java.lang.Object ref = timeIndex_;
      if (ref instanceof java.lang.String) {
        com.google.protobuf.ByteString b = 
            com.google.protobuf.ByteString.copyFromUtf8(
                (java.lang.String) ref);
        timeIndex_ = b;
        return b;
      } else {
        return (com.google.protobuf.ByteString) ref;
      }
    }

    public static final int PRIMARY_KEYS_FIELD_NUMBER = 7;
    private com.google.protobuf.LazyStringList primaryKeys_;
    /**
     * <code>repeated string primary_keys = 7;</code>
     * @return A list containing the primaryKeys.
     */
    public com.google.protobuf.ProtocolStringList
        getPrimaryKeysList() {
      return primaryKeys_;
    }
    /**
     * <code>repeated string primary_keys = 7;</code>
     * @return The count of primaryKeys.
     */
    public int getPrimaryKeysCount() {
      return primaryKeys_.size();
    }
    /**
     * <code>repeated string primary_keys = 7;</code>
     * @param index The index of the element to return.
     * @return The primaryKeys at the given index.
     */
    public java.lang.String getPrimaryKeys(int index) {
      return primaryKeys_.get(index);
    }
    /**
     * <code>repeated string primary_keys = 7;</code>
     * @param index The index of the value to return.
     * @return The bytes of the primaryKeys at the given index.
     */
    public com.google.protobuf.ByteString
        getPrimaryKeysBytes(int index) {
      return primaryKeys_.getByteString(index);
    }

    public static final int CREATE_IF_NOT_EXISTS_FIELD_NUMBER = 8;
    private boolean createIfNotExists_;
    /**
     * <code>bool create_if_not_exists = 8;</code>
     * @return The createIfNotExists.
     */
    @java.lang.Override
    public boolean getCreateIfNotExists() {
      return createIfNotExists_;
    }

    public static final int TABLE_OPTIONS_FIELD_NUMBER = 9;
    private static final class TableOptionsDefaultEntryHolder {
      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.Ddl.internal_static_greptime_v1_CreateTableExpr_TableOptionsEntry_descriptor, 
                  com.google.protobuf.WireFormat.FieldType.STRING,
                  "",
                  com.google.protobuf.WireFormat.FieldType.STRING,
                  "");
    }
    private com.google.protobuf.MapField<
        java.lang.String, java.lang.String> tableOptions_;
    private com.google.protobuf.MapField<java.lang.String, java.lang.String>
    internalGetTableOptions() {
      if (tableOptions_ == null) {
        return com.google.protobuf.MapField.emptyMapField(
            TableOptionsDefaultEntryHolder.defaultEntry);
      }
      return tableOptions_;
    }

    public int getTableOptionsCount() {
      return internalGetTableOptions().getMap().size();
    }
    /**
     * <code>map&lt;string, string&gt; table_options = 9;</code>
     */

    @java.lang.Override
    public boolean containsTableOptions(
        java.lang.String key) {
      if (key == null) { throw new NullPointerException("map key"); }
      return internalGetTableOptions().getMap().containsKey(key);
    }
    /**
     * Use {@link #getTableOptionsMap()} instead.
     */
    @java.lang.Override
    @java.lang.Deprecated
    public java.util.Map<java.lang.String, java.lang.String> getTableOptions() {
      return getTableOptionsMap();
    }
    /**
     * <code>map&lt;string, string&gt; table_options = 9;</code>
     */
    @java.lang.Override

    public java.util.Map<java.lang.String, java.lang.String> getTableOptionsMap() {
      return internalGetTableOptions().getMap();
    }
    /**
     * <code>map&lt;string, string&gt; table_options = 9;</code>
     */
    @java.lang.Override

    public java.lang.String getTableOptionsOrDefault(
        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 =
          internalGetTableOptions().getMap();
      return map.containsKey(key) ? map.get(key) : defaultValue;
    }
    /**
     * <code>map&lt;string, string&gt; table_options = 9;</code>
     */
    @java.lang.Override

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

    public static final int TABLE_ID_FIELD_NUMBER = 10;
    private io.greptime.v1.Ddl.TableId tableId_;
    /**
     * <code>.greptime.v1.TableId table_id = 10;</code>
     * @return Whether the tableId field is set.
     */
    @java.lang.Override
    public boolean hasTableId() {
      return tableId_ != null;
    }
    /**
     * <code>.greptime.v1.TableId table_id = 10;</code>
     * @return The tableId.
     */
    @java.lang.Override
    public io.greptime.v1.Ddl.TableId getTableId() {
      return tableId_ == null ? io.greptime.v1.Ddl.TableId.getDefaultInstance() : tableId_;
    }
    /**
     * <code>.greptime.v1.TableId table_id = 10;</code>
     */
    @java.lang.Override
    public io.greptime.v1.Ddl.TableIdOrBuilder getTableIdOrBuilder() {
      return getTableId();
    }

    public static final int ENGINE_FIELD_NUMBER = 12;
    private volatile java.lang.Object engine_;
    /**
     * <code>string engine = 12;</code>
     * @return The engine.
     */
    @java.lang.Override
    public java.lang.String getEngine() {
      java.lang.Object ref = engine_;
      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();
        engine_ = s;
        return s;
      }
    }
    /**
     * <code>string engine = 12;</code>
     * @return The bytes for engine.
     */
    @java.lang.Override
    public com.google.protobuf.ByteString
        getEngineBytes() {
      java.lang.Object ref = engine_;
      if (ref instanceof java.lang.String) {
        com.google.protobuf.ByteString b = 
            com.google.protobuf.ByteString.copyFromUtf8(
                (java.lang.String) ref);
        engine_ = 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_);
      }
      if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(desc_)) {
        com.google.protobuf.GeneratedMessageV3.writeString(output, 4, desc_);
      }
      for (int i = 0; i < columnDefs_.size(); i++) {
        output.writeMessage(5, columnDefs_.get(i));
      }
      if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(timeIndex_)) {
        com.google.protobuf.GeneratedMessageV3.writeString(output, 6, timeIndex_);
      }
      for (int i = 0; i < primaryKeys_.size(); i++) {
        com.google.protobuf.GeneratedMessageV3.writeString(output, 7, primaryKeys_.getRaw(i));
      }
      if (createIfNotExists_ != false) {
        output.writeBool(8, createIfNotExists_);
      }
      com.google.protobuf.GeneratedMessageV3
        .serializeStringMapTo(
          output,
          internalGetTableOptions(),
          TableOptionsDefaultEntryHolder.defaultEntry,
          9);
      if (tableId_ != null) {
        output.writeMessage(10, getTableId());
      }
      if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(engine_)) {
        com.google.protobuf.GeneratedMessageV3.writeString(output, 12, engine_);
      }
      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_);
      }
      if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(desc_)) {
        size += com.google.protobuf.GeneratedMessageV3.computeStringSize(4, desc_);
      }
      for (int i = 0; i < columnDefs_.size(); i++) {
        size += com.google.protobuf.CodedOutputStream
          .computeMessageSize(5, columnDefs_.get(i));
      }
      if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(timeIndex_)) {
        size += com.google.protobuf.GeneratedMessageV3.computeStringSize(6, timeIndex_);
      }
      {
        int dataSize = 0;
        for (int i = 0; i < primaryKeys_.size(); i++) {
          dataSize += computeStringSizeNoTag(primaryKeys_.getRaw(i));
        }
        size += dataSize;
        size += 1 * getPrimaryKeysList().size();
      }
      if (createIfNotExists_ != false) {
        size += com.google.protobuf.CodedOutputStream
          .computeBoolSize(8, createIfNotExists_);
      }
      for (java.util.Map.Entry<java.lang.String, java.lang.String> entry
           : internalGetTableOptions().getMap().entrySet()) {
        com.google.protobuf.MapEntry<java.lang.String, java.lang.String>
        tableOptions__ = TableOptionsDefaultEntryHolder.defaultEntry.newBuilderForType()
            .setKey(entry.getKey())
            .setValue(entry.getValue())
            .build();
        size += com.google.protobuf.CodedOutputStream
            .computeMessageSize(9, tableOptions__);
      }
      if (tableId_ != null) {
        size += com.google.protobuf.CodedOutputStream
          .computeMessageSize(10, getTableId());
      }
      if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(engine_)) {
        size += com.google.protobuf.GeneratedMessageV3.computeStringSize(12, engine_);
      }
      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.Ddl.CreateTableExpr)) {
        return super.equals(obj);
      }
      io.greptime.v1.Ddl.CreateTableExpr other = (io.greptime.v1.Ddl.CreateTableExpr) obj;

      if (!getCatalogName()
          .equals(other.getCatalogName())) return false;
      if (!getSchemaName()
          .equals(other.getSchemaName())) return false;
      if (!getTableName()
          .equals(other.getTableName())) return false;
      if (!getDesc()
          .equals(other.getDesc())) return false;
      if (!getColumnDefsList()
          .equals(other.getColumnDefsList())) return false;
      if (!getTimeIndex()
          .equals(other.getTimeIndex())) return false;
      if (!getPrimaryKeysList()
          .equals(other.getPrimaryKeysList())) return false;
      if (getCreateIfNotExists()
          != other.getCreateIfNotExists()) return false;
      if (!internalGetTableOptions().equals(
          other.internalGetTableOptions())) return false;
      if (hasTableId() != other.hasTableId()) return false;
      if (hasTableId()) {
        if (!getTableId()
            .equals(other.getTableId())) return false;
      }
      if (!getEngine()
          .equals(other.getEngine())) 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 = (37 * hash) + DESC_FIELD_NUMBER;
      hash = (53 * hash) + getDesc().hashCode();
      if (getColumnDefsCount() > 0) {
        hash = (37 * hash) + COLUMN_DEFS_FIELD_NUMBER;
        hash = (53 * hash) + getColumnDefsList().hashCode();
      }
      hash = (37 * hash) + TIME_INDEX_FIELD_NUMBER;
      hash = (53 * hash) + getTimeIndex().hashCode();
      if (getPrimaryKeysCount() > 0) {
        hash = (37 * hash) + PRIMARY_KEYS_FIELD_NUMBER;
        hash = (53 * hash) + getPrimaryKeysList().hashCode();
      }
      hash = (37 * hash) + CREATE_IF_NOT_EXISTS_FIELD_NUMBER;
      hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean(
          getCreateIfNotExists());
      if (!internalGetTableOptions().getMap().isEmpty()) {
        hash = (37 * hash) + TABLE_OPTIONS_FIELD_NUMBER;
        hash = (53 * hash) + internalGetTableOptions().hashCode();
      }
      if (hasTableId()) {
        hash = (37 * hash) + TABLE_ID_FIELD_NUMBER;
        hash = (53 * hash) + getTableId().hashCode();
      }
      hash = (37 * hash) + ENGINE_FIELD_NUMBER;
      hash = (53 * hash) + getEngine().hashCode();
      hash = (29 * hash) + unknownFields.hashCode();
      memoizedHashCode = hash;
      return hash;
    }

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

      @SuppressWarnings({"rawtypes"})
      protected com.google.protobuf.MapField internalGetMapField(
          int number) {
        switch (number) {
          case 9:
            return internalGetTableOptions();
          default:
            throw new RuntimeException(
                "Invalid map field number: " + number);
        }
      }
      @SuppressWarnings({"rawtypes"})
      protected com.google.protobuf.MapField internalGetMutableMapField(
          int number) {
        switch (number) {
          case 9:
            return internalGetMutableTableOptions();
          default:
            throw new RuntimeException(
                "Invalid map field number: " + number);
        }
      }
      @java.lang.Override
      protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return io.greptime.v1.Ddl.internal_static_greptime_v1_CreateTableExpr_fieldAccessorTable
            .ensureFieldAccessorsInitialized(
                io.greptime.v1.Ddl.CreateTableExpr.class, io.greptime.v1.Ddl.CreateTableExpr.Builder.class);
      }

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

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

        schemaName_ = "";

        tableName_ = "";

        desc_ = "";

        if (columnDefsBuilder_ == null) {
          columnDefs_ = java.util.Collections.emptyList();
          bitField0_ = (bitField0_ & ~0x00000001);
        } else {
          columnDefsBuilder_.clear();
        }
        timeIndex_ = "";

        primaryKeys_ = com.google.protobuf.LazyStringArrayList.EMPTY;
        bitField0_ = (bitField0_ & ~0x00000002);
        createIfNotExists_ = false;

        internalGetMutableTableOptions().clear();
        if (tableIdBuilder_ == null) {
          tableId_ = null;
        } else {
          tableId_ = null;
          tableIdBuilder_ = null;
        }
        engine_ = "";

        return this;
      }

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

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

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

      @java.lang.Override
      public io.greptime.v1.Ddl.CreateTableExpr buildPartial() {
        io.greptime.v1.Ddl.CreateTableExpr result = new io.greptime.v1.Ddl.CreateTableExpr(this);
        int from_bitField0_ = bitField0_;
        result.catalogName_ = catalogName_;
        result.schemaName_ = schemaName_;
        result.tableName_ = tableName_;
        result.desc_ = desc_;
        if (columnDefsBuilder_ == null) {
          if (((bitField0_ & 0x00000001) != 0)) {
            columnDefs_ = java.util.Collections.unmodifiableList(columnDefs_);
            bitField0_ = (bitField0_ & ~0x00000001);
          }
          result.columnDefs_ = columnDefs_;
        } else {
          result.columnDefs_ = columnDefsBuilder_.build();
        }
        result.timeIndex_ = timeIndex_;
        if (((bitField0_ & 0x00000002) != 0)) {
          primaryKeys_ = primaryKeys_.getUnmodifiableView();
          bitField0_ = (bitField0_ & ~0x00000002);
        }
        result.primaryKeys_ = primaryKeys_;
        result.createIfNotExists_ = createIfNotExists_;
        result.tableOptions_ = internalGetTableOptions();
        result.tableOptions_.makeImmutable();
        if (tableIdBuilder_ == null) {
          result.tableId_ = tableId_;
        } else {
          result.tableId_ = tableIdBuilder_.build();
        }
        result.engine_ = engine_;
        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.Ddl.CreateTableExpr) {
          return mergeFrom((io.greptime.v1.Ddl.CreateTableExpr)other);
        } else {
          super.mergeFrom(other);
          return this;
        }
      }

      public Builder mergeFrom(io.greptime.v1.Ddl.CreateTableExpr other) {
        if (other == io.greptime.v1.Ddl.CreateTableExpr.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();
        }
        if (!other.getDesc().isEmpty()) {
          desc_ = other.desc_;
          onChanged();
        }
        if (columnDefsBuilder_ == null) {
          if (!other.columnDefs_.isEmpty()) {
            if (columnDefs_.isEmpty()) {
              columnDefs_ = other.columnDefs_;
              bitField0_ = (bitField0_ & ~0x00000001);
            } else {
              ensureColumnDefsIsMutable();
              columnDefs_.addAll(other.columnDefs_);
            }
            onChanged();
          }
        } else {
          if (!other.columnDefs_.isEmpty()) {
            if (columnDefsBuilder_.isEmpty()) {
              columnDefsBuilder_.dispose();
              columnDefsBuilder_ = null;
              columnDefs_ = other.columnDefs_;
              bitField0_ = (bitField0_ & ~0x00000001);
              columnDefsBuilder_ = 
                com.google.protobuf.GeneratedMessageV3.alwaysUseFieldBuilders ?
                   getColumnDefsFieldBuilder() : null;
            } else {
              columnDefsBuilder_.addAllMessages(other.columnDefs_);
            }
          }
        }
        if (!other.getTimeIndex().isEmpty()) {
          timeIndex_ = other.timeIndex_;
          onChanged();
        }
        if (!other.primaryKeys_.isEmpty()) {
          if (primaryKeys_.isEmpty()) {
            primaryKeys_ = other.primaryKeys_;
            bitField0_ = (bitField0_ & ~0x00000002);
          } else {
            ensurePrimaryKeysIsMutable();
            primaryKeys_.addAll(other.primaryKeys_);
          }
          onChanged();
        }
        if (other.getCreateIfNotExists() != false) {
          setCreateIfNotExists(other.getCreateIfNotExists());
        }
        internalGetMutableTableOptions().mergeFrom(
            other.internalGetTableOptions());
        if (other.hasTableId()) {
          mergeTableId(other.getTableId());
        }
        if (!other.getEngine().isEmpty()) {
          engine_ = other.engine_;
          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.Ddl.CreateTableExpr parsedMessage = null;
        try {
          parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry);
        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
          parsedMessage = (io.greptime.v1.Ddl.CreateTableExpr) e.getUnfinishedMessage();
          throw e.unwrapIOException();
        } finally {
          if (parsedMessage != null) {
            mergeFrom(parsedMessage);
          }
        }
        return this;
      }
      private int bitField0_;

      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;
      }

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

      private java.util.List<io.greptime.v1.Ddl.ColumnDef> columnDefs_ =
        java.util.Collections.emptyList();
      private void ensureColumnDefsIsMutable() {
        if (!((bitField0_ & 0x00000001) != 0)) {
          columnDefs_ = new java.util.ArrayList<io.greptime.v1.Ddl.ColumnDef>(columnDefs_);
          bitField0_ |= 0x00000001;
         }
      }

      private com.google.protobuf.RepeatedFieldBuilderV3<
          io.greptime.v1.Ddl.ColumnDef, io.greptime.v1.Ddl.ColumnDef.Builder, io.greptime.v1.Ddl.ColumnDefOrBuilder> columnDefsBuilder_;

      /**
       * <code>repeated .greptime.v1.ColumnDef column_defs = 5;</code>
       */
      public java.util.List<io.greptime.v1.Ddl.ColumnDef> getColumnDefsList() {
        if (columnDefsBuilder_ == null) {
          return java.util.Collections.unmodifiableList(columnDefs_);
        } else {
          return columnDefsBuilder_.getMessageList();
        }
      }
      /**
       * <code>repeated .greptime.v1.ColumnDef column_defs = 5;</code>
       */
      public int getColumnDefsCount() {
        if (columnDefsBuilder_ == null) {
          return columnDefs_.size();
        } else {
          return columnDefsBuilder_.getCount();
        }
      }
      /**
       * <code>repeated .greptime.v1.ColumnDef column_defs = 5;</code>
       */
      public io.greptime.v1.Ddl.ColumnDef getColumnDefs(int index) {
        if (columnDefsBuilder_ == null) {
          return columnDefs_.get(index);
        } else {
          return columnDefsBuilder_.getMessage(index);
        }
      }
      /**
       * <code>repeated .greptime.v1.ColumnDef column_defs = 5;</code>
       */
      public Builder setColumnDefs(
          int index, io.greptime.v1.Ddl.ColumnDef value) {
        if (columnDefsBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          ensureColumnDefsIsMutable();
          columnDefs_.set(index, value);
          onChanged();
        } else {
          columnDefsBuilder_.setMessage(index, value);
        }
        return this;
      }
      /**
       * <code>repeated .greptime.v1.ColumnDef column_defs = 5;</code>
       */
      public Builder setColumnDefs(
          int index, io.greptime.v1.Ddl.ColumnDef.Builder builderForValue) {
        if (columnDefsBuilder_ == null) {
          ensureColumnDefsIsMutable();
          columnDefs_.set(index, builderForValue.build());
          onChanged();
        } else {
          columnDefsBuilder_.setMessage(index, builderForValue.build());
        }
        return this;
      }
      /**
       * <code>repeated .greptime.v1.ColumnDef column_defs = 5;</code>
       */
      public Builder addColumnDefs(io.greptime.v1.Ddl.ColumnDef value) {
        if (columnDefsBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          ensureColumnDefsIsMutable();
          columnDefs_.add(value);
          onChanged();
        } else {
          columnDefsBuilder_.addMessage(value);
        }
        return this;
      }
      /**
       * <code>repeated .greptime.v1.ColumnDef column_defs = 5;</code>
       */
      public Builder addColumnDefs(
          int index, io.greptime.v1.Ddl.ColumnDef value) {
        if (columnDefsBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          ensureColumnDefsIsMutable();
          columnDefs_.add(index, value);
          onChanged();
        } else {
          columnDefsBuilder_.addMessage(index, value);
        }
        return this;
      }
      /**
       * <code>repeated .greptime.v1.ColumnDef column_defs = 5;</code>
       */
      public Builder addColumnDefs(
          io.greptime.v1.Ddl.ColumnDef.Builder builderForValue) {
        if (columnDefsBuilder_ == null) {
          ensureColumnDefsIsMutable();
          columnDefs_.add(builderForValue.build());
          onChanged();
        } else {
          columnDefsBuilder_.addMessage(builderForValue.build());
        }
        return this;
      }
      /**
       * <code>repeated .greptime.v1.ColumnDef column_defs = 5;</code>
       */
      public Builder addColumnDefs(
          int index, io.greptime.v1.Ddl.ColumnDef.Builder builderForValue) {
        if (columnDefsBuilder_ == null) {
          ensureColumnDefsIsMutable();
          columnDefs_.add(index, builderForValue.build());
          onChanged();
        } else {
          columnDefsBuilder_.addMessage(index, builderForValue.build());
        }
        return this;
      }
      /**
       * <code>repeated .greptime.v1.ColumnDef column_defs = 5;</code>
       */
      public Builder addAllColumnDefs(
          java.lang.Iterable<? extends io.greptime.v1.Ddl.ColumnDef> values) {
        if (columnDefsBuilder_ == null) {
          ensureColumnDefsIsMutable();
          com.google.protobuf.AbstractMessageLite.Builder.addAll(
              values, columnDefs_);
          onChanged();
        } else {
          columnDefsBuilder_.addAllMessages(values);
        }
        return this;
      }
      /**
       * <code>repeated .greptime.v1.ColumnDef column_defs = 5;</code>
       */
      public Builder clearColumnDefs() {
        if (columnDefsBuilder_ == null) {
          columnDefs_ = java.util.Collections.emptyList();
          bitField0_ = (bitField0_ & ~0x00000001);
          onChanged();
        } else {
          columnDefsBuilder_.clear();
        }
        return this;
      }
      /**
       * <code>repeated .greptime.v1.ColumnDef column_defs = 5;</code>
       */
      public Builder removeColumnDefs(int index) {
        if (columnDefsBuilder_ == null) {
          ensureColumnDefsIsMutable();
          columnDefs_.remove(index);
          onChanged();
        } else {
          columnDefsBuilder_.remove(index);
        }
        return this;
      }
      /**
       * <code>repeated .greptime.v1.ColumnDef column_defs = 5;</code>
       */
      public io.greptime.v1.Ddl.ColumnDef.Builder getColumnDefsBuilder(
          int index) {
        return getColumnDefsFieldBuilder().getBuilder(index);
      }
      /**
       * <code>repeated .greptime.v1.ColumnDef column_defs = 5;</code>
       */
      public io.greptime.v1.Ddl.ColumnDefOrBuilder getColumnDefsOrBuilder(
          int index) {
        if (columnDefsBuilder_ == null) {
          return columnDefs_.get(index);  } else {
          return columnDefsBuilder_.getMessageOrBuilder(index);
        }
      }
      /**
       * <code>repeated .greptime.v1.ColumnDef column_defs = 5;</code>
       */
      public java.util.List<? extends io.greptime.v1.Ddl.ColumnDefOrBuilder> 
           getColumnDefsOrBuilderList() {
        if (columnDefsBuilder_ != null) {
          return columnDefsBuilder_.getMessageOrBuilderList();
        } else {
          return java.util.Collections.unmodifiableList(columnDefs_);
        }
      }
      /**
       * <code>repeated .greptime.v1.ColumnDef column_defs = 5;</code>
       */
      public io.greptime.v1.Ddl.ColumnDef.Builder addColumnDefsBuilder() {
        return getColumnDefsFieldBuilder().addBuilder(
            io.greptime.v1.Ddl.ColumnDef.getDefaultInstance());
      }
      /**
       * <code>repeated .greptime.v1.ColumnDef column_defs = 5;</code>
       */
      public io.greptime.v1.Ddl.ColumnDef.Builder addColumnDefsBuilder(
          int index) {
        return getColumnDefsFieldBuilder().addBuilder(
            index, io.greptime.v1.Ddl.ColumnDef.getDefaultInstance());
      }
      /**
       * <code>repeated .greptime.v1.ColumnDef column_defs = 5;</code>
       */
      public java.util.List<io.greptime.v1.Ddl.ColumnDef.Builder> 
           getColumnDefsBuilderList() {
        return getColumnDefsFieldBuilder().getBuilderList();
      }
      private com.google.protobuf.RepeatedFieldBuilderV3<
          io.greptime.v1.Ddl.ColumnDef, io.greptime.v1.Ddl.ColumnDef.Builder, io.greptime.v1.Ddl.ColumnDefOrBuilder> 
          getColumnDefsFieldBuilder() {
        if (columnDefsBuilder_ == null) {
          columnDefsBuilder_ = new com.google.protobuf.RepeatedFieldBuilderV3<
              io.greptime.v1.Ddl.ColumnDef, io.greptime.v1.Ddl.ColumnDef.Builder, io.greptime.v1.Ddl.ColumnDefOrBuilder>(
                  columnDefs_,
                  ((bitField0_ & 0x00000001) != 0),
                  getParentForChildren(),
                  isClean());
          columnDefs_ = null;
        }
        return columnDefsBuilder_;
      }

      private java.lang.Object timeIndex_ = "";
      /**
       * <code>string time_index = 6;</code>
       * @return The timeIndex.
       */
      public java.lang.String getTimeIndex() {
        java.lang.Object ref = timeIndex_;
        if (!(ref instanceof java.lang.String)) {
          com.google.protobuf.ByteString bs =
              (com.google.protobuf.ByteString) ref;
          java.lang.String s = bs.toStringUtf8();
          timeIndex_ = s;
          return s;
        } else {
          return (java.lang.String) ref;
        }
      }
      /**
       * <code>string time_index = 6;</code>
       * @return The bytes for timeIndex.
       */
      public com.google.protobuf.ByteString
          getTimeIndexBytes() {
        java.lang.Object ref = timeIndex_;
        if (ref instanceof String) {
          com.google.protobuf.ByteString b = 
              com.google.protobuf.ByteString.copyFromUtf8(
                  (java.lang.String) ref);
          timeIndex_ = b;
          return b;
        } else {
          return (com.google.protobuf.ByteString) ref;
        }
      }
      /**
       * <code>string time_index = 6;</code>
       * @param value The timeIndex to set.
       * @return This builder for chaining.
       */
      public Builder setTimeIndex(
          java.lang.String value) {
        if (value == null) {
    throw new NullPointerException();
  }
  
        timeIndex_ = value;
        onChanged();
        return this;
      }
      /**
       * <code>string time_index = 6;</code>
       * @return This builder for chaining.
       */
      public Builder clearTimeIndex() {
        
        timeIndex_ = getDefaultInstance().getTimeIndex();
        onChanged();
        return this;
      }
      /**
       * <code>string time_index = 6;</code>
       * @param value The bytes for timeIndex to set.
       * @return This builder for chaining.
       */
      public Builder setTimeIndexBytes(
          com.google.protobuf.ByteString value) {
        if (value == null) {
    throw new NullPointerException();
  }
  checkByteStringIsUtf8(value);
        
        timeIndex_ = value;
        onChanged();
        return this;
      }

      private com.google.protobuf.LazyStringList primaryKeys_ = com.google.protobuf.LazyStringArrayList.EMPTY;
      private void ensurePrimaryKeysIsMutable() {
        if (!((bitField0_ & 0x00000002) != 0)) {
          primaryKeys_ = new com.google.protobuf.LazyStringArrayList(primaryKeys_);
          bitField0_ |= 0x00000002;
         }
      }
      /**
       * <code>repeated string primary_keys = 7;</code>
       * @return A list containing the primaryKeys.
       */
      public com.google.protobuf.ProtocolStringList
          getPrimaryKeysList() {
        return primaryKeys_.getUnmodifiableView();
      }
      /**
       * <code>repeated string primary_keys = 7;</code>
       * @return The count of primaryKeys.
       */
      public int getPrimaryKeysCount() {
        return primaryKeys_.size();
      }
      /**
       * <code>repeated string primary_keys = 7;</code>
       * @param index The index of the element to return.
       * @return The primaryKeys at the given index.
       */
      public java.lang.String getPrimaryKeys(int index) {
        return primaryKeys_.get(index);
      }
      /**
       * <code>repeated string primary_keys = 7;</code>
       * @param index The index of the value to return.
       * @return The bytes of the primaryKeys at the given index.
       */
      public com.google.protobuf.ByteString
          getPrimaryKeysBytes(int index) {
        return primaryKeys_.getByteString(index);
      }
      /**
       * <code>repeated string primary_keys = 7;</code>
       * @param index The index to set the value at.
       * @param value The primaryKeys to set.
       * @return This builder for chaining.
       */
      public Builder setPrimaryKeys(
          int index, java.lang.String value) {
        if (value == null) {
    throw new NullPointerException();
  }
  ensurePrimaryKeysIsMutable();
        primaryKeys_.set(index, value);
        onChanged();
        return this;
      }
      /**
       * <code>repeated string primary_keys = 7;</code>
       * @param value The primaryKeys to add.
       * @return This builder for chaining.
       */
      public Builder addPrimaryKeys(
          java.lang.String value) {
        if (value == null) {
    throw new NullPointerException();
  }
  ensurePrimaryKeysIsMutable();
        primaryKeys_.add(value);
        onChanged();
        return this;
      }
      /**
       * <code>repeated string primary_keys = 7;</code>
       * @param values The primaryKeys to add.
       * @return This builder for chaining.
       */
      public Builder addAllPrimaryKeys(
          java.lang.Iterable<java.lang.String> values) {
        ensurePrimaryKeysIsMutable();
        com.google.protobuf.AbstractMessageLite.Builder.addAll(
            values, primaryKeys_);
        onChanged();
        return this;
      }
      /**
       * <code>repeated string primary_keys = 7;</code>
       * @return This builder for chaining.
       */
      public Builder clearPrimaryKeys() {
        primaryKeys_ = com.google.protobuf.LazyStringArrayList.EMPTY;
        bitField0_ = (bitField0_ & ~0x00000002);
        onChanged();
        return this;
      }
      /**
       * <code>repeated string primary_keys = 7;</code>
       * @param value The bytes of the primaryKeys to add.
       * @return This builder for chaining.
       */
      public Builder addPrimaryKeysBytes(
          com.google.protobuf.ByteString value) {
        if (value == null) {
    throw new NullPointerException();
  }
  checkByteStringIsUtf8(value);
        ensurePrimaryKeysIsMutable();
        primaryKeys_.add(value);
        onChanged();
        return this;
      }

      private boolean createIfNotExists_ ;
      /**
       * <code>bool create_if_not_exists = 8;</code>
       * @return The createIfNotExists.
       */
      @java.lang.Override
      public boolean getCreateIfNotExists() {
        return createIfNotExists_;
      }
      /**
       * <code>bool create_if_not_exists = 8;</code>
       * @param value The createIfNotExists to set.
       * @return This builder for chaining.
       */
      public Builder setCreateIfNotExists(boolean value) {
        
        createIfNotExists_ = value;
        onChanged();
        return this;
      }
      /**
       * <code>bool create_if_not_exists = 8;</code>
       * @return This builder for chaining.
       */
      public Builder clearCreateIfNotExists() {
        
        createIfNotExists_ = false;
        onChanged();
        return this;
      }

      private com.google.protobuf.MapField<
          java.lang.String, java.lang.String> tableOptions_;
      private com.google.protobuf.MapField<java.lang.String, java.lang.String>
      internalGetTableOptions() {
        if (tableOptions_ == null) {
          return com.google.protobuf.MapField.emptyMapField(
              TableOptionsDefaultEntryHolder.defaultEntry);
        }
        return tableOptions_;
      }
      private com.google.protobuf.MapField<java.lang.String, java.lang.String>
      internalGetMutableTableOptions() {
        onChanged();;
        if (tableOptions_ == null) {
          tableOptions_ = com.google.protobuf.MapField.newMapField(
              TableOptionsDefaultEntryHolder.defaultEntry);
        }
        if (!tableOptions_.isMutable()) {
          tableOptions_ = tableOptions_.copy();
        }
        return tableOptions_;
      }

      public int getTableOptionsCount() {
        return internalGetTableOptions().getMap().size();
      }
      /**
       * <code>map&lt;string, string&gt; table_options = 9;</code>
       */

      @java.lang.Override
      public boolean containsTableOptions(
          java.lang.String key) {
        if (key == null) { throw new NullPointerException("map key"); }
        return internalGetTableOptions().getMap().containsKey(key);
      }
      /**
       * Use {@link #getTableOptionsMap()} instead.
       */
      @java.lang.Override
      @java.lang.Deprecated
      public java.util.Map<java.lang.String, java.lang.String> getTableOptions() {
        return getTableOptionsMap();
      }
      /**
       * <code>map&lt;string, string&gt; table_options = 9;</code>
       */
      @java.lang.Override

      public java.util.Map<java.lang.String, java.lang.String> getTableOptionsMap() {
        return internalGetTableOptions().getMap();
      }
      /**
       * <code>map&lt;string, string&gt; table_options = 9;</code>
       */
      @java.lang.Override

      public java.lang.String getTableOptionsOrDefault(
          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 =
            internalGetTableOptions().getMap();
        return map.containsKey(key) ? map.get(key) : defaultValue;
      }
      /**
       * <code>map&lt;string, string&gt; table_options = 9;</code>
       */
      @java.lang.Override

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

      public Builder clearTableOptions() {
        internalGetMutableTableOptions().getMutableMap()
            .clear();
        return this;
      }
      /**
       * <code>map&lt;string, string&gt; table_options = 9;</code>
       */

      public Builder removeTableOptions(
          java.lang.String key) {
        if (key == null) { throw new NullPointerException("map key"); }
        internalGetMutableTableOptions().getMutableMap()
            .remove(key);
        return this;
      }
      /**
       * Use alternate mutation accessors instead.
       */
      @java.lang.Deprecated
      public java.util.Map<java.lang.String, java.lang.String>
      getMutableTableOptions() {
        return internalGetMutableTableOptions().getMutableMap();
      }
      /**
       * <code>map&lt;string, string&gt; table_options = 9;</code>
       */
      public Builder putTableOptions(
          java.lang.String key,
          java.lang.String value) {
        if (key == null) { throw new NullPointerException("map key"); }
        if (value == null) {
  throw new NullPointerException("map value");
}

        internalGetMutableTableOptions().getMutableMap()
            .put(key, value);
        return this;
      }
      /**
       * <code>map&lt;string, string&gt; table_options = 9;</code>
       */

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

      private io.greptime.v1.Ddl.TableId tableId_;
      private com.google.protobuf.SingleFieldBuilderV3<
          io.greptime.v1.Ddl.TableId, io.greptime.v1.Ddl.TableId.Builder, io.greptime.v1.Ddl.TableIdOrBuilder> tableIdBuilder_;
      /**
       * <code>.greptime.v1.TableId table_id = 10;</code>
       * @return Whether the tableId field is set.
       */
      public boolean hasTableId() {
        return tableIdBuilder_ != null || tableId_ != null;
      }
      /**
       * <code>.greptime.v1.TableId table_id = 10;</code>
       * @return The tableId.
       */
      public io.greptime.v1.Ddl.TableId getTableId() {
        if (tableIdBuilder_ == null) {
          return tableId_ == null ? io.greptime.v1.Ddl.TableId.getDefaultInstance() : tableId_;
        } else {
          return tableIdBuilder_.getMessage();
        }
      }
      /**
       * <code>.greptime.v1.TableId table_id = 10;</code>
       */
      public Builder setTableId(io.greptime.v1.Ddl.TableId value) {
        if (tableIdBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          tableId_ = value;
          onChanged();
        } else {
          tableIdBuilder_.setMessage(value);
        }

        return this;
      }
      /**
       * <code>.greptime.v1.TableId table_id = 10;</code>
       */
      public Builder setTableId(
          io.greptime.v1.Ddl.TableId.Builder builderForValue) {
        if (tableIdBuilder_ == null) {
          tableId_ = builderForValue.build();
          onChanged();
        } else {
          tableIdBuilder_.setMessage(builderForValue.build());
        }

        return this;
      }
      /**
       * <code>.greptime.v1.TableId table_id = 10;</code>
       */
      public Builder mergeTableId(io.greptime.v1.Ddl.TableId value) {
        if (tableIdBuilder_ == null) {
          if (tableId_ != null) {
            tableId_ =
              io.greptime.v1.Ddl.TableId.newBuilder(tableId_).mergeFrom(value).buildPartial();
          } else {
            tableId_ = value;
          }
          onChanged();
        } else {
          tableIdBuilder_.mergeFrom(value);
        }

        return this;
      }
      /**
       * <code>.greptime.v1.TableId table_id = 10;</code>
       */
      public Builder clearTableId() {
        if (tableIdBuilder_ == null) {
          tableId_ = null;
          onChanged();
        } else {
          tableId_ = null;
          tableIdBuilder_ = null;
        }

        return this;
      }
      /**
       * <code>.greptime.v1.TableId table_id = 10;</code>
       */
      public io.greptime.v1.Ddl.TableId.Builder getTableIdBuilder() {
        
        onChanged();
        return getTableIdFieldBuilder().getBuilder();
      }
      /**
       * <code>.greptime.v1.TableId table_id = 10;</code>
       */
      public io.greptime.v1.Ddl.TableIdOrBuilder getTableIdOrBuilder() {
        if (tableIdBuilder_ != null) {
          return tableIdBuilder_.getMessageOrBuilder();
        } else {
          return tableId_ == null ?
              io.greptime.v1.Ddl.TableId.getDefaultInstance() : tableId_;
        }
      }
      /**
       * <code>.greptime.v1.TableId table_id = 10;</code>
       */
      private com.google.protobuf.SingleFieldBuilderV3<
          io.greptime.v1.Ddl.TableId, io.greptime.v1.Ddl.TableId.Builder, io.greptime.v1.Ddl.TableIdOrBuilder> 
          getTableIdFieldBuilder() {
        if (tableIdBuilder_ == null) {
          tableIdBuilder_ = new com.google.protobuf.SingleFieldBuilderV3<
              io.greptime.v1.Ddl.TableId, io.greptime.v1.Ddl.TableId.Builder, io.greptime.v1.Ddl.TableIdOrBuilder>(
                  getTableId(),
                  getParentForChildren(),
                  isClean());
          tableId_ = null;
        }
        return tableIdBuilder_;
      }

      private java.lang.Object engine_ = "";
      /**
       * <code>string engine = 12;</code>
       * @return The engine.
       */
      public java.lang.String getEngine() {
        java.lang.Object ref = engine_;
        if (!(ref instanceof java.lang.String)) {
          com.google.protobuf.ByteString bs =
              (com.google.protobuf.ByteString) ref;
          java.lang.String s = bs.toStringUtf8();
          engine_ = s;
          return s;
        } else {
          return (java.lang.String) ref;
        }
      }
      /**
       * <code>string engine = 12;</code>
       * @return The bytes for engine.
       */
      public com.google.protobuf.ByteString
          getEngineBytes() {
        java.lang.Object ref = engine_;
        if (ref instanceof String) {
          com.google.protobuf.ByteString b = 
              com.google.protobuf.ByteString.copyFromUtf8(
                  (java.lang.String) ref);
          engine_ = b;
          return b;
        } else {
          return (com.google.protobuf.ByteString) ref;
        }
      }
      /**
       * <code>string engine = 12;</code>
       * @param value The engine to set.
       * @return This builder for chaining.
       */
      public Builder setEngine(
          java.lang.String value) {
        if (value == null) {
    throw new NullPointerException();
  }
  
        engine_ = value;
        onChanged();
        return this;
      }
      /**
       * <code>string engine = 12;</code>
       * @return This builder for chaining.
       */
      public Builder clearEngine() {
        
        engine_ = getDefaultInstance().getEngine();
        onChanged();
        return this;
      }
      /**
       * <code>string engine = 12;</code>
       * @param value The bytes for engine to set.
       * @return This builder for chaining.
       */
      public Builder setEngineBytes(
          com.google.protobuf.ByteString value) {
        if (value == null) {
    throw new NullPointerException();
  }
  checkByteStringIsUtf8(value);
        
        engine_ = 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.CreateTableExpr)
    }

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

    public static io.greptime.v1.Ddl.CreateTableExpr getDefaultInstance() {
      return DEFAULT_INSTANCE;
    }

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

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

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

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

  }

  public interface AlterTableExprOrBuilder extends
      // @@protoc_insertion_point(interface_extends:greptime.v1.AlterTableExpr)
      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();

    /**
     * <code>.greptime.v1.AddColumns add_columns = 4;</code>
     * @return Whether the addColumns field is set.
     */
    boolean hasAddColumns();
    /**
     * <code>.greptime.v1.AddColumns add_columns = 4;</code>
     * @return The addColumns.
     */
    io.greptime.v1.Ddl.AddColumns getAddColumns();
    /**
     * <code>.greptime.v1.AddColumns add_columns = 4;</code>
     */
    io.greptime.v1.Ddl.AddColumnsOrBuilder getAddColumnsOrBuilder();

    /**
     * <code>.greptime.v1.DropColumns drop_columns = 5;</code>
     * @return Whether the dropColumns field is set.
     */
    boolean hasDropColumns();
    /**
     * <code>.greptime.v1.DropColumns drop_columns = 5;</code>
     * @return The dropColumns.
     */
    io.greptime.v1.Ddl.DropColumns getDropColumns();
    /**
     * <code>.greptime.v1.DropColumns drop_columns = 5;</code>
     */
    io.greptime.v1.Ddl.DropColumnsOrBuilder getDropColumnsOrBuilder();

    /**
     * <code>.greptime.v1.RenameTable rename_table = 6;</code>
     * @return Whether the renameTable field is set.
     */
    boolean hasRenameTable();
    /**
     * <code>.greptime.v1.RenameTable rename_table = 6;</code>
     * @return The renameTable.
     */
    io.greptime.v1.Ddl.RenameTable getRenameTable();
    /**
     * <code>.greptime.v1.RenameTable rename_table = 6;</code>
     */
    io.greptime.v1.Ddl.RenameTableOrBuilder getRenameTableOrBuilder();

    /**
     * <code>.greptime.v1.ModifyColumnTypes modify_column_types = 7;</code>
     * @return Whether the modifyColumnTypes field is set.
     */
    boolean hasModifyColumnTypes();
    /**
     * <code>.greptime.v1.ModifyColumnTypes modify_column_types = 7;</code>
     * @return The modifyColumnTypes.
     */
    io.greptime.v1.Ddl.ModifyColumnTypes getModifyColumnTypes();
    /**
     * <code>.greptime.v1.ModifyColumnTypes modify_column_types = 7;</code>
     */
    io.greptime.v1.Ddl.ModifyColumnTypesOrBuilder getModifyColumnTypesOrBuilder();

    /**
     * <code>.greptime.v1.SetTableOptions set_table_options = 8;</code>
     * @return Whether the setTableOptions field is set.
     */
    boolean hasSetTableOptions();
    /**
     * <code>.greptime.v1.SetTableOptions set_table_options = 8;</code>
     * @return The setTableOptions.
     */
    io.greptime.v1.Ddl.SetTableOptions getSetTableOptions();
    /**
     * <code>.greptime.v1.SetTableOptions set_table_options = 8;</code>
     */
    io.greptime.v1.Ddl.SetTableOptionsOrBuilder getSetTableOptionsOrBuilder();

    /**
     * <code>.greptime.v1.UnsetTableOptions unset_table_options = 11;</code>
     * @return Whether the unsetTableOptions field is set.
     */
    boolean hasUnsetTableOptions();
    /**
     * <code>.greptime.v1.UnsetTableOptions unset_table_options = 11;</code>
     * @return The unsetTableOptions.
     */
    io.greptime.v1.Ddl.UnsetTableOptions getUnsetTableOptions();
    /**
     * <code>.greptime.v1.UnsetTableOptions unset_table_options = 11;</code>
     */
    io.greptime.v1.Ddl.UnsetTableOptionsOrBuilder getUnsetTableOptionsOrBuilder();

    /**
     * <code>.greptime.v1.SetIndex set_index = 12;</code>
     * @return Whether the setIndex field is set.
     */
    boolean hasSetIndex();
    /**
     * <code>.greptime.v1.SetIndex set_index = 12;</code>
     * @return The setIndex.
     */
    io.greptime.v1.Ddl.SetIndex getSetIndex();
    /**
     * <code>.greptime.v1.SetIndex set_index = 12;</code>
     */
    io.greptime.v1.Ddl.SetIndexOrBuilder getSetIndexOrBuilder();

    /**
     * <code>.greptime.v1.UnsetIndex unset_index = 13;</code>
     * @return Whether the unsetIndex field is set.
     */
    boolean hasUnsetIndex();
    /**
     * <code>.greptime.v1.UnsetIndex unset_index = 13;</code>
     * @return The unsetIndex.
     */
    io.greptime.v1.Ddl.UnsetIndex getUnsetIndex();
    /**
     * <code>.greptime.v1.UnsetIndex unset_index = 13;</code>
     */
    io.greptime.v1.Ddl.UnsetIndexOrBuilder getUnsetIndexOrBuilder();

    public io.greptime.v1.Ddl.AlterTableExpr.KindCase getKindCase();
  }
  /**
   * Protobuf type {@code greptime.v1.AlterTableExpr}
   */
  public static final class AlterTableExpr extends
      com.google.protobuf.GeneratedMessageV3 implements
      // @@protoc_insertion_point(message_implements:greptime.v1.AlterTableExpr)
      AlterTableExprOrBuilder {
  private static final long serialVersionUID = 0L;
    // Use AlterTableExpr.newBuilder() to construct.
    private AlterTableExpr(com.google.protobuf.GeneratedMessageV3.Builder<?> builder) {
      super(builder);
    }
    private AlterTableExpr() {
      catalogName_ = "";
      schemaName_ = "";
      tableName_ = "";
    }

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

    @java.lang.Override
    public final com.google.protobuf.UnknownFieldSet
    getUnknownFields() {
      return this.unknownFields;
    }
    private AlterTableExpr(
        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;
            }
            case 34: {
              io.greptime.v1.Ddl.AddColumns.Builder subBuilder = null;
              if (kindCase_ == 4) {
                subBuilder = ((io.greptime.v1.Ddl.AddColumns) kind_).toBuilder();
              }
              kind_ =
                  input.readMessage(io.greptime.v1.Ddl.AddColumns.parser(), extensionRegistry);
              if (subBuilder != null) {
                subBuilder.mergeFrom((io.greptime.v1.Ddl.AddColumns) kind_);
                kind_ = subBuilder.buildPartial();
              }
              kindCase_ = 4;
              break;
            }
            case 42: {
              io.greptime.v1.Ddl.DropColumns.Builder subBuilder = null;
              if (kindCase_ == 5) {
                subBuilder = ((io.greptime.v1.Ddl.DropColumns) kind_).toBuilder();
              }
              kind_ =
                  input.readMessage(io.greptime.v1.Ddl.DropColumns.parser(), extensionRegistry);
              if (subBuilder != null) {
                subBuilder.mergeFrom((io.greptime.v1.Ddl.DropColumns) kind_);
                kind_ = subBuilder.buildPartial();
              }
              kindCase_ = 5;
              break;
            }
            case 50: {
              io.greptime.v1.Ddl.RenameTable.Builder subBuilder = null;
              if (kindCase_ == 6) {
                subBuilder = ((io.greptime.v1.Ddl.RenameTable) kind_).toBuilder();
              }
              kind_ =
                  input.readMessage(io.greptime.v1.Ddl.RenameTable.parser(), extensionRegistry);
              if (subBuilder != null) {
                subBuilder.mergeFrom((io.greptime.v1.Ddl.RenameTable) kind_);
                kind_ = subBuilder.buildPartial();
              }
              kindCase_ = 6;
              break;
            }
            case 58: {
              io.greptime.v1.Ddl.ModifyColumnTypes.Builder subBuilder = null;
              if (kindCase_ == 7) {
                subBuilder = ((io.greptime.v1.Ddl.ModifyColumnTypes) kind_).toBuilder();
              }
              kind_ =
                  input.readMessage(io.greptime.v1.Ddl.ModifyColumnTypes.parser(), extensionRegistry);
              if (subBuilder != null) {
                subBuilder.mergeFrom((io.greptime.v1.Ddl.ModifyColumnTypes) kind_);
                kind_ = subBuilder.buildPartial();
              }
              kindCase_ = 7;
              break;
            }
            case 66: {
              io.greptime.v1.Ddl.SetTableOptions.Builder subBuilder = null;
              if (kindCase_ == 8) {
                subBuilder = ((io.greptime.v1.Ddl.SetTableOptions) kind_).toBuilder();
              }
              kind_ =
                  input.readMessage(io.greptime.v1.Ddl.SetTableOptions.parser(), extensionRegistry);
              if (subBuilder != null) {
                subBuilder.mergeFrom((io.greptime.v1.Ddl.SetTableOptions) kind_);
                kind_ = subBuilder.buildPartial();
              }
              kindCase_ = 8;
              break;
            }
            case 90: {
              io.greptime.v1.Ddl.UnsetTableOptions.Builder subBuilder = null;
              if (kindCase_ == 11) {
                subBuilder = ((io.greptime.v1.Ddl.UnsetTableOptions) kind_).toBuilder();
              }
              kind_ =
                  input.readMessage(io.greptime.v1.Ddl.UnsetTableOptions.parser(), extensionRegistry);
              if (subBuilder != null) {
                subBuilder.mergeFrom((io.greptime.v1.Ddl.UnsetTableOptions) kind_);
                kind_ = subBuilder.buildPartial();
              }
              kindCase_ = 11;
              break;
            }
            case 98: {
              io.greptime.v1.Ddl.SetIndex.Builder subBuilder = null;
              if (kindCase_ == 12) {
                subBuilder = ((io.greptime.v1.Ddl.SetIndex) kind_).toBuilder();
              }
              kind_ =
                  input.readMessage(io.greptime.v1.Ddl.SetIndex.parser(), extensionRegistry);
              if (subBuilder != null) {
                subBuilder.mergeFrom((io.greptime.v1.Ddl.SetIndex) kind_);
                kind_ = subBuilder.buildPartial();
              }
              kindCase_ = 12;
              break;
            }
            case 106: {
              io.greptime.v1.Ddl.UnsetIndex.Builder subBuilder = null;
              if (kindCase_ == 13) {
                subBuilder = ((io.greptime.v1.Ddl.UnsetIndex) kind_).toBuilder();
              }
              kind_ =
                  input.readMessage(io.greptime.v1.Ddl.UnsetIndex.parser(), extensionRegistry);
              if (subBuilder != null) {
                subBuilder.mergeFrom((io.greptime.v1.Ddl.UnsetIndex) kind_);
                kind_ = subBuilder.buildPartial();
              }
              kindCase_ = 13;
              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.Ddl.internal_static_greptime_v1_AlterTableExpr_descriptor;
    }

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

    private int kindCase_ = 0;
    private java.lang.Object kind_;
    public enum KindCase
        implements com.google.protobuf.Internal.EnumLite,
            com.google.protobuf.AbstractMessage.InternalOneOfEnum {
      ADD_COLUMNS(4),
      DROP_COLUMNS(5),
      RENAME_TABLE(6),
      MODIFY_COLUMN_TYPES(7),
      SET_TABLE_OPTIONS(8),
      UNSET_TABLE_OPTIONS(11),
      SET_INDEX(12),
      UNSET_INDEX(13),
      KIND_NOT_SET(0);
      private final int value;
      private KindCase(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 KindCase valueOf(int value) {
        return forNumber(value);
      }

      public static KindCase forNumber(int value) {
        switch (value) {
          case 4: return ADD_COLUMNS;
          case 5: return DROP_COLUMNS;
          case 6: return RENAME_TABLE;
          case 7: return MODIFY_COLUMN_TYPES;
          case 8: return SET_TABLE_OPTIONS;
          case 11: return UNSET_TABLE_OPTIONS;
          case 12: return SET_INDEX;
          case 13: return UNSET_INDEX;
          case 0: return KIND_NOT_SET;
          default: return null;
        }
      }
      public int getNumber() {
        return this.value;
      }
    };

    public KindCase
    getKindCase() {
      return KindCase.forNumber(
          kindCase_);
    }

    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;
      }
    }

    public static final int ADD_COLUMNS_FIELD_NUMBER = 4;
    /**
     * <code>.greptime.v1.AddColumns add_columns = 4;</code>
     * @return Whether the addColumns field is set.
     */
    @java.lang.Override
    public boolean hasAddColumns() {
      return kindCase_ == 4;
    }
    /**
     * <code>.greptime.v1.AddColumns add_columns = 4;</code>
     * @return The addColumns.
     */
    @java.lang.Override
    public io.greptime.v1.Ddl.AddColumns getAddColumns() {
      if (kindCase_ == 4) {
         return (io.greptime.v1.Ddl.AddColumns) kind_;
      }
      return io.greptime.v1.Ddl.AddColumns.getDefaultInstance();
    }
    /**
     * <code>.greptime.v1.AddColumns add_columns = 4;</code>
     */
    @java.lang.Override
    public io.greptime.v1.Ddl.AddColumnsOrBuilder getAddColumnsOrBuilder() {
      if (kindCase_ == 4) {
         return (io.greptime.v1.Ddl.AddColumns) kind_;
      }
      return io.greptime.v1.Ddl.AddColumns.getDefaultInstance();
    }

    public static final int DROP_COLUMNS_FIELD_NUMBER = 5;
    /**
     * <code>.greptime.v1.DropColumns drop_columns = 5;</code>
     * @return Whether the dropColumns field is set.
     */
    @java.lang.Override
    public boolean hasDropColumns() {
      return kindCase_ == 5;
    }
    /**
     * <code>.greptime.v1.DropColumns drop_columns = 5;</code>
     * @return The dropColumns.
     */
    @java.lang.Override
    public io.greptime.v1.Ddl.DropColumns getDropColumns() {
      if (kindCase_ == 5) {
         return (io.greptime.v1.Ddl.DropColumns) kind_;
      }
      return io.greptime.v1.Ddl.DropColumns.getDefaultInstance();
    }
    /**
     * <code>.greptime.v1.DropColumns drop_columns = 5;</code>
     */
    @java.lang.Override
    public io.greptime.v1.Ddl.DropColumnsOrBuilder getDropColumnsOrBuilder() {
      if (kindCase_ == 5) {
         return (io.greptime.v1.Ddl.DropColumns) kind_;
      }
      return io.greptime.v1.Ddl.DropColumns.getDefaultInstance();
    }

    public static final int RENAME_TABLE_FIELD_NUMBER = 6;
    /**
     * <code>.greptime.v1.RenameTable rename_table = 6;</code>
     * @return Whether the renameTable field is set.
     */
    @java.lang.Override
    public boolean hasRenameTable() {
      return kindCase_ == 6;
    }
    /**
     * <code>.greptime.v1.RenameTable rename_table = 6;</code>
     * @return The renameTable.
     */
    @java.lang.Override
    public io.greptime.v1.Ddl.RenameTable getRenameTable() {
      if (kindCase_ == 6) {
         return (io.greptime.v1.Ddl.RenameTable) kind_;
      }
      return io.greptime.v1.Ddl.RenameTable.getDefaultInstance();
    }
    /**
     * <code>.greptime.v1.RenameTable rename_table = 6;</code>
     */
    @java.lang.Override
    public io.greptime.v1.Ddl.RenameTableOrBuilder getRenameTableOrBuilder() {
      if (kindCase_ == 6) {
         return (io.greptime.v1.Ddl.RenameTable) kind_;
      }
      return io.greptime.v1.Ddl.RenameTable.getDefaultInstance();
    }

    public static final int MODIFY_COLUMN_TYPES_FIELD_NUMBER = 7;
    /**
     * <code>.greptime.v1.ModifyColumnTypes modify_column_types = 7;</code>
     * @return Whether the modifyColumnTypes field is set.
     */
    @java.lang.Override
    public boolean hasModifyColumnTypes() {
      return kindCase_ == 7;
    }
    /**
     * <code>.greptime.v1.ModifyColumnTypes modify_column_types = 7;</code>
     * @return The modifyColumnTypes.
     */
    @java.lang.Override
    public io.greptime.v1.Ddl.ModifyColumnTypes getModifyColumnTypes() {
      if (kindCase_ == 7) {
         return (io.greptime.v1.Ddl.ModifyColumnTypes) kind_;
      }
      return io.greptime.v1.Ddl.ModifyColumnTypes.getDefaultInstance();
    }
    /**
     * <code>.greptime.v1.ModifyColumnTypes modify_column_types = 7;</code>
     */
    @java.lang.Override
    public io.greptime.v1.Ddl.ModifyColumnTypesOrBuilder getModifyColumnTypesOrBuilder() {
      if (kindCase_ == 7) {
         return (io.greptime.v1.Ddl.ModifyColumnTypes) kind_;
      }
      return io.greptime.v1.Ddl.ModifyColumnTypes.getDefaultInstance();
    }

    public static final int SET_TABLE_OPTIONS_FIELD_NUMBER = 8;
    /**
     * <code>.greptime.v1.SetTableOptions set_table_options = 8;</code>
     * @return Whether the setTableOptions field is set.
     */
    @java.lang.Override
    public boolean hasSetTableOptions() {
      return kindCase_ == 8;
    }
    /**
     * <code>.greptime.v1.SetTableOptions set_table_options = 8;</code>
     * @return The setTableOptions.
     */
    @java.lang.Override
    public io.greptime.v1.Ddl.SetTableOptions getSetTableOptions() {
      if (kindCase_ == 8) {
         return (io.greptime.v1.Ddl.SetTableOptions) kind_;
      }
      return io.greptime.v1.Ddl.SetTableOptions.getDefaultInstance();
    }
    /**
     * <code>.greptime.v1.SetTableOptions set_table_options = 8;</code>
     */
    @java.lang.Override
    public io.greptime.v1.Ddl.SetTableOptionsOrBuilder getSetTableOptionsOrBuilder() {
      if (kindCase_ == 8) {
         return (io.greptime.v1.Ddl.SetTableOptions) kind_;
      }
      return io.greptime.v1.Ddl.SetTableOptions.getDefaultInstance();
    }

    public static final int UNSET_TABLE_OPTIONS_FIELD_NUMBER = 11;
    /**
     * <code>.greptime.v1.UnsetTableOptions unset_table_options = 11;</code>
     * @return Whether the unsetTableOptions field is set.
     */
    @java.lang.Override
    public boolean hasUnsetTableOptions() {
      return kindCase_ == 11;
    }
    /**
     * <code>.greptime.v1.UnsetTableOptions unset_table_options = 11;</code>
     * @return The unsetTableOptions.
     */
    @java.lang.Override
    public io.greptime.v1.Ddl.UnsetTableOptions getUnsetTableOptions() {
      if (kindCase_ == 11) {
         return (io.greptime.v1.Ddl.UnsetTableOptions) kind_;
      }
      return io.greptime.v1.Ddl.UnsetTableOptions.getDefaultInstance();
    }
    /**
     * <code>.greptime.v1.UnsetTableOptions unset_table_options = 11;</code>
     */
    @java.lang.Override
    public io.greptime.v1.Ddl.UnsetTableOptionsOrBuilder getUnsetTableOptionsOrBuilder() {
      if (kindCase_ == 11) {
         return (io.greptime.v1.Ddl.UnsetTableOptions) kind_;
      }
      return io.greptime.v1.Ddl.UnsetTableOptions.getDefaultInstance();
    }

    public static final int SET_INDEX_FIELD_NUMBER = 12;
    /**
     * <code>.greptime.v1.SetIndex set_index = 12;</code>
     * @return Whether the setIndex field is set.
     */
    @java.lang.Override
    public boolean hasSetIndex() {
      return kindCase_ == 12;
    }
    /**
     * <code>.greptime.v1.SetIndex set_index = 12;</code>
     * @return The setIndex.
     */
    @java.lang.Override
    public io.greptime.v1.Ddl.SetIndex getSetIndex() {
      if (kindCase_ == 12) {
         return (io.greptime.v1.Ddl.SetIndex) kind_;
      }
      return io.greptime.v1.Ddl.SetIndex.getDefaultInstance();
    }
    /**
     * <code>.greptime.v1.SetIndex set_index = 12;</code>
     */
    @java.lang.Override
    public io.greptime.v1.Ddl.SetIndexOrBuilder getSetIndexOrBuilder() {
      if (kindCase_ == 12) {
         return (io.greptime.v1.Ddl.SetIndex) kind_;
      }
      return io.greptime.v1.Ddl.SetIndex.getDefaultInstance();
    }

    public static final int UNSET_INDEX_FIELD_NUMBER = 13;
    /**
     * <code>.greptime.v1.UnsetIndex unset_index = 13;</code>
     * @return Whether the unsetIndex field is set.
     */
    @java.lang.Override
    public boolean hasUnsetIndex() {
      return kindCase_ == 13;
    }
    /**
     * <code>.greptime.v1.UnsetIndex unset_index = 13;</code>
     * @return The unsetIndex.
     */
    @java.lang.Override
    public io.greptime.v1.Ddl.UnsetIndex getUnsetIndex() {
      if (kindCase_ == 13) {
         return (io.greptime.v1.Ddl.UnsetIndex) kind_;
      }
      return io.greptime.v1.Ddl.UnsetIndex.getDefaultInstance();
    }
    /**
     * <code>.greptime.v1.UnsetIndex unset_index = 13;</code>
     */
    @java.lang.Override
    public io.greptime.v1.Ddl.UnsetIndexOrBuilder getUnsetIndexOrBuilder() {
      if (kindCase_ == 13) {
         return (io.greptime.v1.Ddl.UnsetIndex) kind_;
      }
      return io.greptime.v1.Ddl.UnsetIndex.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 (!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_);
      }
      if (kindCase_ == 4) {
        output.writeMessage(4, (io.greptime.v1.Ddl.AddColumns) kind_);
      }
      if (kindCase_ == 5) {
        output.writeMessage(5, (io.greptime.v1.Ddl.DropColumns) kind_);
      }
      if (kindCase_ == 6) {
        output.writeMessage(6, (io.greptime.v1.Ddl.RenameTable) kind_);
      }
      if (kindCase_ == 7) {
        output.writeMessage(7, (io.greptime.v1.Ddl.ModifyColumnTypes) kind_);
      }
      if (kindCase_ == 8) {
        output.writeMessage(8, (io.greptime.v1.Ddl.SetTableOptions) kind_);
      }
      if (kindCase_ == 11) {
        output.writeMessage(11, (io.greptime.v1.Ddl.UnsetTableOptions) kind_);
      }
      if (kindCase_ == 12) {
        output.writeMessage(12, (io.greptime.v1.Ddl.SetIndex) kind_);
      }
      if (kindCase_ == 13) {
        output.writeMessage(13, (io.greptime.v1.Ddl.UnsetIndex) kind_);
      }
      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_);
      }
      if (kindCase_ == 4) {
        size += com.google.protobuf.CodedOutputStream
          .computeMessageSize(4, (io.greptime.v1.Ddl.AddColumns) kind_);
      }
      if (kindCase_ == 5) {
        size += com.google.protobuf.CodedOutputStream
          .computeMessageSize(5, (io.greptime.v1.Ddl.DropColumns) kind_);
      }
      if (kindCase_ == 6) {
        size += com.google.protobuf.CodedOutputStream
          .computeMessageSize(6, (io.greptime.v1.Ddl.RenameTable) kind_);
      }
      if (kindCase_ == 7) {
        size += com.google.protobuf.CodedOutputStream
          .computeMessageSize(7, (io.greptime.v1.Ddl.ModifyColumnTypes) kind_);
      }
      if (kindCase_ == 8) {
        size += com.google.protobuf.CodedOutputStream
          .computeMessageSize(8, (io.greptime.v1.Ddl.SetTableOptions) kind_);
      }
      if (kindCase_ == 11) {
        size += com.google.protobuf.CodedOutputStream
          .computeMessageSize(11, (io.greptime.v1.Ddl.UnsetTableOptions) kind_);
      }
      if (kindCase_ == 12) {
        size += com.google.protobuf.CodedOutputStream
          .computeMessageSize(12, (io.greptime.v1.Ddl.SetIndex) kind_);
      }
      if (kindCase_ == 13) {
        size += com.google.protobuf.CodedOutputStream
          .computeMessageSize(13, (io.greptime.v1.Ddl.UnsetIndex) kind_);
      }
      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.Ddl.AlterTableExpr)) {
        return super.equals(obj);
      }
      io.greptime.v1.Ddl.AlterTableExpr other = (io.greptime.v1.Ddl.AlterTableExpr) obj;

      if (!getCatalogName()
          .equals(other.getCatalogName())) return false;
      if (!getSchemaName()
          .equals(other.getSchemaName())) return false;
      if (!getTableName()
          .equals(other.getTableName())) return false;
      if (!getKindCase().equals(other.getKindCase())) return false;
      switch (kindCase_) {
        case 4:
          if (!getAddColumns()
              .equals(other.getAddColumns())) return false;
          break;
        case 5:
          if (!getDropColumns()
              .equals(other.getDropColumns())) return false;
          break;
        case 6:
          if (!getRenameTable()
              .equals(other.getRenameTable())) return false;
          break;
        case 7:
          if (!getModifyColumnTypes()
              .equals(other.getModifyColumnTypes())) return false;
          break;
        case 8:
          if (!getSetTableOptions()
              .equals(other.getSetTableOptions())) return false;
          break;
        case 11:
          if (!getUnsetTableOptions()
              .equals(other.getUnsetTableOptions())) return false;
          break;
        case 12:
          if (!getSetIndex()
              .equals(other.getSetIndex())) return false;
          break;
        case 13:
          if (!getUnsetIndex()
              .equals(other.getUnsetIndex())) 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();
      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();
      switch (kindCase_) {
        case 4:
          hash = (37 * hash) + ADD_COLUMNS_FIELD_NUMBER;
          hash = (53 * hash) + getAddColumns().hashCode();
          break;
        case 5:
          hash = (37 * hash) + DROP_COLUMNS_FIELD_NUMBER;
          hash = (53 * hash) + getDropColumns().hashCode();
          break;
        case 6:
          hash = (37 * hash) + RENAME_TABLE_FIELD_NUMBER;
          hash = (53 * hash) + getRenameTable().hashCode();
          break;
        case 7:
          hash = (37 * hash) + MODIFY_COLUMN_TYPES_FIELD_NUMBER;
          hash = (53 * hash) + getModifyColumnTypes().hashCode();
          break;
        case 8:
          hash = (37 * hash) + SET_TABLE_OPTIONS_FIELD_NUMBER;
          hash = (53 * hash) + getSetTableOptions().hashCode();
          break;
        case 11:
          hash = (37 * hash) + UNSET_TABLE_OPTIONS_FIELD_NUMBER;
          hash = (53 * hash) + getUnsetTableOptions().hashCode();
          break;
        case 12:
          hash = (37 * hash) + SET_INDEX_FIELD_NUMBER;
          hash = (53 * hash) + getSetIndex().hashCode();
          break;
        case 13:
          hash = (37 * hash) + UNSET_INDEX_FIELD_NUMBER;
          hash = (53 * hash) + getUnsetIndex().hashCode();
          break;
        case 0:
        default:
      }
      hash = (29 * hash) + unknownFields.hashCode();
      memoizedHashCode = hash;
      return hash;
    }

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

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

      // Construct using io.greptime.v1.Ddl.AlterTableExpr.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_ = "";

        kindCase_ = 0;
        kind_ = null;
        return this;
      }

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

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

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

      @java.lang.Override
      public io.greptime.v1.Ddl.AlterTableExpr buildPartial() {
        io.greptime.v1.Ddl.AlterTableExpr result = new io.greptime.v1.Ddl.AlterTableExpr(this);
        result.catalogName_ = catalogName_;
        result.schemaName_ = schemaName_;
        result.tableName_ = tableName_;
        if (kindCase_ == 4) {
          if (addColumnsBuilder_ == null) {
            result.kind_ = kind_;
          } else {
            result.kind_ = addColumnsBuilder_.build();
          }
        }
        if (kindCase_ == 5) {
          if (dropColumnsBuilder_ == null) {
            result.kind_ = kind_;
          } else {
            result.kind_ = dropColumnsBuilder_.build();
          }
        }
        if (kindCase_ == 6) {
          if (renameTableBuilder_ == null) {
            result.kind_ = kind_;
          } else {
            result.kind_ = renameTableBuilder_.build();
          }
        }
        if (kindCase_ == 7) {
          if (modifyColumnTypesBuilder_ == null) {
            result.kind_ = kind_;
          } else {
            result.kind_ = modifyColumnTypesBuilder_.build();
          }
        }
        if (kindCase_ == 8) {
          if (setTableOptionsBuilder_ == null) {
            result.kind_ = kind_;
          } else {
            result.kind_ = setTableOptionsBuilder_.build();
          }
        }
        if (kindCase_ == 11) {
          if (unsetTableOptionsBuilder_ == null) {
            result.kind_ = kind_;
          } else {
            result.kind_ = unsetTableOptionsBuilder_.build();
          }
        }
        if (kindCase_ == 12) {
          if (setIndexBuilder_ == null) {
            result.kind_ = kind_;
          } else {
            result.kind_ = setIndexBuilder_.build();
          }
        }
        if (kindCase_ == 13) {
          if (unsetIndexBuilder_ == null) {
            result.kind_ = kind_;
          } else {
            result.kind_ = unsetIndexBuilder_.build();
          }
        }
        result.kindCase_ = kindCase_;
        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.Ddl.AlterTableExpr) {
          return mergeFrom((io.greptime.v1.Ddl.AlterTableExpr)other);
        } else {
          super.mergeFrom(other);
          return this;
        }
      }

      public Builder mergeFrom(io.greptime.v1.Ddl.AlterTableExpr other) {
        if (other == io.greptime.v1.Ddl.AlterTableExpr.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();
        }
        switch (other.getKindCase()) {
          case ADD_COLUMNS: {
            mergeAddColumns(other.getAddColumns());
            break;
          }
          case DROP_COLUMNS: {
            mergeDropColumns(other.getDropColumns());
            break;
          }
          case RENAME_TABLE: {
            mergeRenameTable(other.getRenameTable());
            break;
          }
          case MODIFY_COLUMN_TYPES: {
            mergeModifyColumnTypes(other.getModifyColumnTypes());
            break;
          }
          case SET_TABLE_OPTIONS: {
            mergeSetTableOptions(other.getSetTableOptions());
            break;
          }
          case UNSET_TABLE_OPTIONS: {
            mergeUnsetTableOptions(other.getUnsetTableOptions());
            break;
          }
          case SET_INDEX: {
            mergeSetIndex(other.getSetIndex());
            break;
          }
          case UNSET_INDEX: {
            mergeUnsetIndex(other.getUnsetIndex());
            break;
          }
          case KIND_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.Ddl.AlterTableExpr parsedMessage = null;
        try {
          parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry);
        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
          parsedMessage = (io.greptime.v1.Ddl.AlterTableExpr) e.getUnfinishedMessage();
          throw e.unwrapIOException();
        } finally {
          if (parsedMessage != null) {
            mergeFrom(parsedMessage);
          }
        }
        return this;
      }
      private int kindCase_ = 0;
      private java.lang.Object kind_;
      public KindCase
          getKindCase() {
        return KindCase.forNumber(
            kindCase_);
      }

      public Builder clearKind() {
        kindCase_ = 0;
        kind_ = null;
        onChanged();
        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;
      }

      private com.google.protobuf.SingleFieldBuilderV3<
          io.greptime.v1.Ddl.AddColumns, io.greptime.v1.Ddl.AddColumns.Builder, io.greptime.v1.Ddl.AddColumnsOrBuilder> addColumnsBuilder_;
      /**
       * <code>.greptime.v1.AddColumns add_columns = 4;</code>
       * @return Whether the addColumns field is set.
       */
      @java.lang.Override
      public boolean hasAddColumns() {
        return kindCase_ == 4;
      }
      /**
       * <code>.greptime.v1.AddColumns add_columns = 4;</code>
       * @return The addColumns.
       */
      @java.lang.Override
      public io.greptime.v1.Ddl.AddColumns getAddColumns() {
        if (addColumnsBuilder_ == null) {
          if (kindCase_ == 4) {
            return (io.greptime.v1.Ddl.AddColumns) kind_;
          }
          return io.greptime.v1.Ddl.AddColumns.getDefaultInstance();
        } else {
          if (kindCase_ == 4) {
            return addColumnsBuilder_.getMessage();
          }
          return io.greptime.v1.Ddl.AddColumns.getDefaultInstance();
        }
      }
      /**
       * <code>.greptime.v1.AddColumns add_columns = 4;</code>
       */
      public Builder setAddColumns(io.greptime.v1.Ddl.AddColumns value) {
        if (addColumnsBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          kind_ = value;
          onChanged();
        } else {
          addColumnsBuilder_.setMessage(value);
        }
        kindCase_ = 4;
        return this;
      }
      /**
       * <code>.greptime.v1.AddColumns add_columns = 4;</code>
       */
      public Builder setAddColumns(
          io.greptime.v1.Ddl.AddColumns.Builder builderForValue) {
        if (addColumnsBuilder_ == null) {
          kind_ = builderForValue.build();
          onChanged();
        } else {
          addColumnsBuilder_.setMessage(builderForValue.build());
        }
        kindCase_ = 4;
        return this;
      }
      /**
       * <code>.greptime.v1.AddColumns add_columns = 4;</code>
       */
      public Builder mergeAddColumns(io.greptime.v1.Ddl.AddColumns value) {
        if (addColumnsBuilder_ == null) {
          if (kindCase_ == 4 &&
              kind_ != io.greptime.v1.Ddl.AddColumns.getDefaultInstance()) {
            kind_ = io.greptime.v1.Ddl.AddColumns.newBuilder((io.greptime.v1.Ddl.AddColumns) kind_)
                .mergeFrom(value).buildPartial();
          } else {
            kind_ = value;
          }
          onChanged();
        } else {
          if (kindCase_ == 4) {
            addColumnsBuilder_.mergeFrom(value);
          } else {
            addColumnsBuilder_.setMessage(value);
          }
        }
        kindCase_ = 4;
        return this;
      }
      /**
       * <code>.greptime.v1.AddColumns add_columns = 4;</code>
       */
      public Builder clearAddColumns() {
        if (addColumnsBuilder_ == null) {
          if (kindCase_ == 4) {
            kindCase_ = 0;
            kind_ = null;
            onChanged();
          }
        } else {
          if (kindCase_ == 4) {
            kindCase_ = 0;
            kind_ = null;
          }
          addColumnsBuilder_.clear();
        }
        return this;
      }
      /**
       * <code>.greptime.v1.AddColumns add_columns = 4;</code>
       */
      public io.greptime.v1.Ddl.AddColumns.Builder getAddColumnsBuilder() {
        return getAddColumnsFieldBuilder().getBuilder();
      }
      /**
       * <code>.greptime.v1.AddColumns add_columns = 4;</code>
       */
      @java.lang.Override
      public io.greptime.v1.Ddl.AddColumnsOrBuilder getAddColumnsOrBuilder() {
        if ((kindCase_ == 4) && (addColumnsBuilder_ != null)) {
          return addColumnsBuilder_.getMessageOrBuilder();
        } else {
          if (kindCase_ == 4) {
            return (io.greptime.v1.Ddl.AddColumns) kind_;
          }
          return io.greptime.v1.Ddl.AddColumns.getDefaultInstance();
        }
      }
      /**
       * <code>.greptime.v1.AddColumns add_columns = 4;</code>
       */
      private com.google.protobuf.SingleFieldBuilderV3<
          io.greptime.v1.Ddl.AddColumns, io.greptime.v1.Ddl.AddColumns.Builder, io.greptime.v1.Ddl.AddColumnsOrBuilder> 
          getAddColumnsFieldBuilder() {
        if (addColumnsBuilder_ == null) {
          if (!(kindCase_ == 4)) {
            kind_ = io.greptime.v1.Ddl.AddColumns.getDefaultInstance();
          }
          addColumnsBuilder_ = new com.google.protobuf.SingleFieldBuilderV3<
              io.greptime.v1.Ddl.AddColumns, io.greptime.v1.Ddl.AddColumns.Builder, io.greptime.v1.Ddl.AddColumnsOrBuilder>(
                  (io.greptime.v1.Ddl.AddColumns) kind_,
                  getParentForChildren(),
                  isClean());
          kind_ = null;
        }
        kindCase_ = 4;
        onChanged();;
        return addColumnsBuilder_;
      }

      private com.google.protobuf.SingleFieldBuilderV3<
          io.greptime.v1.Ddl.DropColumns, io.greptime.v1.Ddl.DropColumns.Builder, io.greptime.v1.Ddl.DropColumnsOrBuilder> dropColumnsBuilder_;
      /**
       * <code>.greptime.v1.DropColumns drop_columns = 5;</code>
       * @return Whether the dropColumns field is set.
       */
      @java.lang.Override
      public boolean hasDropColumns() {
        return kindCase_ == 5;
      }
      /**
       * <code>.greptime.v1.DropColumns drop_columns = 5;</code>
       * @return The dropColumns.
       */
      @java.lang.Override
      public io.greptime.v1.Ddl.DropColumns getDropColumns() {
        if (dropColumnsBuilder_ == null) {
          if (kindCase_ == 5) {
            return (io.greptime.v1.Ddl.DropColumns) kind_;
          }
          return io.greptime.v1.Ddl.DropColumns.getDefaultInstance();
        } else {
          if (kindCase_ == 5) {
            return dropColumnsBuilder_.getMessage();
          }
          return io.greptime.v1.Ddl.DropColumns.getDefaultInstance();
        }
      }
      /**
       * <code>.greptime.v1.DropColumns drop_columns = 5;</code>
       */
      public Builder setDropColumns(io.greptime.v1.Ddl.DropColumns value) {
        if (dropColumnsBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          kind_ = value;
          onChanged();
        } else {
          dropColumnsBuilder_.setMessage(value);
        }
        kindCase_ = 5;
        return this;
      }
      /**
       * <code>.greptime.v1.DropColumns drop_columns = 5;</code>
       */
      public Builder setDropColumns(
          io.greptime.v1.Ddl.DropColumns.Builder builderForValue) {
        if (dropColumnsBuilder_ == null) {
          kind_ = builderForValue.build();
          onChanged();
        } else {
          dropColumnsBuilder_.setMessage(builderForValue.build());
        }
        kindCase_ = 5;
        return this;
      }
      /**
       * <code>.greptime.v1.DropColumns drop_columns = 5;</code>
       */
      public Builder mergeDropColumns(io.greptime.v1.Ddl.DropColumns value) {
        if (dropColumnsBuilder_ == null) {
          if (kindCase_ == 5 &&
              kind_ != io.greptime.v1.Ddl.DropColumns.getDefaultInstance()) {
            kind_ = io.greptime.v1.Ddl.DropColumns.newBuilder((io.greptime.v1.Ddl.DropColumns) kind_)
                .mergeFrom(value).buildPartial();
          } else {
            kind_ = value;
          }
          onChanged();
        } else {
          if (kindCase_ == 5) {
            dropColumnsBuilder_.mergeFrom(value);
          } else {
            dropColumnsBuilder_.setMessage(value);
          }
        }
        kindCase_ = 5;
        return this;
      }
      /**
       * <code>.greptime.v1.DropColumns drop_columns = 5;</code>
       */
      public Builder clearDropColumns() {
        if (dropColumnsBuilder_ == null) {
          if (kindCase_ == 5) {
            kindCase_ = 0;
            kind_ = null;
            onChanged();
          }
        } else {
          if (kindCase_ == 5) {
            kindCase_ = 0;
            kind_ = null;
          }
          dropColumnsBuilder_.clear();
        }
        return this;
      }
      /**
       * <code>.greptime.v1.DropColumns drop_columns = 5;</code>
       */
      public io.greptime.v1.Ddl.DropColumns.Builder getDropColumnsBuilder() {
        return getDropColumnsFieldBuilder().getBuilder();
      }
      /**
       * <code>.greptime.v1.DropColumns drop_columns = 5;</code>
       */
      @java.lang.Override
      public io.greptime.v1.Ddl.DropColumnsOrBuilder getDropColumnsOrBuilder() {
        if ((kindCase_ == 5) && (dropColumnsBuilder_ != null)) {
          return dropColumnsBuilder_.getMessageOrBuilder();
        } else {
          if (kindCase_ == 5) {
            return (io.greptime.v1.Ddl.DropColumns) kind_;
          }
          return io.greptime.v1.Ddl.DropColumns.getDefaultInstance();
        }
      }
      /**
       * <code>.greptime.v1.DropColumns drop_columns = 5;</code>
       */
      private com.google.protobuf.SingleFieldBuilderV3<
          io.greptime.v1.Ddl.DropColumns, io.greptime.v1.Ddl.DropColumns.Builder, io.greptime.v1.Ddl.DropColumnsOrBuilder> 
          getDropColumnsFieldBuilder() {
        if (dropColumnsBuilder_ == null) {
          if (!(kindCase_ == 5)) {
            kind_ = io.greptime.v1.Ddl.DropColumns.getDefaultInstance();
          }
          dropColumnsBuilder_ = new com.google.protobuf.SingleFieldBuilderV3<
              io.greptime.v1.Ddl.DropColumns, io.greptime.v1.Ddl.DropColumns.Builder, io.greptime.v1.Ddl.DropColumnsOrBuilder>(
                  (io.greptime.v1.Ddl.DropColumns) kind_,
                  getParentForChildren(),
                  isClean());
          kind_ = null;
        }
        kindCase_ = 5;
        onChanged();;
        return dropColumnsBuilder_;
      }

      private com.google.protobuf.SingleFieldBuilderV3<
          io.greptime.v1.Ddl.RenameTable, io.greptime.v1.Ddl.RenameTable.Builder, io.greptime.v1.Ddl.RenameTableOrBuilder> renameTableBuilder_;
      /**
       * <code>.greptime.v1.RenameTable rename_table = 6;</code>
       * @return Whether the renameTable field is set.
       */
      @java.lang.Override
      public boolean hasRenameTable() {
        return kindCase_ == 6;
      }
      /**
       * <code>.greptime.v1.RenameTable rename_table = 6;</code>
       * @return The renameTable.
       */
      @java.lang.Override
      public io.greptime.v1.Ddl.RenameTable getRenameTable() {
        if (renameTableBuilder_ == null) {
          if (kindCase_ == 6) {
            return (io.greptime.v1.Ddl.RenameTable) kind_;
          }
          return io.greptime.v1.Ddl.RenameTable.getDefaultInstance();
        } else {
          if (kindCase_ == 6) {
            return renameTableBuilder_.getMessage();
          }
          return io.greptime.v1.Ddl.RenameTable.getDefaultInstance();
        }
      }
      /**
       * <code>.greptime.v1.RenameTable rename_table = 6;</code>
       */
      public Builder setRenameTable(io.greptime.v1.Ddl.RenameTable value) {
        if (renameTableBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          kind_ = value;
          onChanged();
        } else {
          renameTableBuilder_.setMessage(value);
        }
        kindCase_ = 6;
        return this;
      }
      /**
       * <code>.greptime.v1.RenameTable rename_table = 6;</code>
       */
      public Builder setRenameTable(
          io.greptime.v1.Ddl.RenameTable.Builder builderForValue) {
        if (renameTableBuilder_ == null) {
          kind_ = builderForValue.build();
          onChanged();
        } else {
          renameTableBuilder_.setMessage(builderForValue.build());
        }
        kindCase_ = 6;
        return this;
      }
      /**
       * <code>.greptime.v1.RenameTable rename_table = 6;</code>
       */
      public Builder mergeRenameTable(io.greptime.v1.Ddl.RenameTable value) {
        if (renameTableBuilder_ == null) {
          if (kindCase_ == 6 &&
              kind_ != io.greptime.v1.Ddl.RenameTable.getDefaultInstance()) {
            kind_ = io.greptime.v1.Ddl.RenameTable.newBuilder((io.greptime.v1.Ddl.RenameTable) kind_)
                .mergeFrom(value).buildPartial();
          } else {
            kind_ = value;
          }
          onChanged();
        } else {
          if (kindCase_ == 6) {
            renameTableBuilder_.mergeFrom(value);
          } else {
            renameTableBuilder_.setMessage(value);
          }
        }
        kindCase_ = 6;
        return this;
      }
      /**
       * <code>.greptime.v1.RenameTable rename_table = 6;</code>
       */
      public Builder clearRenameTable() {
        if (renameTableBuilder_ == null) {
          if (kindCase_ == 6) {
            kindCase_ = 0;
            kind_ = null;
            onChanged();
          }
        } else {
          if (kindCase_ == 6) {
            kindCase_ = 0;
            kind_ = null;
          }
          renameTableBuilder_.clear();
        }
        return this;
      }
      /**
       * <code>.greptime.v1.RenameTable rename_table = 6;</code>
       */
      public io.greptime.v1.Ddl.RenameTable.Builder getRenameTableBuilder() {
        return getRenameTableFieldBuilder().getBuilder();
      }
      /**
       * <code>.greptime.v1.RenameTable rename_table = 6;</code>
       */
      @java.lang.Override
      public io.greptime.v1.Ddl.RenameTableOrBuilder getRenameTableOrBuilder() {
        if ((kindCase_ == 6) && (renameTableBuilder_ != null)) {
          return renameTableBuilder_.getMessageOrBuilder();
        } else {
          if (kindCase_ == 6) {
            return (io.greptime.v1.Ddl.RenameTable) kind_;
          }
          return io.greptime.v1.Ddl.RenameTable.getDefaultInstance();
        }
      }
      /**
       * <code>.greptime.v1.RenameTable rename_table = 6;</code>
       */
      private com.google.protobuf.SingleFieldBuilderV3<
          io.greptime.v1.Ddl.RenameTable, io.greptime.v1.Ddl.RenameTable.Builder, io.greptime.v1.Ddl.RenameTableOrBuilder> 
          getRenameTableFieldBuilder() {
        if (renameTableBuilder_ == null) {
          if (!(kindCase_ == 6)) {
            kind_ = io.greptime.v1.Ddl.RenameTable.getDefaultInstance();
          }
          renameTableBuilder_ = new com.google.protobuf.SingleFieldBuilderV3<
              io.greptime.v1.Ddl.RenameTable, io.greptime.v1.Ddl.RenameTable.Builder, io.greptime.v1.Ddl.RenameTableOrBuilder>(
                  (io.greptime.v1.Ddl.RenameTable) kind_,
                  getParentForChildren(),
                  isClean());
          kind_ = null;
        }
        kindCase_ = 6;
        onChanged();;
        return renameTableBuilder_;
      }

      private com.google.protobuf.SingleFieldBuilderV3<
          io.greptime.v1.Ddl.ModifyColumnTypes, io.greptime.v1.Ddl.ModifyColumnTypes.Builder, io.greptime.v1.Ddl.ModifyColumnTypesOrBuilder> modifyColumnTypesBuilder_;
      /**
       * <code>.greptime.v1.ModifyColumnTypes modify_column_types = 7;</code>
       * @return Whether the modifyColumnTypes field is set.
       */
      @java.lang.Override
      public boolean hasModifyColumnTypes() {
        return kindCase_ == 7;
      }
      /**
       * <code>.greptime.v1.ModifyColumnTypes modify_column_types = 7;</code>
       * @return The modifyColumnTypes.
       */
      @java.lang.Override
      public io.greptime.v1.Ddl.ModifyColumnTypes getModifyColumnTypes() {
        if (modifyColumnTypesBuilder_ == null) {
          if (kindCase_ == 7) {
            return (io.greptime.v1.Ddl.ModifyColumnTypes) kind_;
          }
          return io.greptime.v1.Ddl.ModifyColumnTypes.getDefaultInstance();
        } else {
          if (kindCase_ == 7) {
            return modifyColumnTypesBuilder_.getMessage();
          }
          return io.greptime.v1.Ddl.ModifyColumnTypes.getDefaultInstance();
        }
      }
      /**
       * <code>.greptime.v1.ModifyColumnTypes modify_column_types = 7;</code>
       */
      public Builder setModifyColumnTypes(io.greptime.v1.Ddl.ModifyColumnTypes value) {
        if (modifyColumnTypesBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          kind_ = value;
          onChanged();
        } else {
          modifyColumnTypesBuilder_.setMessage(value);
        }
        kindCase_ = 7;
        return this;
      }
      /**
       * <code>.greptime.v1.ModifyColumnTypes modify_column_types = 7;</code>
       */
      public Builder setModifyColumnTypes(
          io.greptime.v1.Ddl.ModifyColumnTypes.Builder builderForValue) {
        if (modifyColumnTypesBuilder_ == null) {
          kind_ = builderForValue.build();
          onChanged();
        } else {
          modifyColumnTypesBuilder_.setMessage(builderForValue.build());
        }
        kindCase_ = 7;
        return this;
      }
      /**
       * <code>.greptime.v1.ModifyColumnTypes modify_column_types = 7;</code>
       */
      public Builder mergeModifyColumnTypes(io.greptime.v1.Ddl.ModifyColumnTypes value) {
        if (modifyColumnTypesBuilder_ == null) {
          if (kindCase_ == 7 &&
              kind_ != io.greptime.v1.Ddl.ModifyColumnTypes.getDefaultInstance()) {
            kind_ = io.greptime.v1.Ddl.ModifyColumnTypes.newBuilder((io.greptime.v1.Ddl.ModifyColumnTypes) kind_)
                .mergeFrom(value).buildPartial();
          } else {
            kind_ = value;
          }
          onChanged();
        } else {
          if (kindCase_ == 7) {
            modifyColumnTypesBuilder_.mergeFrom(value);
          } else {
            modifyColumnTypesBuilder_.setMessage(value);
          }
        }
        kindCase_ = 7;
        return this;
      }
      /**
       * <code>.greptime.v1.ModifyColumnTypes modify_column_types = 7;</code>
       */
      public Builder clearModifyColumnTypes() {
        if (modifyColumnTypesBuilder_ == null) {
          if (kindCase_ == 7) {
            kindCase_ = 0;
            kind_ = null;
            onChanged();
          }
        } else {
          if (kindCase_ == 7) {
            kindCase_ = 0;
            kind_ = null;
          }
          modifyColumnTypesBuilder_.clear();
        }
        return this;
      }
      /**
       * <code>.greptime.v1.ModifyColumnTypes modify_column_types = 7;</code>
       */
      public io.greptime.v1.Ddl.ModifyColumnTypes.Builder getModifyColumnTypesBuilder() {
        return getModifyColumnTypesFieldBuilder().getBuilder();
      }
      /**
       * <code>.greptime.v1.ModifyColumnTypes modify_column_types = 7;</code>
       */
      @java.lang.Override
      public io.greptime.v1.Ddl.ModifyColumnTypesOrBuilder getModifyColumnTypesOrBuilder() {
        if ((kindCase_ == 7) && (modifyColumnTypesBuilder_ != null)) {
          return modifyColumnTypesBuilder_.getMessageOrBuilder();
        } else {
          if (kindCase_ == 7) {
            return (io.greptime.v1.Ddl.ModifyColumnTypes) kind_;
          }
          return io.greptime.v1.Ddl.ModifyColumnTypes.getDefaultInstance();
        }
      }
      /**
       * <code>.greptime.v1.ModifyColumnTypes modify_column_types = 7;</code>
       */
      private com.google.protobuf.SingleFieldBuilderV3<
          io.greptime.v1.Ddl.ModifyColumnTypes, io.greptime.v1.Ddl.ModifyColumnTypes.Builder, io.greptime.v1.Ddl.ModifyColumnTypesOrBuilder> 
          getModifyColumnTypesFieldBuilder() {
        if (modifyColumnTypesBuilder_ == null) {
          if (!(kindCase_ == 7)) {
            kind_ = io.greptime.v1.Ddl.ModifyColumnTypes.getDefaultInstance();
          }
          modifyColumnTypesBuilder_ = new com.google.protobuf.SingleFieldBuilderV3<
              io.greptime.v1.Ddl.ModifyColumnTypes, io.greptime.v1.Ddl.ModifyColumnTypes.Builder, io.greptime.v1.Ddl.ModifyColumnTypesOrBuilder>(
                  (io.greptime.v1.Ddl.ModifyColumnTypes) kind_,
                  getParentForChildren(),
                  isClean());
          kind_ = null;
        }
        kindCase_ = 7;
        onChanged();;
        return modifyColumnTypesBuilder_;
      }

      private com.google.protobuf.SingleFieldBuilderV3<
          io.greptime.v1.Ddl.SetTableOptions, io.greptime.v1.Ddl.SetTableOptions.Builder, io.greptime.v1.Ddl.SetTableOptionsOrBuilder> setTableOptionsBuilder_;
      /**
       * <code>.greptime.v1.SetTableOptions set_table_options = 8;</code>
       * @return Whether the setTableOptions field is set.
       */
      @java.lang.Override
      public boolean hasSetTableOptions() {
        return kindCase_ == 8;
      }
      /**
       * <code>.greptime.v1.SetTableOptions set_table_options = 8;</code>
       * @return The setTableOptions.
       */
      @java.lang.Override
      public io.greptime.v1.Ddl.SetTableOptions getSetTableOptions() {
        if (setTableOptionsBuilder_ == null) {
          if (kindCase_ == 8) {
            return (io.greptime.v1.Ddl.SetTableOptions) kind_;
          }
          return io.greptime.v1.Ddl.SetTableOptions.getDefaultInstance();
        } else {
          if (kindCase_ == 8) {
            return setTableOptionsBuilder_.getMessage();
          }
          return io.greptime.v1.Ddl.SetTableOptions.getDefaultInstance();
        }
      }
      /**
       * <code>.greptime.v1.SetTableOptions set_table_options = 8;</code>
       */
      public Builder setSetTableOptions(io.greptime.v1.Ddl.SetTableOptions value) {
        if (setTableOptionsBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          kind_ = value;
          onChanged();
        } else {
          setTableOptionsBuilder_.setMessage(value);
        }
        kindCase_ = 8;
        return this;
      }
      /**
       * <code>.greptime.v1.SetTableOptions set_table_options = 8;</code>
       */
      public Builder setSetTableOptions(
          io.greptime.v1.Ddl.SetTableOptions.Builder builderForValue) {
        if (setTableOptionsBuilder_ == null) {
          kind_ = builderForValue.build();
          onChanged();
        } else {
          setTableOptionsBuilder_.setMessage(builderForValue.build());
        }
        kindCase_ = 8;
        return this;
      }
      /**
       * <code>.greptime.v1.SetTableOptions set_table_options = 8;</code>
       */
      public Builder mergeSetTableOptions(io.greptime.v1.Ddl.SetTableOptions value) {
        if (setTableOptionsBuilder_ == null) {
          if (kindCase_ == 8 &&
              kind_ != io.greptime.v1.Ddl.SetTableOptions.getDefaultInstance()) {
            kind_ = io.greptime.v1.Ddl.SetTableOptions.newBuilder((io.greptime.v1.Ddl.SetTableOptions) kind_)
                .mergeFrom(value).buildPartial();
          } else {
            kind_ = value;
          }
          onChanged();
        } else {
          if (kindCase_ == 8) {
            setTableOptionsBuilder_.mergeFrom(value);
          } else {
            setTableOptionsBuilder_.setMessage(value);
          }
        }
        kindCase_ = 8;
        return this;
      }
      /**
       * <code>.greptime.v1.SetTableOptions set_table_options = 8;</code>
       */
      public Builder clearSetTableOptions() {
        if (setTableOptionsBuilder_ == null) {
          if (kindCase_ == 8) {
            kindCase_ = 0;
            kind_ = null;
            onChanged();
          }
        } else {
          if (kindCase_ == 8) {
            kindCase_ = 0;
            kind_ = null;
          }
          setTableOptionsBuilder_.clear();
        }
        return this;
      }
      /**
       * <code>.greptime.v1.SetTableOptions set_table_options = 8;</code>
       */
      public io.greptime.v1.Ddl.SetTableOptions.Builder getSetTableOptionsBuilder() {
        return getSetTableOptionsFieldBuilder().getBuilder();
      }
      /**
       * <code>.greptime.v1.SetTableOptions set_table_options = 8;</code>
       */
      @java.lang.Override
      public io.greptime.v1.Ddl.SetTableOptionsOrBuilder getSetTableOptionsOrBuilder() {
        if ((kindCase_ == 8) && (setTableOptionsBuilder_ != null)) {
          return setTableOptionsBuilder_.getMessageOrBuilder();
        } else {
          if (kindCase_ == 8) {
            return (io.greptime.v1.Ddl.SetTableOptions) kind_;
          }
          return io.greptime.v1.Ddl.SetTableOptions.getDefaultInstance();
        }
      }
      /**
       * <code>.greptime.v1.SetTableOptions set_table_options = 8;</code>
       */
      private com.google.protobuf.SingleFieldBuilderV3<
          io.greptime.v1.Ddl.SetTableOptions, io.greptime.v1.Ddl.SetTableOptions.Builder, io.greptime.v1.Ddl.SetTableOptionsOrBuilder> 
          getSetTableOptionsFieldBuilder() {
        if (setTableOptionsBuilder_ == null) {
          if (!(kindCase_ == 8)) {
            kind_ = io.greptime.v1.Ddl.SetTableOptions.getDefaultInstance();
          }
          setTableOptionsBuilder_ = new com.google.protobuf.SingleFieldBuilderV3<
              io.greptime.v1.Ddl.SetTableOptions, io.greptime.v1.Ddl.SetTableOptions.Builder, io.greptime.v1.Ddl.SetTableOptionsOrBuilder>(
                  (io.greptime.v1.Ddl.SetTableOptions) kind_,
                  getParentForChildren(),
                  isClean());
          kind_ = null;
        }
        kindCase_ = 8;
        onChanged();;
        return setTableOptionsBuilder_;
      }

      private com.google.protobuf.SingleFieldBuilderV3<
          io.greptime.v1.Ddl.UnsetTableOptions, io.greptime.v1.Ddl.UnsetTableOptions.Builder, io.greptime.v1.Ddl.UnsetTableOptionsOrBuilder> unsetTableOptionsBuilder_;
      /**
       * <code>.greptime.v1.UnsetTableOptions unset_table_options = 11;</code>
       * @return Whether the unsetTableOptions field is set.
       */
      @java.lang.Override
      public boolean hasUnsetTableOptions() {
        return kindCase_ == 11;
      }
      /**
       * <code>.greptime.v1.UnsetTableOptions unset_table_options = 11;</code>
       * @return The unsetTableOptions.
       */
      @java.lang.Override
      public io.greptime.v1.Ddl.UnsetTableOptions getUnsetTableOptions() {
        if (unsetTableOptionsBuilder_ == null) {
          if (kindCase_ == 11) {
            return (io.greptime.v1.Ddl.UnsetTableOptions) kind_;
          }
          return io.greptime.v1.Ddl.UnsetTableOptions.getDefaultInstance();
        } else {
          if (kindCase_ == 11) {
            return unsetTableOptionsBuilder_.getMessage();
          }
          return io.greptime.v1.Ddl.UnsetTableOptions.getDefaultInstance();
        }
      }
      /**
       * <code>.greptime.v1.UnsetTableOptions unset_table_options = 11;</code>
       */
      public Builder setUnsetTableOptions(io.greptime.v1.Ddl.UnsetTableOptions value) {
        if (unsetTableOptionsBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          kind_ = value;
          onChanged();
        } else {
          unsetTableOptionsBuilder_.setMessage(value);
        }
        kindCase_ = 11;
        return this;
      }
      /**
       * <code>.greptime.v1.UnsetTableOptions unset_table_options = 11;</code>
       */
      public Builder setUnsetTableOptions(
          io.greptime.v1.Ddl.UnsetTableOptions.Builder builderForValue) {
        if (unsetTableOptionsBuilder_ == null) {
          kind_ = builderForValue.build();
          onChanged();
        } else {
          unsetTableOptionsBuilder_.setMessage(builderForValue.build());
        }
        kindCase_ = 11;
        return this;
      }
      /**
       * <code>.greptime.v1.UnsetTableOptions unset_table_options = 11;</code>
       */
      public Builder mergeUnsetTableOptions(io.greptime.v1.Ddl.UnsetTableOptions value) {
        if (unsetTableOptionsBuilder_ == null) {
          if (kindCase_ == 11 &&
              kind_ != io.greptime.v1.Ddl.UnsetTableOptions.getDefaultInstance()) {
            kind_ = io.greptime.v1.Ddl.UnsetTableOptions.newBuilder((io.greptime.v1.Ddl.UnsetTableOptions) kind_)
                .mergeFrom(value).buildPartial();
          } else {
            kind_ = value;
          }
          onChanged();
        } else {
          if (kindCase_ == 11) {
            unsetTableOptionsBuilder_.mergeFrom(value);
          } else {
            unsetTableOptionsBuilder_.setMessage(value);
          }
        }
        kindCase_ = 11;
        return this;
      }
      /**
       * <code>.greptime.v1.UnsetTableOptions unset_table_options = 11;</code>
       */
      public Builder clearUnsetTableOptions() {
        if (unsetTableOptionsBuilder_ == null) {
          if (kindCase_ == 11) {
            kindCase_ = 0;
            kind_ = null;
            onChanged();
          }
        } else {
          if (kindCase_ == 11) {
            kindCase_ = 0;
            kind_ = null;
          }
          unsetTableOptionsBuilder_.clear();
        }
        return this;
      }
      /**
       * <code>.greptime.v1.UnsetTableOptions unset_table_options = 11;</code>
       */
      public io.greptime.v1.Ddl.UnsetTableOptions.Builder getUnsetTableOptionsBuilder() {
        return getUnsetTableOptionsFieldBuilder().getBuilder();
      }
      /**
       * <code>.greptime.v1.UnsetTableOptions unset_table_options = 11;</code>
       */
      @java.lang.Override
      public io.greptime.v1.Ddl.UnsetTableOptionsOrBuilder getUnsetTableOptionsOrBuilder() {
        if ((kindCase_ == 11) && (unsetTableOptionsBuilder_ != null)) {
          return unsetTableOptionsBuilder_.getMessageOrBuilder();
        } else {
          if (kindCase_ == 11) {
            return (io.greptime.v1.Ddl.UnsetTableOptions) kind_;
          }
          return io.greptime.v1.Ddl.UnsetTableOptions.getDefaultInstance();
        }
      }
      /**
       * <code>.greptime.v1.UnsetTableOptions unset_table_options = 11;</code>
       */
      private com.google.protobuf.SingleFieldBuilderV3<
          io.greptime.v1.Ddl.UnsetTableOptions, io.greptime.v1.Ddl.UnsetTableOptions.Builder, io.greptime.v1.Ddl.UnsetTableOptionsOrBuilder> 
          getUnsetTableOptionsFieldBuilder() {
        if (unsetTableOptionsBuilder_ == null) {
          if (!(kindCase_ == 11)) {
            kind_ = io.greptime.v1.Ddl.UnsetTableOptions.getDefaultInstance();
          }
          unsetTableOptionsBuilder_ = new com.google.protobuf.SingleFieldBuilderV3<
              io.greptime.v1.Ddl.UnsetTableOptions, io.greptime.v1.Ddl.UnsetTableOptions.Builder, io.greptime.v1.Ddl.UnsetTableOptionsOrBuilder>(
                  (io.greptime.v1.Ddl.UnsetTableOptions) kind_,
                  getParentForChildren(),
                  isClean());
          kind_ = null;
        }
        kindCase_ = 11;
        onChanged();;
        return unsetTableOptionsBuilder_;
      }

      private com.google.protobuf.SingleFieldBuilderV3<
          io.greptime.v1.Ddl.SetIndex, io.greptime.v1.Ddl.SetIndex.Builder, io.greptime.v1.Ddl.SetIndexOrBuilder> setIndexBuilder_;
      /**
       * <code>.greptime.v1.SetIndex set_index = 12;</code>
       * @return Whether the setIndex field is set.
       */
      @java.lang.Override
      public boolean hasSetIndex() {
        return kindCase_ == 12;
      }
      /**
       * <code>.greptime.v1.SetIndex set_index = 12;</code>
       * @return The setIndex.
       */
      @java.lang.Override
      public io.greptime.v1.Ddl.SetIndex getSetIndex() {
        if (setIndexBuilder_ == null) {
          if (kindCase_ == 12) {
            return (io.greptime.v1.Ddl.SetIndex) kind_;
          }
          return io.greptime.v1.Ddl.SetIndex.getDefaultInstance();
        } else {
          if (kindCase_ == 12) {
            return setIndexBuilder_.getMessage();
          }
          return io.greptime.v1.Ddl.SetIndex.getDefaultInstance();
        }
      }
      /**
       * <code>.greptime.v1.SetIndex set_index = 12;</code>
       */
      public Builder setSetIndex(io.greptime.v1.Ddl.SetIndex value) {
        if (setIndexBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          kind_ = value;
          onChanged();
        } else {
          setIndexBuilder_.setMessage(value);
        }
        kindCase_ = 12;
        return this;
      }
      /**
       * <code>.greptime.v1.SetIndex set_index = 12;</code>
       */
      public Builder setSetIndex(
          io.greptime.v1.Ddl.SetIndex.Builder builderForValue) {
        if (setIndexBuilder_ == null) {
          kind_ = builderForValue.build();
          onChanged();
        } else {
          setIndexBuilder_.setMessage(builderForValue.build());
        }
        kindCase_ = 12;
        return this;
      }
      /**
       * <code>.greptime.v1.SetIndex set_index = 12;</code>
       */
      public Builder mergeSetIndex(io.greptime.v1.Ddl.SetIndex value) {
        if (setIndexBuilder_ == null) {
          if (kindCase_ == 12 &&
              kind_ != io.greptime.v1.Ddl.SetIndex.getDefaultInstance()) {
            kind_ = io.greptime.v1.Ddl.SetIndex.newBuilder((io.greptime.v1.Ddl.SetIndex) kind_)
                .mergeFrom(value).buildPartial();
          } else {
            kind_ = value;
          }
          onChanged();
        } else {
          if (kindCase_ == 12) {
            setIndexBuilder_.mergeFrom(value);
          } else {
            setIndexBuilder_.setMessage(value);
          }
        }
        kindCase_ = 12;
        return this;
      }
      /**
       * <code>.greptime.v1.SetIndex set_index = 12;</code>
       */
      public Builder clearSetIndex() {
        if (setIndexBuilder_ == null) {
          if (kindCase_ == 12) {
            kindCase_ = 0;
            kind_ = null;
            onChanged();
          }
        } else {
          if (kindCase_ == 12) {
            kindCase_ = 0;
            kind_ = null;
          }
          setIndexBuilder_.clear();
        }
        return this;
      }
      /**
       * <code>.greptime.v1.SetIndex set_index = 12;</code>
       */
      public io.greptime.v1.Ddl.SetIndex.Builder getSetIndexBuilder() {
        return getSetIndexFieldBuilder().getBuilder();
      }
      /**
       * <code>.greptime.v1.SetIndex set_index = 12;</code>
       */
      @java.lang.Override
      public io.greptime.v1.Ddl.SetIndexOrBuilder getSetIndexOrBuilder() {
        if ((kindCase_ == 12) && (setIndexBuilder_ != null)) {
          return setIndexBuilder_.getMessageOrBuilder();
        } else {
          if (kindCase_ == 12) {
            return (io.greptime.v1.Ddl.SetIndex) kind_;
          }
          return io.greptime.v1.Ddl.SetIndex.getDefaultInstance();
        }
      }
      /**
       * <code>.greptime.v1.SetIndex set_index = 12;</code>
       */
      private com.google.protobuf.SingleFieldBuilderV3<
          io.greptime.v1.Ddl.SetIndex, io.greptime.v1.Ddl.SetIndex.Builder, io.greptime.v1.Ddl.SetIndexOrBuilder> 
          getSetIndexFieldBuilder() {
        if (setIndexBuilder_ == null) {
          if (!(kindCase_ == 12)) {
            kind_ = io.greptime.v1.Ddl.SetIndex.getDefaultInstance();
          }
          setIndexBuilder_ = new com.google.protobuf.SingleFieldBuilderV3<
              io.greptime.v1.Ddl.SetIndex, io.greptime.v1.Ddl.SetIndex.Builder, io.greptime.v1.Ddl.SetIndexOrBuilder>(
                  (io.greptime.v1.Ddl.SetIndex) kind_,
                  getParentForChildren(),
                  isClean());
          kind_ = null;
        }
        kindCase_ = 12;
        onChanged();;
        return setIndexBuilder_;
      }

      private com.google.protobuf.SingleFieldBuilderV3<
          io.greptime.v1.Ddl.UnsetIndex, io.greptime.v1.Ddl.UnsetIndex.Builder, io.greptime.v1.Ddl.UnsetIndexOrBuilder> unsetIndexBuilder_;
      /**
       * <code>.greptime.v1.UnsetIndex unset_index = 13;</code>
       * @return Whether the unsetIndex field is set.
       */
      @java.lang.Override
      public boolean hasUnsetIndex() {
        return kindCase_ == 13;
      }
      /**
       * <code>.greptime.v1.UnsetIndex unset_index = 13;</code>
       * @return The unsetIndex.
       */
      @java.lang.Override
      public io.greptime.v1.Ddl.UnsetIndex getUnsetIndex() {
        if (unsetIndexBuilder_ == null) {
          if (kindCase_ == 13) {
            return (io.greptime.v1.Ddl.UnsetIndex) kind_;
          }
          return io.greptime.v1.Ddl.UnsetIndex.getDefaultInstance();
        } else {
          if (kindCase_ == 13) {
            return unsetIndexBuilder_.getMessage();
          }
          return io.greptime.v1.Ddl.UnsetIndex.getDefaultInstance();
        }
      }
      /**
       * <code>.greptime.v1.UnsetIndex unset_index = 13;</code>
       */
      public Builder setUnsetIndex(io.greptime.v1.Ddl.UnsetIndex value) {
        if (unsetIndexBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          kind_ = value;
          onChanged();
        } else {
          unsetIndexBuilder_.setMessage(value);
        }
        kindCase_ = 13;
        return this;
      }
      /**
       * <code>.greptime.v1.UnsetIndex unset_index = 13;</code>
       */
      public Builder setUnsetIndex(
          io.greptime.v1.Ddl.UnsetIndex.Builder builderForValue) {
        if (unsetIndexBuilder_ == null) {
          kind_ = builderForValue.build();
          onChanged();
        } else {
          unsetIndexBuilder_.setMessage(builderForValue.build());
        }
        kindCase_ = 13;
        return this;
      }
      /**
       * <code>.greptime.v1.UnsetIndex unset_index = 13;</code>
       */
      public Builder mergeUnsetIndex(io.greptime.v1.Ddl.UnsetIndex value) {
        if (unsetIndexBuilder_ == null) {
          if (kindCase_ == 13 &&
              kind_ != io.greptime.v1.Ddl.UnsetIndex.getDefaultInstance()) {
            kind_ = io.greptime.v1.Ddl.UnsetIndex.newBuilder((io.greptime.v1.Ddl.UnsetIndex) kind_)
                .mergeFrom(value).buildPartial();
          } else {
            kind_ = value;
          }
          onChanged();
        } else {
          if (kindCase_ == 13) {
            unsetIndexBuilder_.mergeFrom(value);
          } else {
            unsetIndexBuilder_.setMessage(value);
          }
        }
        kindCase_ = 13;
        return this;
      }
      /**
       * <code>.greptime.v1.UnsetIndex unset_index = 13;</code>
       */
      public Builder clearUnsetIndex() {
        if (unsetIndexBuilder_ == null) {
          if (kindCase_ == 13) {
            kindCase_ = 0;
            kind_ = null;
            onChanged();
          }
        } else {
          if (kindCase_ == 13) {
            kindCase_ = 0;
            kind_ = null;
          }
          unsetIndexBuilder_.clear();
        }
        return this;
      }
      /**
       * <code>.greptime.v1.UnsetIndex unset_index = 13;</code>
       */
      public io.greptime.v1.Ddl.UnsetIndex.Builder getUnsetIndexBuilder() {
        return getUnsetIndexFieldBuilder().getBuilder();
      }
      /**
       * <code>.greptime.v1.UnsetIndex unset_index = 13;</code>
       */
      @java.lang.Override
      public io.greptime.v1.Ddl.UnsetIndexOrBuilder getUnsetIndexOrBuilder() {
        if ((kindCase_ == 13) && (unsetIndexBuilder_ != null)) {
          return unsetIndexBuilder_.getMessageOrBuilder();
        } else {
          if (kindCase_ == 13) {
            return (io.greptime.v1.Ddl.UnsetIndex) kind_;
          }
          return io.greptime.v1.Ddl.UnsetIndex.getDefaultInstance();
        }
      }
      /**
       * <code>.greptime.v1.UnsetIndex unset_index = 13;</code>
       */
      private com.google.protobuf.SingleFieldBuilderV3<
          io.greptime.v1.Ddl.UnsetIndex, io.greptime.v1.Ddl.UnsetIndex.Builder, io.greptime.v1.Ddl.UnsetIndexOrBuilder> 
          getUnsetIndexFieldBuilder() {
        if (unsetIndexBuilder_ == null) {
          if (!(kindCase_ == 13)) {
            kind_ = io.greptime.v1.Ddl.UnsetIndex.getDefaultInstance();
          }
          unsetIndexBuilder_ = new com.google.protobuf.SingleFieldBuilderV3<
              io.greptime.v1.Ddl.UnsetIndex, io.greptime.v1.Ddl.UnsetIndex.Builder, io.greptime.v1.Ddl.UnsetIndexOrBuilder>(
                  (io.greptime.v1.Ddl.UnsetIndex) kind_,
                  getParentForChildren(),
                  isClean());
          kind_ = null;
        }
        kindCase_ = 13;
        onChanged();;
        return unsetIndexBuilder_;
      }
      @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.AlterTableExpr)
    }

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

    public static io.greptime.v1.Ddl.AlterTableExpr getDefaultInstance() {
      return DEFAULT_INSTANCE;
    }

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

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

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

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

  }

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

    /**
     * <code>.greptime.v1.SetFulltext fulltext = 1;</code>
     * @return Whether the fulltext field is set.
     */
    boolean hasFulltext();
    /**
     * <code>.greptime.v1.SetFulltext fulltext = 1;</code>
     * @return The fulltext.
     */
    io.greptime.v1.Ddl.SetFulltext getFulltext();
    /**
     * <code>.greptime.v1.SetFulltext fulltext = 1;</code>
     */
    io.greptime.v1.Ddl.SetFulltextOrBuilder getFulltextOrBuilder();

    /**
     * <code>.greptime.v1.SetInverted inverted = 2;</code>
     * @return Whether the inverted field is set.
     */
    boolean hasInverted();
    /**
     * <code>.greptime.v1.SetInverted inverted = 2;</code>
     * @return The inverted.
     */
    io.greptime.v1.Ddl.SetInverted getInverted();
    /**
     * <code>.greptime.v1.SetInverted inverted = 2;</code>
     */
    io.greptime.v1.Ddl.SetInvertedOrBuilder getInvertedOrBuilder();

    /**
     * <code>.greptime.v1.SetSkipping skipping = 3;</code>
     * @return Whether the skipping field is set.
     */
    boolean hasSkipping();
    /**
     * <code>.greptime.v1.SetSkipping skipping = 3;</code>
     * @return The skipping.
     */
    io.greptime.v1.Ddl.SetSkipping getSkipping();
    /**
     * <code>.greptime.v1.SetSkipping skipping = 3;</code>
     */
    io.greptime.v1.Ddl.SetSkippingOrBuilder getSkippingOrBuilder();

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

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

    @java.lang.Override
    public final com.google.protobuf.UnknownFieldSet
    getUnknownFields() {
      return this.unknownFields;
    }
    private SetIndex(
        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.Ddl.SetFulltext.Builder subBuilder = null;
              if (optionsCase_ == 1) {
                subBuilder = ((io.greptime.v1.Ddl.SetFulltext) options_).toBuilder();
              }
              options_ =
                  input.readMessage(io.greptime.v1.Ddl.SetFulltext.parser(), extensionRegistry);
              if (subBuilder != null) {
                subBuilder.mergeFrom((io.greptime.v1.Ddl.SetFulltext) options_);
                options_ = subBuilder.buildPartial();
              }
              optionsCase_ = 1;
              break;
            }
            case 18: {
              io.greptime.v1.Ddl.SetInverted.Builder subBuilder = null;
              if (optionsCase_ == 2) {
                subBuilder = ((io.greptime.v1.Ddl.SetInverted) options_).toBuilder();
              }
              options_ =
                  input.readMessage(io.greptime.v1.Ddl.SetInverted.parser(), extensionRegistry);
              if (subBuilder != null) {
                subBuilder.mergeFrom((io.greptime.v1.Ddl.SetInverted) options_);
                options_ = subBuilder.buildPartial();
              }
              optionsCase_ = 2;
              break;
            }
            case 26: {
              io.greptime.v1.Ddl.SetSkipping.Builder subBuilder = null;
              if (optionsCase_ == 3) {
                subBuilder = ((io.greptime.v1.Ddl.SetSkipping) options_).toBuilder();
              }
              options_ =
                  input.readMessage(io.greptime.v1.Ddl.SetSkipping.parser(), extensionRegistry);
              if (subBuilder != null) {
                subBuilder.mergeFrom((io.greptime.v1.Ddl.SetSkipping) options_);
                options_ = subBuilder.buildPartial();
              }
              optionsCase_ = 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.Ddl.internal_static_greptime_v1_SetIndex_descriptor;
    }

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

    private int optionsCase_ = 0;
    private java.lang.Object options_;
    public enum OptionsCase
        implements com.google.protobuf.Internal.EnumLite,
            com.google.protobuf.AbstractMessage.InternalOneOfEnum {
      FULLTEXT(1),
      INVERTED(2),
      SKIPPING(3),
      OPTIONS_NOT_SET(0);
      private final int value;
      private OptionsCase(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 OptionsCase valueOf(int value) {
        return forNumber(value);
      }

      public static OptionsCase forNumber(int value) {
        switch (value) {
          case 1: return FULLTEXT;
          case 2: return INVERTED;
          case 3: return SKIPPING;
          case 0: return OPTIONS_NOT_SET;
          default: return null;
        }
      }
      public int getNumber() {
        return this.value;
      }
    };

    public OptionsCase
    getOptionsCase() {
      return OptionsCase.forNumber(
          optionsCase_);
    }

    public static final int FULLTEXT_FIELD_NUMBER = 1;
    /**
     * <code>.greptime.v1.SetFulltext fulltext = 1;</code>
     * @return Whether the fulltext field is set.
     */
    @java.lang.Override
    public boolean hasFulltext() {
      return optionsCase_ == 1;
    }
    /**
     * <code>.greptime.v1.SetFulltext fulltext = 1;</code>
     * @return The fulltext.
     */
    @java.lang.Override
    public io.greptime.v1.Ddl.SetFulltext getFulltext() {
      if (optionsCase_ == 1) {
         return (io.greptime.v1.Ddl.SetFulltext) options_;
      }
      return io.greptime.v1.Ddl.SetFulltext.getDefaultInstance();
    }
    /**
     * <code>.greptime.v1.SetFulltext fulltext = 1;</code>
     */
    @java.lang.Override
    public io.greptime.v1.Ddl.SetFulltextOrBuilder getFulltextOrBuilder() {
      if (optionsCase_ == 1) {
         return (io.greptime.v1.Ddl.SetFulltext) options_;
      }
      return io.greptime.v1.Ddl.SetFulltext.getDefaultInstance();
    }

    public static final int INVERTED_FIELD_NUMBER = 2;
    /**
     * <code>.greptime.v1.SetInverted inverted = 2;</code>
     * @return Whether the inverted field is set.
     */
    @java.lang.Override
    public boolean hasInverted() {
      return optionsCase_ == 2;
    }
    /**
     * <code>.greptime.v1.SetInverted inverted = 2;</code>
     * @return The inverted.
     */
    @java.lang.Override
    public io.greptime.v1.Ddl.SetInverted getInverted() {
      if (optionsCase_ == 2) {
         return (io.greptime.v1.Ddl.SetInverted) options_;
      }
      return io.greptime.v1.Ddl.SetInverted.getDefaultInstance();
    }
    /**
     * <code>.greptime.v1.SetInverted inverted = 2;</code>
     */
    @java.lang.Override
    public io.greptime.v1.Ddl.SetInvertedOrBuilder getInvertedOrBuilder() {
      if (optionsCase_ == 2) {
         return (io.greptime.v1.Ddl.SetInverted) options_;
      }
      return io.greptime.v1.Ddl.SetInverted.getDefaultInstance();
    }

    public static final int SKIPPING_FIELD_NUMBER = 3;
    /**
     * <code>.greptime.v1.SetSkipping skipping = 3;</code>
     * @return Whether the skipping field is set.
     */
    @java.lang.Override
    public boolean hasSkipping() {
      return optionsCase_ == 3;
    }
    /**
     * <code>.greptime.v1.SetSkipping skipping = 3;</code>
     * @return The skipping.
     */
    @java.lang.Override
    public io.greptime.v1.Ddl.SetSkipping getSkipping() {
      if (optionsCase_ == 3) {
         return (io.greptime.v1.Ddl.SetSkipping) options_;
      }
      return io.greptime.v1.Ddl.SetSkipping.getDefaultInstance();
    }
    /**
     * <code>.greptime.v1.SetSkipping skipping = 3;</code>
     */
    @java.lang.Override
    public io.greptime.v1.Ddl.SetSkippingOrBuilder getSkippingOrBuilder() {
      if (optionsCase_ == 3) {
         return (io.greptime.v1.Ddl.SetSkipping) options_;
      }
      return io.greptime.v1.Ddl.SetSkipping.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 (optionsCase_ == 1) {
        output.writeMessage(1, (io.greptime.v1.Ddl.SetFulltext) options_);
      }
      if (optionsCase_ == 2) {
        output.writeMessage(2, (io.greptime.v1.Ddl.SetInverted) options_);
      }
      if (optionsCase_ == 3) {
        output.writeMessage(3, (io.greptime.v1.Ddl.SetSkipping) options_);
      }
      unknownFields.writeTo(output);
    }

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

      size = 0;
      if (optionsCase_ == 1) {
        size += com.google.protobuf.CodedOutputStream
          .computeMessageSize(1, (io.greptime.v1.Ddl.SetFulltext) options_);
      }
      if (optionsCase_ == 2) {
        size += com.google.protobuf.CodedOutputStream
          .computeMessageSize(2, (io.greptime.v1.Ddl.SetInverted) options_);
      }
      if (optionsCase_ == 3) {
        size += com.google.protobuf.CodedOutputStream
          .computeMessageSize(3, (io.greptime.v1.Ddl.SetSkipping) 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.Ddl.SetIndex)) {
        return super.equals(obj);
      }
      io.greptime.v1.Ddl.SetIndex other = (io.greptime.v1.Ddl.SetIndex) obj;

      if (!getOptionsCase().equals(other.getOptionsCase())) return false;
      switch (optionsCase_) {
        case 1:
          if (!getFulltext()
              .equals(other.getFulltext())) return false;
          break;
        case 2:
          if (!getInverted()
              .equals(other.getInverted())) return false;
          break;
        case 3:
          if (!getSkipping()
              .equals(other.getSkipping())) 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 (optionsCase_) {
        case 1:
          hash = (37 * hash) + FULLTEXT_FIELD_NUMBER;
          hash = (53 * hash) + getFulltext().hashCode();
          break;
        case 2:
          hash = (37 * hash) + INVERTED_FIELD_NUMBER;
          hash = (53 * hash) + getInverted().hashCode();
          break;
        case 3:
          hash = (37 * hash) + SKIPPING_FIELD_NUMBER;
          hash = (53 * hash) + getSkipping().hashCode();
          break;
        case 0:
        default:
      }
      hash = (29 * hash) + unknownFields.hashCode();
      memoizedHashCode = hash;
      return hash;
    }

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

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

      // Construct using io.greptime.v1.Ddl.SetIndex.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();
        optionsCase_ = 0;
        options_ = null;
        return this;
      }

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

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

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

      @java.lang.Override
      public io.greptime.v1.Ddl.SetIndex buildPartial() {
        io.greptime.v1.Ddl.SetIndex result = new io.greptime.v1.Ddl.SetIndex(this);
        if (optionsCase_ == 1) {
          if (fulltextBuilder_ == null) {
            result.options_ = options_;
          } else {
            result.options_ = fulltextBuilder_.build();
          }
        }
        if (optionsCase_ == 2) {
          if (invertedBuilder_ == null) {
            result.options_ = options_;
          } else {
            result.options_ = invertedBuilder_.build();
          }
        }
        if (optionsCase_ == 3) {
          if (skippingBuilder_ == null) {
            result.options_ = options_;
          } else {
            result.options_ = skippingBuilder_.build();
          }
        }
        result.optionsCase_ = optionsCase_;
        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.Ddl.SetIndex) {
          return mergeFrom((io.greptime.v1.Ddl.SetIndex)other);
        } else {
          super.mergeFrom(other);
          return this;
        }
      }

      public Builder mergeFrom(io.greptime.v1.Ddl.SetIndex other) {
        if (other == io.greptime.v1.Ddl.SetIndex.getDefaultInstance()) return this;
        switch (other.getOptionsCase()) {
          case FULLTEXT: {
            mergeFulltext(other.getFulltext());
            break;
          }
          case INVERTED: {
            mergeInverted(other.getInverted());
            break;
          }
          case SKIPPING: {
            mergeSkipping(other.getSkipping());
            break;
          }
          case OPTIONS_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.Ddl.SetIndex parsedMessage = null;
        try {
          parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry);
        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
          parsedMessage = (io.greptime.v1.Ddl.SetIndex) e.getUnfinishedMessage();
          throw e.unwrapIOException();
        } finally {
          if (parsedMessage != null) {
            mergeFrom(parsedMessage);
          }
        }
        return this;
      }
      private int optionsCase_ = 0;
      private java.lang.Object options_;
      public OptionsCase
          getOptionsCase() {
        return OptionsCase.forNumber(
            optionsCase_);
      }

      public Builder clearOptions() {
        optionsCase_ = 0;
        options_ = null;
        onChanged();
        return this;
      }


      private com.google.protobuf.SingleFieldBuilderV3<
          io.greptime.v1.Ddl.SetFulltext, io.greptime.v1.Ddl.SetFulltext.Builder, io.greptime.v1.Ddl.SetFulltextOrBuilder> fulltextBuilder_;
      /**
       * <code>.greptime.v1.SetFulltext fulltext = 1;</code>
       * @return Whether the fulltext field is set.
       */
      @java.lang.Override
      public boolean hasFulltext() {
        return optionsCase_ == 1;
      }
      /**
       * <code>.greptime.v1.SetFulltext fulltext = 1;</code>
       * @return The fulltext.
       */
      @java.lang.Override
      public io.greptime.v1.Ddl.SetFulltext getFulltext() {
        if (fulltextBuilder_ == null) {
          if (optionsCase_ == 1) {
            return (io.greptime.v1.Ddl.SetFulltext) options_;
          }
          return io.greptime.v1.Ddl.SetFulltext.getDefaultInstance();
        } else {
          if (optionsCase_ == 1) {
            return fulltextBuilder_.getMessage();
          }
          return io.greptime.v1.Ddl.SetFulltext.getDefaultInstance();
        }
      }
      /**
       * <code>.greptime.v1.SetFulltext fulltext = 1;</code>
       */
      public Builder setFulltext(io.greptime.v1.Ddl.SetFulltext value) {
        if (fulltextBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          options_ = value;
          onChanged();
        } else {
          fulltextBuilder_.setMessage(value);
        }
        optionsCase_ = 1;
        return this;
      }
      /**
       * <code>.greptime.v1.SetFulltext fulltext = 1;</code>
       */
      public Builder setFulltext(
          io.greptime.v1.Ddl.SetFulltext.Builder builderForValue) {
        if (fulltextBuilder_ == null) {
          options_ = builderForValue.build();
          onChanged();
        } else {
          fulltextBuilder_.setMessage(builderForValue.build());
        }
        optionsCase_ = 1;
        return this;
      }
      /**
       * <code>.greptime.v1.SetFulltext fulltext = 1;</code>
       */
      public Builder mergeFulltext(io.greptime.v1.Ddl.SetFulltext value) {
        if (fulltextBuilder_ == null) {
          if (optionsCase_ == 1 &&
              options_ != io.greptime.v1.Ddl.SetFulltext.getDefaultInstance()) {
            options_ = io.greptime.v1.Ddl.SetFulltext.newBuilder((io.greptime.v1.Ddl.SetFulltext) options_)
                .mergeFrom(value).buildPartial();
          } else {
            options_ = value;
          }
          onChanged();
        } else {
          if (optionsCase_ == 1) {
            fulltextBuilder_.mergeFrom(value);
          } else {
            fulltextBuilder_.setMessage(value);
          }
        }
        optionsCase_ = 1;
        return this;
      }
      /**
       * <code>.greptime.v1.SetFulltext fulltext = 1;</code>
       */
      public Builder clearFulltext() {
        if (fulltextBuilder_ == null) {
          if (optionsCase_ == 1) {
            optionsCase_ = 0;
            options_ = null;
            onChanged();
          }
        } else {
          if (optionsCase_ == 1) {
            optionsCase_ = 0;
            options_ = null;
          }
          fulltextBuilder_.clear();
        }
        return this;
      }
      /**
       * <code>.greptime.v1.SetFulltext fulltext = 1;</code>
       */
      public io.greptime.v1.Ddl.SetFulltext.Builder getFulltextBuilder() {
        return getFulltextFieldBuilder().getBuilder();
      }
      /**
       * <code>.greptime.v1.SetFulltext fulltext = 1;</code>
       */
      @java.lang.Override
      public io.greptime.v1.Ddl.SetFulltextOrBuilder getFulltextOrBuilder() {
        if ((optionsCase_ == 1) && (fulltextBuilder_ != null)) {
          return fulltextBuilder_.getMessageOrBuilder();
        } else {
          if (optionsCase_ == 1) {
            return (io.greptime.v1.Ddl.SetFulltext) options_;
          }
          return io.greptime.v1.Ddl.SetFulltext.getDefaultInstance();
        }
      }
      /**
       * <code>.greptime.v1.SetFulltext fulltext = 1;</code>
       */
      private com.google.protobuf.SingleFieldBuilderV3<
          io.greptime.v1.Ddl.SetFulltext, io.greptime.v1.Ddl.SetFulltext.Builder, io.greptime.v1.Ddl.SetFulltextOrBuilder> 
          getFulltextFieldBuilder() {
        if (fulltextBuilder_ == null) {
          if (!(optionsCase_ == 1)) {
            options_ = io.greptime.v1.Ddl.SetFulltext.getDefaultInstance();
          }
          fulltextBuilder_ = new com.google.protobuf.SingleFieldBuilderV3<
              io.greptime.v1.Ddl.SetFulltext, io.greptime.v1.Ddl.SetFulltext.Builder, io.greptime.v1.Ddl.SetFulltextOrBuilder>(
                  (io.greptime.v1.Ddl.SetFulltext) options_,
                  getParentForChildren(),
                  isClean());
          options_ = null;
        }
        optionsCase_ = 1;
        onChanged();;
        return fulltextBuilder_;
      }

      private com.google.protobuf.SingleFieldBuilderV3<
          io.greptime.v1.Ddl.SetInverted, io.greptime.v1.Ddl.SetInverted.Builder, io.greptime.v1.Ddl.SetInvertedOrBuilder> invertedBuilder_;
      /**
       * <code>.greptime.v1.SetInverted inverted = 2;</code>
       * @return Whether the inverted field is set.
       */
      @java.lang.Override
      public boolean hasInverted() {
        return optionsCase_ == 2;
      }
      /**
       * <code>.greptime.v1.SetInverted inverted = 2;</code>
       * @return The inverted.
       */
      @java.lang.Override
      public io.greptime.v1.Ddl.SetInverted getInverted() {
        if (invertedBuilder_ == null) {
          if (optionsCase_ == 2) {
            return (io.greptime.v1.Ddl.SetInverted) options_;
          }
          return io.greptime.v1.Ddl.SetInverted.getDefaultInstance();
        } else {
          if (optionsCase_ == 2) {
            return invertedBuilder_.getMessage();
          }
          return io.greptime.v1.Ddl.SetInverted.getDefaultInstance();
        }
      }
      /**
       * <code>.greptime.v1.SetInverted inverted = 2;</code>
       */
      public Builder setInverted(io.greptime.v1.Ddl.SetInverted value) {
        if (invertedBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          options_ = value;
          onChanged();
        } else {
          invertedBuilder_.setMessage(value);
        }
        optionsCase_ = 2;
        return this;
      }
      /**
       * <code>.greptime.v1.SetInverted inverted = 2;</code>
       */
      public Builder setInverted(
          io.greptime.v1.Ddl.SetInverted.Builder builderForValue) {
        if (invertedBuilder_ == null) {
          options_ = builderForValue.build();
          onChanged();
        } else {
          invertedBuilder_.setMessage(builderForValue.build());
        }
        optionsCase_ = 2;
        return this;
      }
      /**
       * <code>.greptime.v1.SetInverted inverted = 2;</code>
       */
      public Builder mergeInverted(io.greptime.v1.Ddl.SetInverted value) {
        if (invertedBuilder_ == null) {
          if (optionsCase_ == 2 &&
              options_ != io.greptime.v1.Ddl.SetInverted.getDefaultInstance()) {
            options_ = io.greptime.v1.Ddl.SetInverted.newBuilder((io.greptime.v1.Ddl.SetInverted) options_)
                .mergeFrom(value).buildPartial();
          } else {
            options_ = value;
          }
          onChanged();
        } else {
          if (optionsCase_ == 2) {
            invertedBuilder_.mergeFrom(value);
          } else {
            invertedBuilder_.setMessage(value);
          }
        }
        optionsCase_ = 2;
        return this;
      }
      /**
       * <code>.greptime.v1.SetInverted inverted = 2;</code>
       */
      public Builder clearInverted() {
        if (invertedBuilder_ == null) {
          if (optionsCase_ == 2) {
            optionsCase_ = 0;
            options_ = null;
            onChanged();
          }
        } else {
          if (optionsCase_ == 2) {
            optionsCase_ = 0;
            options_ = null;
          }
          invertedBuilder_.clear();
        }
        return this;
      }
      /**
       * <code>.greptime.v1.SetInverted inverted = 2;</code>
       */
      public io.greptime.v1.Ddl.SetInverted.Builder getInvertedBuilder() {
        return getInvertedFieldBuilder().getBuilder();
      }
      /**
       * <code>.greptime.v1.SetInverted inverted = 2;</code>
       */
      @java.lang.Override
      public io.greptime.v1.Ddl.SetInvertedOrBuilder getInvertedOrBuilder() {
        if ((optionsCase_ == 2) && (invertedBuilder_ != null)) {
          return invertedBuilder_.getMessageOrBuilder();
        } else {
          if (optionsCase_ == 2) {
            return (io.greptime.v1.Ddl.SetInverted) options_;
          }
          return io.greptime.v1.Ddl.SetInverted.getDefaultInstance();
        }
      }
      /**
       * <code>.greptime.v1.SetInverted inverted = 2;</code>
       */
      private com.google.protobuf.SingleFieldBuilderV3<
          io.greptime.v1.Ddl.SetInverted, io.greptime.v1.Ddl.SetInverted.Builder, io.greptime.v1.Ddl.SetInvertedOrBuilder> 
          getInvertedFieldBuilder() {
        if (invertedBuilder_ == null) {
          if (!(optionsCase_ == 2)) {
            options_ = io.greptime.v1.Ddl.SetInverted.getDefaultInstance();
          }
          invertedBuilder_ = new com.google.protobuf.SingleFieldBuilderV3<
              io.greptime.v1.Ddl.SetInverted, io.greptime.v1.Ddl.SetInverted.Builder, io.greptime.v1.Ddl.SetInvertedOrBuilder>(
                  (io.greptime.v1.Ddl.SetInverted) options_,
                  getParentForChildren(),
                  isClean());
          options_ = null;
        }
        optionsCase_ = 2;
        onChanged();;
        return invertedBuilder_;
      }

      private com.google.protobuf.SingleFieldBuilderV3<
          io.greptime.v1.Ddl.SetSkipping, io.greptime.v1.Ddl.SetSkipping.Builder, io.greptime.v1.Ddl.SetSkippingOrBuilder> skippingBuilder_;
      /**
       * <code>.greptime.v1.SetSkipping skipping = 3;</code>
       * @return Whether the skipping field is set.
       */
      @java.lang.Override
      public boolean hasSkipping() {
        return optionsCase_ == 3;
      }
      /**
       * <code>.greptime.v1.SetSkipping skipping = 3;</code>
       * @return The skipping.
       */
      @java.lang.Override
      public io.greptime.v1.Ddl.SetSkipping getSkipping() {
        if (skippingBuilder_ == null) {
          if (optionsCase_ == 3) {
            return (io.greptime.v1.Ddl.SetSkipping) options_;
          }
          return io.greptime.v1.Ddl.SetSkipping.getDefaultInstance();
        } else {
          if (optionsCase_ == 3) {
            return skippingBuilder_.getMessage();
          }
          return io.greptime.v1.Ddl.SetSkipping.getDefaultInstance();
        }
      }
      /**
       * <code>.greptime.v1.SetSkipping skipping = 3;</code>
       */
      public Builder setSkipping(io.greptime.v1.Ddl.SetSkipping value) {
        if (skippingBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          options_ = value;
          onChanged();
        } else {
          skippingBuilder_.setMessage(value);
        }
        optionsCase_ = 3;
        return this;
      }
      /**
       * <code>.greptime.v1.SetSkipping skipping = 3;</code>
       */
      public Builder setSkipping(
          io.greptime.v1.Ddl.SetSkipping.Builder builderForValue) {
        if (skippingBuilder_ == null) {
          options_ = builderForValue.build();
          onChanged();
        } else {
          skippingBuilder_.setMessage(builderForValue.build());
        }
        optionsCase_ = 3;
        return this;
      }
      /**
       * <code>.greptime.v1.SetSkipping skipping = 3;</code>
       */
      public Builder mergeSkipping(io.greptime.v1.Ddl.SetSkipping value) {
        if (skippingBuilder_ == null) {
          if (optionsCase_ == 3 &&
              options_ != io.greptime.v1.Ddl.SetSkipping.getDefaultInstance()) {
            options_ = io.greptime.v1.Ddl.SetSkipping.newBuilder((io.greptime.v1.Ddl.SetSkipping) options_)
                .mergeFrom(value).buildPartial();
          } else {
            options_ = value;
          }
          onChanged();
        } else {
          if (optionsCase_ == 3) {
            skippingBuilder_.mergeFrom(value);
          } else {
            skippingBuilder_.setMessage(value);
          }
        }
        optionsCase_ = 3;
        return this;
      }
      /**
       * <code>.greptime.v1.SetSkipping skipping = 3;</code>
       */
      public Builder clearSkipping() {
        if (skippingBuilder_ == null) {
          if (optionsCase_ == 3) {
            optionsCase_ = 0;
            options_ = null;
            onChanged();
          }
        } else {
          if (optionsCase_ == 3) {
            optionsCase_ = 0;
            options_ = null;
          }
          skippingBuilder_.clear();
        }
        return this;
      }
      /**
       * <code>.greptime.v1.SetSkipping skipping = 3;</code>
       */
      public io.greptime.v1.Ddl.SetSkipping.Builder getSkippingBuilder() {
        return getSkippingFieldBuilder().getBuilder();
      }
      /**
       * <code>.greptime.v1.SetSkipping skipping = 3;</code>
       */
      @java.lang.Override
      public io.greptime.v1.Ddl.SetSkippingOrBuilder getSkippingOrBuilder() {
        if ((optionsCase_ == 3) && (skippingBuilder_ != null)) {
          return skippingBuilder_.getMessageOrBuilder();
        } else {
          if (optionsCase_ == 3) {
            return (io.greptime.v1.Ddl.SetSkipping) options_;
          }
          return io.greptime.v1.Ddl.SetSkipping.getDefaultInstance();
        }
      }
      /**
       * <code>.greptime.v1.SetSkipping skipping = 3;</code>
       */
      private com.google.protobuf.SingleFieldBuilderV3<
          io.greptime.v1.Ddl.SetSkipping, io.greptime.v1.Ddl.SetSkipping.Builder, io.greptime.v1.Ddl.SetSkippingOrBuilder> 
          getSkippingFieldBuilder() {
        if (skippingBuilder_ == null) {
          if (!(optionsCase_ == 3)) {
            options_ = io.greptime.v1.Ddl.SetSkipping.getDefaultInstance();
          }
          skippingBuilder_ = new com.google.protobuf.SingleFieldBuilderV3<
              io.greptime.v1.Ddl.SetSkipping, io.greptime.v1.Ddl.SetSkipping.Builder, io.greptime.v1.Ddl.SetSkippingOrBuilder>(
                  (io.greptime.v1.Ddl.SetSkipping) options_,
                  getParentForChildren(),
                  isClean());
          options_ = null;
        }
        optionsCase_ = 3;
        onChanged();;
        return skippingBuilder_;
      }
      @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.SetIndex)
    }

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

    public static io.greptime.v1.Ddl.SetIndex getDefaultInstance() {
      return DEFAULT_INSTANCE;
    }

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

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

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

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

  }

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

    /**
     * <code>.greptime.v1.UnsetFulltext fulltext = 1;</code>
     * @return Whether the fulltext field is set.
     */
    boolean hasFulltext();
    /**
     * <code>.greptime.v1.UnsetFulltext fulltext = 1;</code>
     * @return The fulltext.
     */
    io.greptime.v1.Ddl.UnsetFulltext getFulltext();
    /**
     * <code>.greptime.v1.UnsetFulltext fulltext = 1;</code>
     */
    io.greptime.v1.Ddl.UnsetFulltextOrBuilder getFulltextOrBuilder();

    /**
     * <code>.greptime.v1.UnsetInverted inverted = 2;</code>
     * @return Whether the inverted field is set.
     */
    boolean hasInverted();
    /**
     * <code>.greptime.v1.UnsetInverted inverted = 2;</code>
     * @return The inverted.
     */
    io.greptime.v1.Ddl.UnsetInverted getInverted();
    /**
     * <code>.greptime.v1.UnsetInverted inverted = 2;</code>
     */
    io.greptime.v1.Ddl.UnsetInvertedOrBuilder getInvertedOrBuilder();

    /**
     * <code>.greptime.v1.UnsetSkipping skipping = 3;</code>
     * @return Whether the skipping field is set.
     */
    boolean hasSkipping();
    /**
     * <code>.greptime.v1.UnsetSkipping skipping = 3;</code>
     * @return The skipping.
     */
    io.greptime.v1.Ddl.UnsetSkipping getSkipping();
    /**
     * <code>.greptime.v1.UnsetSkipping skipping = 3;</code>
     */
    io.greptime.v1.Ddl.UnsetSkippingOrBuilder getSkippingOrBuilder();

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

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

    @java.lang.Override
    public final com.google.protobuf.UnknownFieldSet
    getUnknownFields() {
      return this.unknownFields;
    }
    private UnsetIndex(
        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.Ddl.UnsetFulltext.Builder subBuilder = null;
              if (optionsCase_ == 1) {
                subBuilder = ((io.greptime.v1.Ddl.UnsetFulltext) options_).toBuilder();
              }
              options_ =
                  input.readMessage(io.greptime.v1.Ddl.UnsetFulltext.parser(), extensionRegistry);
              if (subBuilder != null) {
                subBuilder.mergeFrom((io.greptime.v1.Ddl.UnsetFulltext) options_);
                options_ = subBuilder.buildPartial();
              }
              optionsCase_ = 1;
              break;
            }
            case 18: {
              io.greptime.v1.Ddl.UnsetInverted.Builder subBuilder = null;
              if (optionsCase_ == 2) {
                subBuilder = ((io.greptime.v1.Ddl.UnsetInverted) options_).toBuilder();
              }
              options_ =
                  input.readMessage(io.greptime.v1.Ddl.UnsetInverted.parser(), extensionRegistry);
              if (subBuilder != null) {
                subBuilder.mergeFrom((io.greptime.v1.Ddl.UnsetInverted) options_);
                options_ = subBuilder.buildPartial();
              }
              optionsCase_ = 2;
              break;
            }
            case 26: {
              io.greptime.v1.Ddl.UnsetSkipping.Builder subBuilder = null;
              if (optionsCase_ == 3) {
                subBuilder = ((io.greptime.v1.Ddl.UnsetSkipping) options_).toBuilder();
              }
              options_ =
                  input.readMessage(io.greptime.v1.Ddl.UnsetSkipping.parser(), extensionRegistry);
              if (subBuilder != null) {
                subBuilder.mergeFrom((io.greptime.v1.Ddl.UnsetSkipping) options_);
                options_ = subBuilder.buildPartial();
              }
              optionsCase_ = 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.Ddl.internal_static_greptime_v1_UnsetIndex_descriptor;
    }

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

    private int optionsCase_ = 0;
    private java.lang.Object options_;
    public enum OptionsCase
        implements com.google.protobuf.Internal.EnumLite,
            com.google.protobuf.AbstractMessage.InternalOneOfEnum {
      FULLTEXT(1),
      INVERTED(2),
      SKIPPING(3),
      OPTIONS_NOT_SET(0);
      private final int value;
      private OptionsCase(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 OptionsCase valueOf(int value) {
        return forNumber(value);
      }

      public static OptionsCase forNumber(int value) {
        switch (value) {
          case 1: return FULLTEXT;
          case 2: return INVERTED;
          case 3: return SKIPPING;
          case 0: return OPTIONS_NOT_SET;
          default: return null;
        }
      }
      public int getNumber() {
        return this.value;
      }
    };

    public OptionsCase
    getOptionsCase() {
      return OptionsCase.forNumber(
          optionsCase_);
    }

    public static final int FULLTEXT_FIELD_NUMBER = 1;
    /**
     * <code>.greptime.v1.UnsetFulltext fulltext = 1;</code>
     * @return Whether the fulltext field is set.
     */
    @java.lang.Override
    public boolean hasFulltext() {
      return optionsCase_ == 1;
    }
    /**
     * <code>.greptime.v1.UnsetFulltext fulltext = 1;</code>
     * @return The fulltext.
     */
    @java.lang.Override
    public io.greptime.v1.Ddl.UnsetFulltext getFulltext() {
      if (optionsCase_ == 1) {
         return (io.greptime.v1.Ddl.UnsetFulltext) options_;
      }
      return io.greptime.v1.Ddl.UnsetFulltext.getDefaultInstance();
    }
    /**
     * <code>.greptime.v1.UnsetFulltext fulltext = 1;</code>
     */
    @java.lang.Override
    public io.greptime.v1.Ddl.UnsetFulltextOrBuilder getFulltextOrBuilder() {
      if (optionsCase_ == 1) {
         return (io.greptime.v1.Ddl.UnsetFulltext) options_;
      }
      return io.greptime.v1.Ddl.UnsetFulltext.getDefaultInstance();
    }

    public static final int INVERTED_FIELD_NUMBER = 2;
    /**
     * <code>.greptime.v1.UnsetInverted inverted = 2;</code>
     * @return Whether the inverted field is set.
     */
    @java.lang.Override
    public boolean hasInverted() {
      return optionsCase_ == 2;
    }
    /**
     * <code>.greptime.v1.UnsetInverted inverted = 2;</code>
     * @return The inverted.
     */
    @java.lang.Override
    public io.greptime.v1.Ddl.UnsetInverted getInverted() {
      if (optionsCase_ == 2) {
         return (io.greptime.v1.Ddl.UnsetInverted) options_;
      }
      return io.greptime.v1.Ddl.UnsetInverted.getDefaultInstance();
    }
    /**
     * <code>.greptime.v1.UnsetInverted inverted = 2;</code>
     */
    @java.lang.Override
    public io.greptime.v1.Ddl.UnsetInvertedOrBuilder getInvertedOrBuilder() {
      if (optionsCase_ == 2) {
         return (io.greptime.v1.Ddl.UnsetInverted) options_;
      }
      return io.greptime.v1.Ddl.UnsetInverted.getDefaultInstance();
    }

    public static final int SKIPPING_FIELD_NUMBER = 3;
    /**
     * <code>.greptime.v1.UnsetSkipping skipping = 3;</code>
     * @return Whether the skipping field is set.
     */
    @java.lang.Override
    public boolean hasSkipping() {
      return optionsCase_ == 3;
    }
    /**
     * <code>.greptime.v1.UnsetSkipping skipping = 3;</code>
     * @return The skipping.
     */
    @java.lang.Override
    public io.greptime.v1.Ddl.UnsetSkipping getSkipping() {
      if (optionsCase_ == 3) {
         return (io.greptime.v1.Ddl.UnsetSkipping) options_;
      }
      return io.greptime.v1.Ddl.UnsetSkipping.getDefaultInstance();
    }
    /**
     * <code>.greptime.v1.UnsetSkipping skipping = 3;</code>
     */
    @java.lang.Override
    public io.greptime.v1.Ddl.UnsetSkippingOrBuilder getSkippingOrBuilder() {
      if (optionsCase_ == 3) {
         return (io.greptime.v1.Ddl.UnsetSkipping) options_;
      }
      return io.greptime.v1.Ddl.UnsetSkipping.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 (optionsCase_ == 1) {
        output.writeMessage(1, (io.greptime.v1.Ddl.UnsetFulltext) options_);
      }
      if (optionsCase_ == 2) {
        output.writeMessage(2, (io.greptime.v1.Ddl.UnsetInverted) options_);
      }
      if (optionsCase_ == 3) {
        output.writeMessage(3, (io.greptime.v1.Ddl.UnsetSkipping) options_);
      }
      unknownFields.writeTo(output);
    }

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

      size = 0;
      if (optionsCase_ == 1) {
        size += com.google.protobuf.CodedOutputStream
          .computeMessageSize(1, (io.greptime.v1.Ddl.UnsetFulltext) options_);
      }
      if (optionsCase_ == 2) {
        size += com.google.protobuf.CodedOutputStream
          .computeMessageSize(2, (io.greptime.v1.Ddl.UnsetInverted) options_);
      }
      if (optionsCase_ == 3) {
        size += com.google.protobuf.CodedOutputStream
          .computeMessageSize(3, (io.greptime.v1.Ddl.UnsetSkipping) 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.Ddl.UnsetIndex)) {
        return super.equals(obj);
      }
      io.greptime.v1.Ddl.UnsetIndex other = (io.greptime.v1.Ddl.UnsetIndex) obj;

      if (!getOptionsCase().equals(other.getOptionsCase())) return false;
      switch (optionsCase_) {
        case 1:
          if (!getFulltext()
              .equals(other.getFulltext())) return false;
          break;
        case 2:
          if (!getInverted()
              .equals(other.getInverted())) return false;
          break;
        case 3:
          if (!getSkipping()
              .equals(other.getSkipping())) 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 (optionsCase_) {
        case 1:
          hash = (37 * hash) + FULLTEXT_FIELD_NUMBER;
          hash = (53 * hash) + getFulltext().hashCode();
          break;
        case 2:
          hash = (37 * hash) + INVERTED_FIELD_NUMBER;
          hash = (53 * hash) + getInverted().hashCode();
          break;
        case 3:
          hash = (37 * hash) + SKIPPING_FIELD_NUMBER;
          hash = (53 * hash) + getSkipping().hashCode();
          break;
        case 0:
        default:
      }
      hash = (29 * hash) + unknownFields.hashCode();
      memoizedHashCode = hash;
      return hash;
    }

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

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

      // Construct using io.greptime.v1.Ddl.UnsetIndex.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();
        optionsCase_ = 0;
        options_ = null;
        return this;
      }

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

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

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

      @java.lang.Override
      public io.greptime.v1.Ddl.UnsetIndex buildPartial() {
        io.greptime.v1.Ddl.UnsetIndex result = new io.greptime.v1.Ddl.UnsetIndex(this);
        if (optionsCase_ == 1) {
          if (fulltextBuilder_ == null) {
            result.options_ = options_;
          } else {
            result.options_ = fulltextBuilder_.build();
          }
        }
        if (optionsCase_ == 2) {
          if (invertedBuilder_ == null) {
            result.options_ = options_;
          } else {
            result.options_ = invertedBuilder_.build();
          }
        }
        if (optionsCase_ == 3) {
          if (skippingBuilder_ == null) {
            result.options_ = options_;
          } else {
            result.options_ = skippingBuilder_.build();
          }
        }
        result.optionsCase_ = optionsCase_;
        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.Ddl.UnsetIndex) {
          return mergeFrom((io.greptime.v1.Ddl.UnsetIndex)other);
        } else {
          super.mergeFrom(other);
          return this;
        }
      }

      public Builder mergeFrom(io.greptime.v1.Ddl.UnsetIndex other) {
        if (other == io.greptime.v1.Ddl.UnsetIndex.getDefaultInstance()) return this;
        switch (other.getOptionsCase()) {
          case FULLTEXT: {
            mergeFulltext(other.getFulltext());
            break;
          }
          case INVERTED: {
            mergeInverted(other.getInverted());
            break;
          }
          case SKIPPING: {
            mergeSkipping(other.getSkipping());
            break;
          }
          case OPTIONS_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.Ddl.UnsetIndex parsedMessage = null;
        try {
          parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry);
        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
          parsedMessage = (io.greptime.v1.Ddl.UnsetIndex) e.getUnfinishedMessage();
          throw e.unwrapIOException();
        } finally {
          if (parsedMessage != null) {
            mergeFrom(parsedMessage);
          }
        }
        return this;
      }
      private int optionsCase_ = 0;
      private java.lang.Object options_;
      public OptionsCase
          getOptionsCase() {
        return OptionsCase.forNumber(
            optionsCase_);
      }

      public Builder clearOptions() {
        optionsCase_ = 0;
        options_ = null;
        onChanged();
        return this;
      }


      private com.google.protobuf.SingleFieldBuilderV3<
          io.greptime.v1.Ddl.UnsetFulltext, io.greptime.v1.Ddl.UnsetFulltext.Builder, io.greptime.v1.Ddl.UnsetFulltextOrBuilder> fulltextBuilder_;
      /**
       * <code>.greptime.v1.UnsetFulltext fulltext = 1;</code>
       * @return Whether the fulltext field is set.
       */
      @java.lang.Override
      public boolean hasFulltext() {
        return optionsCase_ == 1;
      }
      /**
       * <code>.greptime.v1.UnsetFulltext fulltext = 1;</code>
       * @return The fulltext.
       */
      @java.lang.Override
      public io.greptime.v1.Ddl.UnsetFulltext getFulltext() {
        if (fulltextBuilder_ == null) {
          if (optionsCase_ == 1) {
            return (io.greptime.v1.Ddl.UnsetFulltext) options_;
          }
          return io.greptime.v1.Ddl.UnsetFulltext.getDefaultInstance();
        } else {
          if (optionsCase_ == 1) {
            return fulltextBuilder_.getMessage();
          }
          return io.greptime.v1.Ddl.UnsetFulltext.getDefaultInstance();
        }
      }
      /**
       * <code>.greptime.v1.UnsetFulltext fulltext = 1;</code>
       */
      public Builder setFulltext(io.greptime.v1.Ddl.UnsetFulltext value) {
        if (fulltextBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          options_ = value;
          onChanged();
        } else {
          fulltextBuilder_.setMessage(value);
        }
        optionsCase_ = 1;
        return this;
      }
      /**
       * <code>.greptime.v1.UnsetFulltext fulltext = 1;</code>
       */
      public Builder setFulltext(
          io.greptime.v1.Ddl.UnsetFulltext.Builder builderForValue) {
        if (fulltextBuilder_ == null) {
          options_ = builderForValue.build();
          onChanged();
        } else {
          fulltextBuilder_.setMessage(builderForValue.build());
        }
        optionsCase_ = 1;
        return this;
      }
      /**
       * <code>.greptime.v1.UnsetFulltext fulltext = 1;</code>
       */
      public Builder mergeFulltext(io.greptime.v1.Ddl.UnsetFulltext value) {
        if (fulltextBuilder_ == null) {
          if (optionsCase_ == 1 &&
              options_ != io.greptime.v1.Ddl.UnsetFulltext.getDefaultInstance()) {
            options_ = io.greptime.v1.Ddl.UnsetFulltext.newBuilder((io.greptime.v1.Ddl.UnsetFulltext) options_)
                .mergeFrom(value).buildPartial();
          } else {
            options_ = value;
          }
          onChanged();
        } else {
          if (optionsCase_ == 1) {
            fulltextBuilder_.mergeFrom(value);
          } else {
            fulltextBuilder_.setMessage(value);
          }
        }
        optionsCase_ = 1;
        return this;
      }
      /**
       * <code>.greptime.v1.UnsetFulltext fulltext = 1;</code>
       */
      public Builder clearFulltext() {
        if (fulltextBuilder_ == null) {
          if (optionsCase_ == 1) {
            optionsCase_ = 0;
            options_ = null;
            onChanged();
          }
        } else {
          if (optionsCase_ == 1) {
            optionsCase_ = 0;
            options_ = null;
          }
          fulltextBuilder_.clear();
        }
        return this;
      }
      /**
       * <code>.greptime.v1.UnsetFulltext fulltext = 1;</code>
       */
      public io.greptime.v1.Ddl.UnsetFulltext.Builder getFulltextBuilder() {
        return getFulltextFieldBuilder().getBuilder();
      }
      /**
       * <code>.greptime.v1.UnsetFulltext fulltext = 1;</code>
       */
      @java.lang.Override
      public io.greptime.v1.Ddl.UnsetFulltextOrBuilder getFulltextOrBuilder() {
        if ((optionsCase_ == 1) && (fulltextBuilder_ != null)) {
          return fulltextBuilder_.getMessageOrBuilder();
        } else {
          if (optionsCase_ == 1) {
            return (io.greptime.v1.Ddl.UnsetFulltext) options_;
          }
          return io.greptime.v1.Ddl.UnsetFulltext.getDefaultInstance();
        }
      }
      /**
       * <code>.greptime.v1.UnsetFulltext fulltext = 1;</code>
       */
      private com.google.protobuf.SingleFieldBuilderV3<
          io.greptime.v1.Ddl.UnsetFulltext, io.greptime.v1.Ddl.UnsetFulltext.Builder, io.greptime.v1.Ddl.UnsetFulltextOrBuilder> 
          getFulltextFieldBuilder() {
        if (fulltextBuilder_ == null) {
          if (!(optionsCase_ == 1)) {
            options_ = io.greptime.v1.Ddl.UnsetFulltext.getDefaultInstance();
          }
          fulltextBuilder_ = new com.google.protobuf.SingleFieldBuilderV3<
              io.greptime.v1.Ddl.UnsetFulltext, io.greptime.v1.Ddl.UnsetFulltext.Builder, io.greptime.v1.Ddl.UnsetFulltextOrBuilder>(
                  (io.greptime.v1.Ddl.UnsetFulltext) options_,
                  getParentForChildren(),
                  isClean());
          options_ = null;
        }
        optionsCase_ = 1;
        onChanged();;
        return fulltextBuilder_;
      }

      private com.google.protobuf.SingleFieldBuilderV3<
          io.greptime.v1.Ddl.UnsetInverted, io.greptime.v1.Ddl.UnsetInverted.Builder, io.greptime.v1.Ddl.UnsetInvertedOrBuilder> invertedBuilder_;
      /**
       * <code>.greptime.v1.UnsetInverted inverted = 2;</code>
       * @return Whether the inverted field is set.
       */
      @java.lang.Override
      public boolean hasInverted() {
        return optionsCase_ == 2;
      }
      /**
       * <code>.greptime.v1.UnsetInverted inverted = 2;</code>
       * @return The inverted.
       */
      @java.lang.Override
      public io.greptime.v1.Ddl.UnsetInverted getInverted() {
        if (invertedBuilder_ == null) {
          if (optionsCase_ == 2) {
            return (io.greptime.v1.Ddl.UnsetInverted) options_;
          }
          return io.greptime.v1.Ddl.UnsetInverted.getDefaultInstance();
        } else {
          if (optionsCase_ == 2) {
            return invertedBuilder_.getMessage();
          }
          return io.greptime.v1.Ddl.UnsetInverted.getDefaultInstance();
        }
      }
      /**
       * <code>.greptime.v1.UnsetInverted inverted = 2;</code>
       */
      public Builder setInverted(io.greptime.v1.Ddl.UnsetInverted value) {
        if (invertedBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          options_ = value;
          onChanged();
        } else {
          invertedBuilder_.setMessage(value);
        }
        optionsCase_ = 2;
        return this;
      }
      /**
       * <code>.greptime.v1.UnsetInverted inverted = 2;</code>
       */
      public Builder setInverted(
          io.greptime.v1.Ddl.UnsetInverted.Builder builderForValue) {
        if (invertedBuilder_ == null) {
          options_ = builderForValue.build();
          onChanged();
        } else {
          invertedBuilder_.setMessage(builderForValue.build());
        }
        optionsCase_ = 2;
        return this;
      }
      /**
       * <code>.greptime.v1.UnsetInverted inverted = 2;</code>
       */
      public Builder mergeInverted(io.greptime.v1.Ddl.UnsetInverted value) {
        if (invertedBuilder_ == null) {
          if (optionsCase_ == 2 &&
              options_ != io.greptime.v1.Ddl.UnsetInverted.getDefaultInstance()) {
            options_ = io.greptime.v1.Ddl.UnsetInverted.newBuilder((io.greptime.v1.Ddl.UnsetInverted) options_)
                .mergeFrom(value).buildPartial();
          } else {
            options_ = value;
          }
          onChanged();
        } else {
          if (optionsCase_ == 2) {
            invertedBuilder_.mergeFrom(value);
          } else {
            invertedBuilder_.setMessage(value);
          }
        }
        optionsCase_ = 2;
        return this;
      }
      /**
       * <code>.greptime.v1.UnsetInverted inverted = 2;</code>
       */
      public Builder clearInverted() {
        if (invertedBuilder_ == null) {
          if (optionsCase_ == 2) {
            optionsCase_ = 0;
            options_ = null;
            onChanged();
          }
        } else {
          if (optionsCase_ == 2) {
            optionsCase_ = 0;
            options_ = null;
          }
          invertedBuilder_.clear();
        }
        return this;
      }
      /**
       * <code>.greptime.v1.UnsetInverted inverted = 2;</code>
       */
      public io.greptime.v1.Ddl.UnsetInverted.Builder getInvertedBuilder() {
        return getInvertedFieldBuilder().getBuilder();
      }
      /**
       * <code>.greptime.v1.UnsetInverted inverted = 2;</code>
       */
      @java.lang.Override
      public io.greptime.v1.Ddl.UnsetInvertedOrBuilder getInvertedOrBuilder() {
        if ((optionsCase_ == 2) && (invertedBuilder_ != null)) {
          return invertedBuilder_.getMessageOrBuilder();
        } else {
          if (optionsCase_ == 2) {
            return (io.greptime.v1.Ddl.UnsetInverted) options_;
          }
          return io.greptime.v1.Ddl.UnsetInverted.getDefaultInstance();
        }
      }
      /**
       * <code>.greptime.v1.UnsetInverted inverted = 2;</code>
       */
      private com.google.protobuf.SingleFieldBuilderV3<
          io.greptime.v1.Ddl.UnsetInverted, io.greptime.v1.Ddl.UnsetInverted.Builder, io.greptime.v1.Ddl.UnsetInvertedOrBuilder> 
          getInvertedFieldBuilder() {
        if (invertedBuilder_ == null) {
          if (!(optionsCase_ == 2)) {
            options_ = io.greptime.v1.Ddl.UnsetInverted.getDefaultInstance();
          }
          invertedBuilder_ = new com.google.protobuf.SingleFieldBuilderV3<
              io.greptime.v1.Ddl.UnsetInverted, io.greptime.v1.Ddl.UnsetInverted.Builder, io.greptime.v1.Ddl.UnsetInvertedOrBuilder>(
                  (io.greptime.v1.Ddl.UnsetInverted) options_,
                  getParentForChildren(),
                  isClean());
          options_ = null;
        }
        optionsCase_ = 2;
        onChanged();;
        return invertedBuilder_;
      }

      private com.google.protobuf.SingleFieldBuilderV3<
          io.greptime.v1.Ddl.UnsetSkipping, io.greptime.v1.Ddl.UnsetSkipping.Builder, io.greptime.v1.Ddl.UnsetSkippingOrBuilder> skippingBuilder_;
      /**
       * <code>.greptime.v1.UnsetSkipping skipping = 3;</code>
       * @return Whether the skipping field is set.
       */
      @java.lang.Override
      public boolean hasSkipping() {
        return optionsCase_ == 3;
      }
      /**
       * <code>.greptime.v1.UnsetSkipping skipping = 3;</code>
       * @return The skipping.
       */
      @java.lang.Override
      public io.greptime.v1.Ddl.UnsetSkipping getSkipping() {
        if (skippingBuilder_ == null) {
          if (optionsCase_ == 3) {
            return (io.greptime.v1.Ddl.UnsetSkipping) options_;
          }
          return io.greptime.v1.Ddl.UnsetSkipping.getDefaultInstance();
        } else {
          if (optionsCase_ == 3) {
            return skippingBuilder_.getMessage();
          }
          return io.greptime.v1.Ddl.UnsetSkipping.getDefaultInstance();
        }
      }
      /**
       * <code>.greptime.v1.UnsetSkipping skipping = 3;</code>
       */
      public Builder setSkipping(io.greptime.v1.Ddl.UnsetSkipping value) {
        if (skippingBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          options_ = value;
          onChanged();
        } else {
          skippingBuilder_.setMessage(value);
        }
        optionsCase_ = 3;
        return this;
      }
      /**
       * <code>.greptime.v1.UnsetSkipping skipping = 3;</code>
       */
      public Builder setSkipping(
          io.greptime.v1.Ddl.UnsetSkipping.Builder builderForValue) {
        if (skippingBuilder_ == null) {
          options_ = builderForValue.build();
          onChanged();
        } else {
          skippingBuilder_.setMessage(builderForValue.build());
        }
        optionsCase_ = 3;
        return this;
      }
      /**
       * <code>.greptime.v1.UnsetSkipping skipping = 3;</code>
       */
      public Builder mergeSkipping(io.greptime.v1.Ddl.UnsetSkipping value) {
        if (skippingBuilder_ == null) {
          if (optionsCase_ == 3 &&
              options_ != io.greptime.v1.Ddl.UnsetSkipping.getDefaultInstance()) {
            options_ = io.greptime.v1.Ddl.UnsetSkipping.newBuilder((io.greptime.v1.Ddl.UnsetSkipping) options_)
                .mergeFrom(value).buildPartial();
          } else {
            options_ = value;
          }
          onChanged();
        } else {
          if (optionsCase_ == 3) {
            skippingBuilder_.mergeFrom(value);
          } else {
            skippingBuilder_.setMessage(value);
          }
        }
        optionsCase_ = 3;
        return this;
      }
      /**
       * <code>.greptime.v1.UnsetSkipping skipping = 3;</code>
       */
      public Builder clearSkipping() {
        if (skippingBuilder_ == null) {
          if (optionsCase_ == 3) {
            optionsCase_ = 0;
            options_ = null;
            onChanged();
          }
        } else {
          if (optionsCase_ == 3) {
            optionsCase_ = 0;
            options_ = null;
          }
          skippingBuilder_.clear();
        }
        return this;
      }
      /**
       * <code>.greptime.v1.UnsetSkipping skipping = 3;</code>
       */
      public io.greptime.v1.Ddl.UnsetSkipping.Builder getSkippingBuilder() {
        return getSkippingFieldBuilder().getBuilder();
      }
      /**
       * <code>.greptime.v1.UnsetSkipping skipping = 3;</code>
       */
      @java.lang.Override
      public io.greptime.v1.Ddl.UnsetSkippingOrBuilder getSkippingOrBuilder() {
        if ((optionsCase_ == 3) && (skippingBuilder_ != null)) {
          return skippingBuilder_.getMessageOrBuilder();
        } else {
          if (optionsCase_ == 3) {
            return (io.greptime.v1.Ddl.UnsetSkipping) options_;
          }
          return io.greptime.v1.Ddl.UnsetSkipping.getDefaultInstance();
        }
      }
      /**
       * <code>.greptime.v1.UnsetSkipping skipping = 3;</code>
       */
      private com.google.protobuf.SingleFieldBuilderV3<
          io.greptime.v1.Ddl.UnsetSkipping, io.greptime.v1.Ddl.UnsetSkipping.Builder, io.greptime.v1.Ddl.UnsetSkippingOrBuilder> 
          getSkippingFieldBuilder() {
        if (skippingBuilder_ == null) {
          if (!(optionsCase_ == 3)) {
            options_ = io.greptime.v1.Ddl.UnsetSkipping.getDefaultInstance();
          }
          skippingBuilder_ = new com.google.protobuf.SingleFieldBuilderV3<
              io.greptime.v1.Ddl.UnsetSkipping, io.greptime.v1.Ddl.UnsetSkipping.Builder, io.greptime.v1.Ddl.UnsetSkippingOrBuilder>(
                  (io.greptime.v1.Ddl.UnsetSkipping) options_,
                  getParentForChildren(),
                  isClean());
          options_ = null;
        }
        optionsCase_ = 3;
        onChanged();;
        return skippingBuilder_;
      }
      @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.UnsetIndex)
    }

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

    public static io.greptime.v1.Ddl.UnsetIndex getDefaultInstance() {
      return DEFAULT_INSTANCE;
    }

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

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

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

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

  }

  public interface DropTableExprOrBuilder extends
      // @@protoc_insertion_point(interface_extends:greptime.v1.DropTableExpr)
      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();

    /**
     * <code>.greptime.v1.TableId table_id = 4;</code>
     * @return Whether the tableId field is set.
     */
    boolean hasTableId();
    /**
     * <code>.greptime.v1.TableId table_id = 4;</code>
     * @return The tableId.
     */
    io.greptime.v1.Ddl.TableId getTableId();
    /**
     * <code>.greptime.v1.TableId table_id = 4;</code>
     */
    io.greptime.v1.Ddl.TableIdOrBuilder getTableIdOrBuilder();

    /**
     * <code>bool drop_if_exists = 5;</code>
     * @return The dropIfExists.
     */
    boolean getDropIfExists();
  }
  /**
   * Protobuf type {@code greptime.v1.DropTableExpr}
   */
  public static final class DropTableExpr extends
      com.google.protobuf.GeneratedMessageV3 implements
      // @@protoc_insertion_point(message_implements:greptime.v1.DropTableExpr)
      DropTableExprOrBuilder {
  private static final long serialVersionUID = 0L;
    // Use DropTableExpr.newBuilder() to construct.
    private DropTableExpr(com.google.protobuf.GeneratedMessageV3.Builder<?> builder) {
      super(builder);
    }
    private DropTableExpr() {
      catalogName_ = "";
      schemaName_ = "";
      tableName_ = "";
    }

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

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

              break;
            }
            case 40: {

              dropIfExists_ = 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.Ddl.internal_static_greptime_v1_DropTableExpr_descriptor;
    }

    @java.lang.Override
    protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
        internalGetFieldAccessorTable() {
      return io.greptime.v1.Ddl.internal_static_greptime_v1_DropTableExpr_fieldAccessorTable
          .ensureFieldAccessorsInitialized(
              io.greptime.v1.Ddl.DropTableExpr.class, io.greptime.v1.Ddl.DropTableExpr.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;
      }
    }

    public static final int TABLE_ID_FIELD_NUMBER = 4;
    private io.greptime.v1.Ddl.TableId tableId_;
    /**
     * <code>.greptime.v1.TableId table_id = 4;</code>
     * @return Whether the tableId field is set.
     */
    @java.lang.Override
    public boolean hasTableId() {
      return tableId_ != null;
    }
    /**
     * <code>.greptime.v1.TableId table_id = 4;</code>
     * @return The tableId.
     */
    @java.lang.Override
    public io.greptime.v1.Ddl.TableId getTableId() {
      return tableId_ == null ? io.greptime.v1.Ddl.TableId.getDefaultInstance() : tableId_;
    }
    /**
     * <code>.greptime.v1.TableId table_id = 4;</code>
     */
    @java.lang.Override
    public io.greptime.v1.Ddl.TableIdOrBuilder getTableIdOrBuilder() {
      return getTableId();
    }

    public static final int DROP_IF_EXISTS_FIELD_NUMBER = 5;
    private boolean dropIfExists_;
    /**
     * <code>bool drop_if_exists = 5;</code>
     * @return The dropIfExists.
     */
    @java.lang.Override
    public boolean getDropIfExists() {
      return dropIfExists_;
    }

    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_);
      }
      if (tableId_ != null) {
        output.writeMessage(4, getTableId());
      }
      if (dropIfExists_ != false) {
        output.writeBool(5, dropIfExists_);
      }
      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_);
      }
      if (tableId_ != null) {
        size += com.google.protobuf.CodedOutputStream
          .computeMessageSize(4, getTableId());
      }
      if (dropIfExists_ != false) {
        size += com.google.protobuf.CodedOutputStream
          .computeBoolSize(5, dropIfExists_);
      }
      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.Ddl.DropTableExpr)) {
        return super.equals(obj);
      }
      io.greptime.v1.Ddl.DropTableExpr other = (io.greptime.v1.Ddl.DropTableExpr) obj;

      if (!getCatalogName()
          .equals(other.getCatalogName())) return false;
      if (!getSchemaName()
          .equals(other.getSchemaName())) return false;
      if (!getTableName()
          .equals(other.getTableName())) return false;
      if (hasTableId() != other.hasTableId()) return false;
      if (hasTableId()) {
        if (!getTableId()
            .equals(other.getTableId())) return false;
      }
      if (getDropIfExists()
          != other.getDropIfExists()) 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();
      if (hasTableId()) {
        hash = (37 * hash) + TABLE_ID_FIELD_NUMBER;
        hash = (53 * hash) + getTableId().hashCode();
      }
      hash = (37 * hash) + DROP_IF_EXISTS_FIELD_NUMBER;
      hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean(
          getDropIfExists());
      hash = (29 * hash) + unknownFields.hashCode();
      memoizedHashCode = hash;
      return hash;
    }

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

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

      // Construct using io.greptime.v1.Ddl.DropTableExpr.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_ = "";

        if (tableIdBuilder_ == null) {
          tableId_ = null;
        } else {
          tableId_ = null;
          tableIdBuilder_ = null;
        }
        dropIfExists_ = false;

        return this;
      }

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

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

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

      @java.lang.Override
      public io.greptime.v1.Ddl.DropTableExpr buildPartial() {
        io.greptime.v1.Ddl.DropTableExpr result = new io.greptime.v1.Ddl.DropTableExpr(this);
        result.catalogName_ = catalogName_;
        result.schemaName_ = schemaName_;
        result.tableName_ = tableName_;
        if (tableIdBuilder_ == null) {
          result.tableId_ = tableId_;
        } else {
          result.tableId_ = tableIdBuilder_.build();
        }
        result.dropIfExists_ = dropIfExists_;
        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.Ddl.DropTableExpr) {
          return mergeFrom((io.greptime.v1.Ddl.DropTableExpr)other);
        } else {
          super.mergeFrom(other);
          return this;
        }
      }

      public Builder mergeFrom(io.greptime.v1.Ddl.DropTableExpr other) {
        if (other == io.greptime.v1.Ddl.DropTableExpr.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();
        }
        if (other.hasTableId()) {
          mergeTableId(other.getTableId());
        }
        if (other.getDropIfExists() != false) {
          setDropIfExists(other.getDropIfExists());
        }
        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.Ddl.DropTableExpr parsedMessage = null;
        try {
          parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry);
        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
          parsedMessage = (io.greptime.v1.Ddl.DropTableExpr) 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;
      }

      private io.greptime.v1.Ddl.TableId tableId_;
      private com.google.protobuf.SingleFieldBuilderV3<
          io.greptime.v1.Ddl.TableId, io.greptime.v1.Ddl.TableId.Builder, io.greptime.v1.Ddl.TableIdOrBuilder> tableIdBuilder_;
      /**
       * <code>.greptime.v1.TableId table_id = 4;</code>
       * @return Whether the tableId field is set.
       */
      public boolean hasTableId() {
        return tableIdBuilder_ != null || tableId_ != null;
      }
      /**
       * <code>.greptime.v1.TableId table_id = 4;</code>
       * @return The tableId.
       */
      public io.greptime.v1.Ddl.TableId getTableId() {
        if (tableIdBuilder_ == null) {
          return tableId_ == null ? io.greptime.v1.Ddl.TableId.getDefaultInstance() : tableId_;
        } else {
          return tableIdBuilder_.getMessage();
        }
      }
      /**
       * <code>.greptime.v1.TableId table_id = 4;</code>
       */
      public Builder setTableId(io.greptime.v1.Ddl.TableId value) {
        if (tableIdBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          tableId_ = value;
          onChanged();
        } else {
          tableIdBuilder_.setMessage(value);
        }

        return this;
      }
      /**
       * <code>.greptime.v1.TableId table_id = 4;</code>
       */
      public Builder setTableId(
          io.greptime.v1.Ddl.TableId.Builder builderForValue) {
        if (tableIdBuilder_ == null) {
          tableId_ = builderForValue.build();
          onChanged();
        } else {
          tableIdBuilder_.setMessage(builderForValue.build());
        }

        return this;
      }
      /**
       * <code>.greptime.v1.TableId table_id = 4;</code>
       */
      public Builder mergeTableId(io.greptime.v1.Ddl.TableId value) {
        if (tableIdBuilder_ == null) {
          if (tableId_ != null) {
            tableId_ =
              io.greptime.v1.Ddl.TableId.newBuilder(tableId_).mergeFrom(value).buildPartial();
          } else {
            tableId_ = value;
          }
          onChanged();
        } else {
          tableIdBuilder_.mergeFrom(value);
        }

        return this;
      }
      /**
       * <code>.greptime.v1.TableId table_id = 4;</code>
       */
      public Builder clearTableId() {
        if (tableIdBuilder_ == null) {
          tableId_ = null;
          onChanged();
        } else {
          tableId_ = null;
          tableIdBuilder_ = null;
        }

        return this;
      }
      /**
       * <code>.greptime.v1.TableId table_id = 4;</code>
       */
      public io.greptime.v1.Ddl.TableId.Builder getTableIdBuilder() {
        
        onChanged();
        return getTableIdFieldBuilder().getBuilder();
      }
      /**
       * <code>.greptime.v1.TableId table_id = 4;</code>
       */
      public io.greptime.v1.Ddl.TableIdOrBuilder getTableIdOrBuilder() {
        if (tableIdBuilder_ != null) {
          return tableIdBuilder_.getMessageOrBuilder();
        } else {
          return tableId_ == null ?
              io.greptime.v1.Ddl.TableId.getDefaultInstance() : tableId_;
        }
      }
      /**
       * <code>.greptime.v1.TableId table_id = 4;</code>
       */
      private com.google.protobuf.SingleFieldBuilderV3<
          io.greptime.v1.Ddl.TableId, io.greptime.v1.Ddl.TableId.Builder, io.greptime.v1.Ddl.TableIdOrBuilder> 
          getTableIdFieldBuilder() {
        if (tableIdBuilder_ == null) {
          tableIdBuilder_ = new com.google.protobuf.SingleFieldBuilderV3<
              io.greptime.v1.Ddl.TableId, io.greptime.v1.Ddl.TableId.Builder, io.greptime.v1.Ddl.TableIdOrBuilder>(
                  getTableId(),
                  getParentForChildren(),
                  isClean());
          tableId_ = null;
        }
        return tableIdBuilder_;
      }

      private boolean dropIfExists_ ;
      /**
       * <code>bool drop_if_exists = 5;</code>
       * @return The dropIfExists.
       */
      @java.lang.Override
      public boolean getDropIfExists() {
        return dropIfExists_;
      }
      /**
       * <code>bool drop_if_exists = 5;</code>
       * @param value The dropIfExists to set.
       * @return This builder for chaining.
       */
      public Builder setDropIfExists(boolean value) {
        
        dropIfExists_ = value;
        onChanged();
        return this;
      }
      /**
       * <code>bool drop_if_exists = 5;</code>
       * @return This builder for chaining.
       */
      public Builder clearDropIfExists() {
        
        dropIfExists_ = 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.DropTableExpr)
    }

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

    public static io.greptime.v1.Ddl.DropTableExpr getDefaultInstance() {
      return DEFAULT_INSTANCE;
    }

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

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

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

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

  }

  public interface CreateDatabaseExprOrBuilder extends
      // @@protoc_insertion_point(interface_extends:greptime.v1.CreateDatabaseExpr)
      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>bool create_if_not_exists = 3;</code>
     * @return The createIfNotExists.
     */
    boolean getCreateIfNotExists();

    /**
     * <code>map&lt;string, string&gt; options = 4;</code>
     */
    int getOptionsCount();
    /**
     * <code>map&lt;string, string&gt; options = 4;</code>
     */
    boolean containsOptions(
        java.lang.String key);
    /**
     * Use {@link #getOptionsMap()} instead.
     */
    @java.lang.Deprecated
    java.util.Map<java.lang.String, java.lang.String>
    getOptions();
    /**
     * <code>map&lt;string, string&gt; options = 4;</code>
     */
    java.util.Map<java.lang.String, java.lang.String>
    getOptionsMap();
    /**
     * <code>map&lt;string, string&gt; options = 4;</code>
     */

    /* nullable */
java.lang.String getOptionsOrDefault(
        java.lang.String key,
        /* nullable */
java.lang.String defaultValue);
    /**
     * <code>map&lt;string, string&gt; options = 4;</code>
     */

    java.lang.String getOptionsOrThrow(
        java.lang.String key);
  }
  /**
   * Protobuf type {@code greptime.v1.CreateDatabaseExpr}
   */
  public static final class CreateDatabaseExpr extends
      com.google.protobuf.GeneratedMessageV3 implements
      // @@protoc_insertion_point(message_implements:greptime.v1.CreateDatabaseExpr)
      CreateDatabaseExprOrBuilder {
  private static final long serialVersionUID = 0L;
    // Use CreateDatabaseExpr.newBuilder() to construct.
    private CreateDatabaseExpr(com.google.protobuf.GeneratedMessageV3.Builder<?> builder) {
      super(builder);
    }
    private CreateDatabaseExpr() {
      catalogName_ = "";
      schemaName_ = "";
    }

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

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

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

              schemaName_ = s;
              break;
            }
            case 24: {

              createIfNotExists_ = input.readBool();
              break;
            }
            case 34: {
              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.Ddl.internal_static_greptime_v1_CreateDatabaseExpr_descriptor;
    }

    @SuppressWarnings({"rawtypes"})
    @java.lang.Override
    protected com.google.protobuf.MapField internalGetMapField(
        int number) {
      switch (number) {
        case 4:
          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.Ddl.internal_static_greptime_v1_CreateDatabaseExpr_fieldAccessorTable
          .ensureFieldAccessorsInitialized(
              io.greptime.v1.Ddl.CreateDatabaseExpr.class, io.greptime.v1.Ddl.CreateDatabaseExpr.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 CREATE_IF_NOT_EXISTS_FIELD_NUMBER = 3;
    private boolean createIfNotExists_;
    /**
     * <code>bool create_if_not_exists = 3;</code>
     * @return The createIfNotExists.
     */
    @java.lang.Override
    public boolean getCreateIfNotExists() {
      return createIfNotExists_;
    }

    public static final int OPTIONS_FIELD_NUMBER = 4;
    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.Ddl.internal_static_greptime_v1_CreateDatabaseExpr_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();
    }
    /**
     * <code>map&lt;string, string&gt; options = 4;</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();
    }
    /**
     * <code>map&lt;string, string&gt; options = 4;</code>
     */
    @java.lang.Override

    public java.util.Map<java.lang.String, java.lang.String> getOptionsMap() {
      return internalGetOptions().getMap();
    }
    /**
     * <code>map&lt;string, string&gt; options = 4;</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;
    }
    /**
     * <code>map&lt;string, string&gt; options = 4;</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 {
      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 (createIfNotExists_ != false) {
        output.writeBool(3, createIfNotExists_);
      }
      com.google.protobuf.GeneratedMessageV3
        .serializeStringMapTo(
          output,
          internalGetOptions(),
          OptionsDefaultEntryHolder.defaultEntry,
          4);
      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 (createIfNotExists_ != false) {
        size += com.google.protobuf.CodedOutputStream
          .computeBoolSize(3, createIfNotExists_);
      }
      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(4, 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.Ddl.CreateDatabaseExpr)) {
        return super.equals(obj);
      }
      io.greptime.v1.Ddl.CreateDatabaseExpr other = (io.greptime.v1.Ddl.CreateDatabaseExpr) obj;

      if (!getCatalogName()
          .equals(other.getCatalogName())) return false;
      if (!getSchemaName()
          .equals(other.getSchemaName())) return false;
      if (getCreateIfNotExists()
          != other.getCreateIfNotExists()) return false;
      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();
      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) + CREATE_IF_NOT_EXISTS_FIELD_NUMBER;
      hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean(
          getCreateIfNotExists());
      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.Ddl.CreateDatabaseExpr parseFrom(
        java.nio.ByteBuffer data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static io.greptime.v1.Ddl.CreateDatabaseExpr 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.Ddl.CreateDatabaseExpr parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static io.greptime.v1.Ddl.CreateDatabaseExpr 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.Ddl.CreateDatabaseExpr parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static io.greptime.v1.Ddl.CreateDatabaseExpr parseFrom(
        byte[] data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static io.greptime.v1.Ddl.CreateDatabaseExpr parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input);
    }
    public static io.greptime.v1.Ddl.CreateDatabaseExpr 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.Ddl.CreateDatabaseExpr parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseDelimitedWithIOException(PARSER, input);
    }
    public static io.greptime.v1.Ddl.CreateDatabaseExpr 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.Ddl.CreateDatabaseExpr parseFrom(
        com.google.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input);
    }
    public static io.greptime.v1.Ddl.CreateDatabaseExpr 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.Ddl.CreateDatabaseExpr 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.CreateDatabaseExpr}
     */
    public static final class Builder extends
        com.google.protobuf.GeneratedMessageV3.Builder<Builder> implements
        // @@protoc_insertion_point(builder_implements:greptime.v1.CreateDatabaseExpr)
        io.greptime.v1.Ddl.CreateDatabaseExprOrBuilder {
      public static final com.google.protobuf.Descriptors.Descriptor
          getDescriptor() {
        return io.greptime.v1.Ddl.internal_static_greptime_v1_CreateDatabaseExpr_descriptor;
      }

      @SuppressWarnings({"rawtypes"})
      protected com.google.protobuf.MapField internalGetMapField(
          int number) {
        switch (number) {
          case 4:
            return internalGetOptions();
          default:
            throw new RuntimeException(
                "Invalid map field number: " + number);
        }
      }
      @SuppressWarnings({"rawtypes"})
      protected com.google.protobuf.MapField internalGetMutableMapField(
          int number) {
        switch (number) {
          case 4:
            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.Ddl.internal_static_greptime_v1_CreateDatabaseExpr_fieldAccessorTable
            .ensureFieldAccessorsInitialized(
                io.greptime.v1.Ddl.CreateDatabaseExpr.class, io.greptime.v1.Ddl.CreateDatabaseExpr.Builder.class);
      }

      // Construct using io.greptime.v1.Ddl.CreateDatabaseExpr.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_ = "";

        createIfNotExists_ = false;

        internalGetMutableOptions().clear();
        return this;
      }

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

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

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

      @java.lang.Override
      public io.greptime.v1.Ddl.CreateDatabaseExpr buildPartial() {
        io.greptime.v1.Ddl.CreateDatabaseExpr result = new io.greptime.v1.Ddl.CreateDatabaseExpr(this);
        int from_bitField0_ = bitField0_;
        result.catalogName_ = catalogName_;
        result.schemaName_ = schemaName_;
        result.createIfNotExists_ = createIfNotExists_;
        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.Ddl.CreateDatabaseExpr) {
          return mergeFrom((io.greptime.v1.Ddl.CreateDatabaseExpr)other);
        } else {
          super.mergeFrom(other);
          return this;
        }
      }

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

      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 boolean createIfNotExists_ ;
      /**
       * <code>bool create_if_not_exists = 3;</code>
       * @return The createIfNotExists.
       */
      @java.lang.Override
      public boolean getCreateIfNotExists() {
        return createIfNotExists_;
      }
      /**
       * <code>bool create_if_not_exists = 3;</code>
       * @param value The createIfNotExists to set.
       * @return This builder for chaining.
       */
      public Builder setCreateIfNotExists(boolean value) {
        
        createIfNotExists_ = value;
        onChanged();
        return this;
      }
      /**
       * <code>bool create_if_not_exists = 3;</code>
       * @return This builder for chaining.
       */
      public Builder clearCreateIfNotExists() {
        
        createIfNotExists_ = false;
        onChanged();
        return this;
      }

      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();
      }
      /**
       * <code>map&lt;string, string&gt; options = 4;</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();
      }
      /**
       * <code>map&lt;string, string&gt; options = 4;</code>
       */
      @java.lang.Override

      public java.util.Map<java.lang.String, java.lang.String> getOptionsMap() {
        return internalGetOptions().getMap();
      }
      /**
       * <code>map&lt;string, string&gt; options = 4;</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;
      }
      /**
       * <code>map&lt;string, string&gt; options = 4;</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;
      }
      /**
       * <code>map&lt;string, string&gt; options = 4;</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();
      }
      /**
       * <code>map&lt;string, string&gt; options = 4;</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;
      }
      /**
       * <code>map&lt;string, string&gt; options = 4;</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.CreateDatabaseExpr)
    }

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

    public static io.greptime.v1.Ddl.CreateDatabaseExpr getDefaultInstance() {
      return DEFAULT_INSTANCE;
    }

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

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

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

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

  }

  public interface TruncateTableExprOrBuilder extends
      // @@protoc_insertion_point(interface_extends:greptime.v1.TruncateTableExpr)
      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();

    /**
     * <code>.greptime.v1.TableId table_id = 4;</code>
     * @return Whether the tableId field is set.
     */
    boolean hasTableId();
    /**
     * <code>.greptime.v1.TableId table_id = 4;</code>
     * @return The tableId.
     */
    io.greptime.v1.Ddl.TableId getTableId();
    /**
     * <code>.greptime.v1.TableId table_id = 4;</code>
     */
    io.greptime.v1.Ddl.TableIdOrBuilder getTableIdOrBuilder();
  }
  /**
   * Protobuf type {@code greptime.v1.TruncateTableExpr}
   */
  public static final class TruncateTableExpr extends
      com.google.protobuf.GeneratedMessageV3 implements
      // @@protoc_insertion_point(message_implements:greptime.v1.TruncateTableExpr)
      TruncateTableExprOrBuilder {
  private static final long serialVersionUID = 0L;
    // Use TruncateTableExpr.newBuilder() to construct.
    private TruncateTableExpr(com.google.protobuf.GeneratedMessageV3.Builder<?> builder) {
      super(builder);
    }
    private TruncateTableExpr() {
      catalogName_ = "";
      schemaName_ = "";
      tableName_ = "";
    }

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

    @java.lang.Override
    public final com.google.protobuf.UnknownFieldSet
    getUnknownFields() {
      return this.unknownFields;
    }
    private TruncateTableExpr(
        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;
            }
            case 34: {
              io.greptime.v1.Ddl.TableId.Builder subBuilder = null;
              if (tableId_ != null) {
                subBuilder = tableId_.toBuilder();
              }
              tableId_ = input.readMessage(io.greptime.v1.Ddl.TableId.parser(), extensionRegistry);
              if (subBuilder != null) {
                subBuilder.mergeFrom(tableId_);
                tableId_ = 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.Ddl.internal_static_greptime_v1_TruncateTableExpr_descriptor;
    }

    @java.lang.Override
    protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
        internalGetFieldAccessorTable() {
      return io.greptime.v1.Ddl.internal_static_greptime_v1_TruncateTableExpr_fieldAccessorTable
          .ensureFieldAccessorsInitialized(
              io.greptime.v1.Ddl.TruncateTableExpr.class, io.greptime.v1.Ddl.TruncateTableExpr.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;
      }
    }

    public static final int TABLE_ID_FIELD_NUMBER = 4;
    private io.greptime.v1.Ddl.TableId tableId_;
    /**
     * <code>.greptime.v1.TableId table_id = 4;</code>
     * @return Whether the tableId field is set.
     */
    @java.lang.Override
    public boolean hasTableId() {
      return tableId_ != null;
    }
    /**
     * <code>.greptime.v1.TableId table_id = 4;</code>
     * @return The tableId.
     */
    @java.lang.Override
    public io.greptime.v1.Ddl.TableId getTableId() {
      return tableId_ == null ? io.greptime.v1.Ddl.TableId.getDefaultInstance() : tableId_;
    }
    /**
     * <code>.greptime.v1.TableId table_id = 4;</code>
     */
    @java.lang.Override
    public io.greptime.v1.Ddl.TableIdOrBuilder getTableIdOrBuilder() {
      return getTableId();
    }

    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_);
      }
      if (tableId_ != null) {
        output.writeMessage(4, getTableId());
      }
      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_);
      }
      if (tableId_ != null) {
        size += com.google.protobuf.CodedOutputStream
          .computeMessageSize(4, getTableId());
      }
      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.Ddl.TruncateTableExpr)) {
        return super.equals(obj);
      }
      io.greptime.v1.Ddl.TruncateTableExpr other = (io.greptime.v1.Ddl.TruncateTableExpr) obj;

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

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

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

      // Construct using io.greptime.v1.Ddl.TruncateTableExpr.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_ = "";

        if (tableIdBuilder_ == null) {
          tableId_ = null;
        } else {
          tableId_ = null;
          tableIdBuilder_ = null;
        }
        return this;
      }

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

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

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

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

      public Builder mergeFrom(io.greptime.v1.Ddl.TruncateTableExpr other) {
        if (other == io.greptime.v1.Ddl.TruncateTableExpr.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();
        }
        if (other.hasTableId()) {
          mergeTableId(other.getTableId());
        }
        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.Ddl.TruncateTableExpr parsedMessage = null;
        try {
          parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry);
        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
          parsedMessage = (io.greptime.v1.Ddl.TruncateTableExpr) 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;
      }

      private io.greptime.v1.Ddl.TableId tableId_;
      private com.google.protobuf.SingleFieldBuilderV3<
          io.greptime.v1.Ddl.TableId, io.greptime.v1.Ddl.TableId.Builder, io.greptime.v1.Ddl.TableIdOrBuilder> tableIdBuilder_;
      /**
       * <code>.greptime.v1.TableId table_id = 4;</code>
       * @return Whether the tableId field is set.
       */
      public boolean hasTableId() {
        return tableIdBuilder_ != null || tableId_ != null;
      }
      /**
       * <code>.greptime.v1.TableId table_id = 4;</code>
       * @return The tableId.
       */
      public io.greptime.v1.Ddl.TableId getTableId() {
        if (tableIdBuilder_ == null) {
          return tableId_ == null ? io.greptime.v1.Ddl.TableId.getDefaultInstance() : tableId_;
        } else {
          return tableIdBuilder_.getMessage();
        }
      }
      /**
       * <code>.greptime.v1.TableId table_id = 4;</code>
       */
      public Builder setTableId(io.greptime.v1.Ddl.TableId value) {
        if (tableIdBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          tableId_ = value;
          onChanged();
        } else {
          tableIdBuilder_.setMessage(value);
        }

        return this;
      }
      /**
       * <code>.greptime.v1.TableId table_id = 4;</code>
       */
      public Builder setTableId(
          io.greptime.v1.Ddl.TableId.Builder builderForValue) {
        if (tableIdBuilder_ == null) {
          tableId_ = builderForValue.build();
          onChanged();
        } else {
          tableIdBuilder_.setMessage(builderForValue.build());
        }

        return this;
      }
      /**
       * <code>.greptime.v1.TableId table_id = 4;</code>
       */
      public Builder mergeTableId(io.greptime.v1.Ddl.TableId value) {
        if (tableIdBuilder_ == null) {
          if (tableId_ != null) {
            tableId_ =
              io.greptime.v1.Ddl.TableId.newBuilder(tableId_).mergeFrom(value).buildPartial();
          } else {
            tableId_ = value;
          }
          onChanged();
        } else {
          tableIdBuilder_.mergeFrom(value);
        }

        return this;
      }
      /**
       * <code>.greptime.v1.TableId table_id = 4;</code>
       */
      public Builder clearTableId() {
        if (tableIdBuilder_ == null) {
          tableId_ = null;
          onChanged();
        } else {
          tableId_ = null;
          tableIdBuilder_ = null;
        }

        return this;
      }
      /**
       * <code>.greptime.v1.TableId table_id = 4;</code>
       */
      public io.greptime.v1.Ddl.TableId.Builder getTableIdBuilder() {
        
        onChanged();
        return getTableIdFieldBuilder().getBuilder();
      }
      /**
       * <code>.greptime.v1.TableId table_id = 4;</code>
       */
      public io.greptime.v1.Ddl.TableIdOrBuilder getTableIdOrBuilder() {
        if (tableIdBuilder_ != null) {
          return tableIdBuilder_.getMessageOrBuilder();
        } else {
          return tableId_ == null ?
              io.greptime.v1.Ddl.TableId.getDefaultInstance() : tableId_;
        }
      }
      /**
       * <code>.greptime.v1.TableId table_id = 4;</code>
       */
      private com.google.protobuf.SingleFieldBuilderV3<
          io.greptime.v1.Ddl.TableId, io.greptime.v1.Ddl.TableId.Builder, io.greptime.v1.Ddl.TableIdOrBuilder> 
          getTableIdFieldBuilder() {
        if (tableIdBuilder_ == null) {
          tableIdBuilder_ = new com.google.protobuf.SingleFieldBuilderV3<
              io.greptime.v1.Ddl.TableId, io.greptime.v1.Ddl.TableId.Builder, io.greptime.v1.Ddl.TableIdOrBuilder>(
                  getTableId(),
                  getParentForChildren(),
                  isClean());
          tableId_ = null;
        }
        return tableIdBuilder_;
      }
      @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.TruncateTableExpr)
    }

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

    public static io.greptime.v1.Ddl.TruncateTableExpr getDefaultInstance() {
      return DEFAULT_INSTANCE;
    }

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

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

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

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

  }

  public interface DropDatabaseExprOrBuilder extends
      // @@protoc_insertion_point(interface_extends:greptime.v1.DropDatabaseExpr)
      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>bool drop_if_exists = 3;</code>
     * @return The dropIfExists.
     */
    boolean getDropIfExists();
  }
  /**
   * Protobuf type {@code greptime.v1.DropDatabaseExpr}
   */
  public static final class DropDatabaseExpr extends
      com.google.protobuf.GeneratedMessageV3 implements
      // @@protoc_insertion_point(message_implements:greptime.v1.DropDatabaseExpr)
      DropDatabaseExprOrBuilder {
  private static final long serialVersionUID = 0L;
    // Use DropDatabaseExpr.newBuilder() to construct.
    private DropDatabaseExpr(com.google.protobuf.GeneratedMessageV3.Builder<?> builder) {
      super(builder);
    }
    private DropDatabaseExpr() {
      catalogName_ = "";
      schemaName_ = "";
    }

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

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

              dropIfExists_ = 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.Ddl.internal_static_greptime_v1_DropDatabaseExpr_descriptor;
    }

    @java.lang.Override
    protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
        internalGetFieldAccessorTable() {
      return io.greptime.v1.Ddl.internal_static_greptime_v1_DropDatabaseExpr_fieldAccessorTable
          .ensureFieldAccessorsInitialized(
              io.greptime.v1.Ddl.DropDatabaseExpr.class, io.greptime.v1.Ddl.DropDatabaseExpr.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 DROP_IF_EXISTS_FIELD_NUMBER = 3;
    private boolean dropIfExists_;
    /**
     * <code>bool drop_if_exists = 3;</code>
     * @return The dropIfExists.
     */
    @java.lang.Override
    public boolean getDropIfExists() {
      return dropIfExists_;
    }

    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 (dropIfExists_ != false) {
        output.writeBool(3, dropIfExists_);
      }
      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 (dropIfExists_ != false) {
        size += com.google.protobuf.CodedOutputStream
          .computeBoolSize(3, dropIfExists_);
      }
      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.Ddl.DropDatabaseExpr)) {
        return super.equals(obj);
      }
      io.greptime.v1.Ddl.DropDatabaseExpr other = (io.greptime.v1.Ddl.DropDatabaseExpr) obj;

      if (!getCatalogName()
          .equals(other.getCatalogName())) return false;
      if (!getSchemaName()
          .equals(other.getSchemaName())) return false;
      if (getDropIfExists()
          != other.getDropIfExists()) 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) + DROP_IF_EXISTS_FIELD_NUMBER;
      hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean(
          getDropIfExists());
      hash = (29 * hash) + unknownFields.hashCode();
      memoizedHashCode = hash;
      return hash;
    }

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

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

      // Construct using io.greptime.v1.Ddl.DropDatabaseExpr.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_ = "";

        dropIfExists_ = false;

        return this;
      }

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

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

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

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

      public Builder mergeFrom(io.greptime.v1.Ddl.DropDatabaseExpr other) {
        if (other == io.greptime.v1.Ddl.DropDatabaseExpr.getDefaultInstance()) return this;
        if (!other.getCatalogName().isEmpty()) {
          catalogName_ = other.catalogName_;
          onChanged();
        }
        if (!other.getSchemaName().isEmpty()) {
          schemaName_ = other.schemaName_;
          onChanged();
        }
        if (other.getDropIfExists() != false) {
          setDropIfExists(other.getDropIfExists());
        }
        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.Ddl.DropDatabaseExpr parsedMessage = null;
        try {
          parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry);
        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
          parsedMessage = (io.greptime.v1.Ddl.DropDatabaseExpr) 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 boolean dropIfExists_ ;
      /**
       * <code>bool drop_if_exists = 3;</code>
       * @return The dropIfExists.
       */
      @java.lang.Override
      public boolean getDropIfExists() {
        return dropIfExists_;
      }
      /**
       * <code>bool drop_if_exists = 3;</code>
       * @param value The dropIfExists to set.
       * @return This builder for chaining.
       */
      public Builder setDropIfExists(boolean value) {
        
        dropIfExists_ = value;
        onChanged();
        return this;
      }
      /**
       * <code>bool drop_if_exists = 3;</code>
       * @return This builder for chaining.
       */
      public Builder clearDropIfExists() {
        
        dropIfExists_ = 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.DropDatabaseExpr)
    }

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

    public static io.greptime.v1.Ddl.DropDatabaseExpr getDefaultInstance() {
      return DEFAULT_INSTANCE;
    }

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

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

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

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

  }

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

    /**
     * <code>repeated .greptime.v1.AddColumn add_columns = 1;</code>
     */
    java.util.List<io.greptime.v1.Ddl.AddColumn> 
        getAddColumnsList();
    /**
     * <code>repeated .greptime.v1.AddColumn add_columns = 1;</code>
     */
    io.greptime.v1.Ddl.AddColumn getAddColumns(int index);
    /**
     * <code>repeated .greptime.v1.AddColumn add_columns = 1;</code>
     */
    int getAddColumnsCount();
    /**
     * <code>repeated .greptime.v1.AddColumn add_columns = 1;</code>
     */
    java.util.List<? extends io.greptime.v1.Ddl.AddColumnOrBuilder> 
        getAddColumnsOrBuilderList();
    /**
     * <code>repeated .greptime.v1.AddColumn add_columns = 1;</code>
     */
    io.greptime.v1.Ddl.AddColumnOrBuilder getAddColumnsOrBuilder(
        int index);
  }
  /**
   * Protobuf type {@code greptime.v1.AddColumns}
   */
  public static final class AddColumns extends
      com.google.protobuf.GeneratedMessageV3 implements
      // @@protoc_insertion_point(message_implements:greptime.v1.AddColumns)
      AddColumnsOrBuilder {
  private static final long serialVersionUID = 0L;
    // Use AddColumns.newBuilder() to construct.
    private AddColumns(com.google.protobuf.GeneratedMessageV3.Builder<?> builder) {
      super(builder);
    }
    private AddColumns() {
      addColumns_ = java.util.Collections.emptyList();
    }

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

    @java.lang.Override
    public final com.google.protobuf.UnknownFieldSet
    getUnknownFields() {
      return this.unknownFields;
    }
    private AddColumns(
        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)) {
                addColumns_ = new java.util.ArrayList<io.greptime.v1.Ddl.AddColumn>();
                mutable_bitField0_ |= 0x00000001;
              }
              addColumns_.add(
                  input.readMessage(io.greptime.v1.Ddl.AddColumn.parser(), extensionRegistry));
              break;
            }
            default: {
              if (!parseUnknownField(
                  input, unknownFields, extensionRegistry, tag)) {
                done = true;
              }
              break;
            }
          }
        }
      } catch (com.google.protobuf.InvalidProtocolBufferException e) {
        throw e.setUnfinishedMessage(this);
      } catch (com.google.protobuf.UninitializedMessageException e) {
        throw e.asInvalidProtocolBufferException().setUnfinishedMessage(this);
      } catch (java.io.IOException e) {
        throw new com.google.protobuf.InvalidProtocolBufferException(
            e).setUnfinishedMessage(this);
      } finally {
        if (((mutable_bitField0_ & 0x00000001) != 0)) {
          addColumns_ = java.util.Collections.unmodifiableList(addColumns_);
        }
        this.unknownFields = unknownFields.build();
        makeExtensionsImmutable();
      }
    }
    public static final com.google.protobuf.Descriptors.Descriptor
        getDescriptor() {
      return io.greptime.v1.Ddl.internal_static_greptime_v1_AddColumns_descriptor;
    }

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

    public static final int ADD_COLUMNS_FIELD_NUMBER = 1;
    private java.util.List<io.greptime.v1.Ddl.AddColumn> addColumns_;
    /**
     * <code>repeated .greptime.v1.AddColumn add_columns = 1;</code>
     */
    @java.lang.Override
    public java.util.List<io.greptime.v1.Ddl.AddColumn> getAddColumnsList() {
      return addColumns_;
    }
    /**
     * <code>repeated .greptime.v1.AddColumn add_columns = 1;</code>
     */
    @java.lang.Override
    public java.util.List<? extends io.greptime.v1.Ddl.AddColumnOrBuilder> 
        getAddColumnsOrBuilderList() {
      return addColumns_;
    }
    /**
     * <code>repeated .greptime.v1.AddColumn add_columns = 1;</code>
     */
    @java.lang.Override
    public int getAddColumnsCount() {
      return addColumns_.size();
    }
    /**
     * <code>repeated .greptime.v1.AddColumn add_columns = 1;</code>
     */
    @java.lang.Override
    public io.greptime.v1.Ddl.AddColumn getAddColumns(int index) {
      return addColumns_.get(index);
    }
    /**
     * <code>repeated .greptime.v1.AddColumn add_columns = 1;</code>
     */
    @java.lang.Override
    public io.greptime.v1.Ddl.AddColumnOrBuilder getAddColumnsOrBuilder(
        int index) {
      return addColumns_.get(index);
    }

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

      memoizedIsInitialized = 1;
      return true;
    }

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

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

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

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

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

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

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

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

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

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

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

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

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

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

      private java.util.List<io.greptime.v1.Ddl.AddColumn> addColumns_ =
        java.util.Collections.emptyList();
      private void ensureAddColumnsIsMutable() {
        if (!((bitField0_ & 0x00000001) != 0)) {
          addColumns_ = new java.util.ArrayList<io.greptime.v1.Ddl.AddColumn>(addColumns_);
          bitField0_ |= 0x00000001;
         }
      }

      private com.google.protobuf.RepeatedFieldBuilderV3<
          io.greptime.v1.Ddl.AddColumn, io.greptime.v1.Ddl.AddColumn.Builder, io.greptime.v1.Ddl.AddColumnOrBuilder> addColumnsBuilder_;

      /**
       * <code>repeated .greptime.v1.AddColumn add_columns = 1;</code>
       */
      public java.util.List<io.greptime.v1.Ddl.AddColumn> getAddColumnsList() {
        if (addColumnsBuilder_ == null) {
          return java.util.Collections.unmodifiableList(addColumns_);
        } else {
          return addColumnsBuilder_.getMessageList();
        }
      }
      /**
       * <code>repeated .greptime.v1.AddColumn add_columns = 1;</code>
       */
      public int getAddColumnsCount() {
        if (addColumnsBuilder_ == null) {
          return addColumns_.size();
        } else {
          return addColumnsBuilder_.getCount();
        }
      }
      /**
       * <code>repeated .greptime.v1.AddColumn add_columns = 1;</code>
       */
      public io.greptime.v1.Ddl.AddColumn getAddColumns(int index) {
        if (addColumnsBuilder_ == null) {
          return addColumns_.get(index);
        } else {
          return addColumnsBuilder_.getMessage(index);
        }
      }
      /**
       * <code>repeated .greptime.v1.AddColumn add_columns = 1;</code>
       */
      public Builder setAddColumns(
          int index, io.greptime.v1.Ddl.AddColumn value) {
        if (addColumnsBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          ensureAddColumnsIsMutable();
          addColumns_.set(index, value);
          onChanged();
        } else {
          addColumnsBuilder_.setMessage(index, value);
        }
        return this;
      }
      /**
       * <code>repeated .greptime.v1.AddColumn add_columns = 1;</code>
       */
      public Builder setAddColumns(
          int index, io.greptime.v1.Ddl.AddColumn.Builder builderForValue) {
        if (addColumnsBuilder_ == null) {
          ensureAddColumnsIsMutable();
          addColumns_.set(index, builderForValue.build());
          onChanged();
        } else {
          addColumnsBuilder_.setMessage(index, builderForValue.build());
        }
        return this;
      }
      /**
       * <code>repeated .greptime.v1.AddColumn add_columns = 1;</code>
       */
      public Builder addAddColumns(io.greptime.v1.Ddl.AddColumn value) {
        if (addColumnsBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          ensureAddColumnsIsMutable();
          addColumns_.add(value);
          onChanged();
        } else {
          addColumnsBuilder_.addMessage(value);
        }
        return this;
      }
      /**
       * <code>repeated .greptime.v1.AddColumn add_columns = 1;</code>
       */
      public Builder addAddColumns(
          int index, io.greptime.v1.Ddl.AddColumn value) {
        if (addColumnsBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          ensureAddColumnsIsMutable();
          addColumns_.add(index, value);
          onChanged();
        } else {
          addColumnsBuilder_.addMessage(index, value);
        }
        return this;
      }
      /**
       * <code>repeated .greptime.v1.AddColumn add_columns = 1;</code>
       */
      public Builder addAddColumns(
          io.greptime.v1.Ddl.AddColumn.Builder builderForValue) {
        if (addColumnsBuilder_ == null) {
          ensureAddColumnsIsMutable();
          addColumns_.add(builderForValue.build());
          onChanged();
        } else {
          addColumnsBuilder_.addMessage(builderForValue.build());
        }
        return this;
      }
      /**
       * <code>repeated .greptime.v1.AddColumn add_columns = 1;</code>
       */
      public Builder addAddColumns(
          int index, io.greptime.v1.Ddl.AddColumn.Builder builderForValue) {
        if (addColumnsBuilder_ == null) {
          ensureAddColumnsIsMutable();
          addColumns_.add(index, builderForValue.build());
          onChanged();
        } else {
          addColumnsBuilder_.addMessage(index, builderForValue.build());
        }
        return this;
      }
      /**
       * <code>repeated .greptime.v1.AddColumn add_columns = 1;</code>
       */
      public Builder addAllAddColumns(
          java.lang.Iterable<? extends io.greptime.v1.Ddl.AddColumn> values) {
        if (addColumnsBuilder_ == null) {
          ensureAddColumnsIsMutable();
          com.google.protobuf.AbstractMessageLite.Builder.addAll(
              values, addColumns_);
          onChanged();
        } else {
          addColumnsBuilder_.addAllMessages(values);
        }
        return this;
      }
      /**
       * <code>repeated .greptime.v1.AddColumn add_columns = 1;</code>
       */
      public Builder clearAddColumns() {
        if (addColumnsBuilder_ == null) {
          addColumns_ = java.util.Collections.emptyList();
          bitField0_ = (bitField0_ & ~0x00000001);
          onChanged();
        } else {
          addColumnsBuilder_.clear();
        }
        return this;
      }
      /**
       * <code>repeated .greptime.v1.AddColumn add_columns = 1;</code>
       */
      public Builder removeAddColumns(int index) {
        if (addColumnsBuilder_ == null) {
          ensureAddColumnsIsMutable();
          addColumns_.remove(index);
          onChanged();
        } else {
          addColumnsBuilder_.remove(index);
        }
        return this;
      }
      /**
       * <code>repeated .greptime.v1.AddColumn add_columns = 1;</code>
       */
      public io.greptime.v1.Ddl.AddColumn.Builder getAddColumnsBuilder(
          int index) {
        return getAddColumnsFieldBuilder().getBuilder(index);
      }
      /**
       * <code>repeated .greptime.v1.AddColumn add_columns = 1;</code>
       */
      public io.greptime.v1.Ddl.AddColumnOrBuilder getAddColumnsOrBuilder(
          int index) {
        if (addColumnsBuilder_ == null) {
          return addColumns_.get(index);  } else {
          return addColumnsBuilder_.getMessageOrBuilder(index);
        }
      }
      /**
       * <code>repeated .greptime.v1.AddColumn add_columns = 1;</code>
       */
      public java.util.List<? extends io.greptime.v1.Ddl.AddColumnOrBuilder> 
           getAddColumnsOrBuilderList() {
        if (addColumnsBuilder_ != null) {
          return addColumnsBuilder_.getMessageOrBuilderList();
        } else {
          return java.util.Collections.unmodifiableList(addColumns_);
        }
      }
      /**
       * <code>repeated .greptime.v1.AddColumn add_columns = 1;</code>
       */
      public io.greptime.v1.Ddl.AddColumn.Builder addAddColumnsBuilder() {
        return getAddColumnsFieldBuilder().addBuilder(
            io.greptime.v1.Ddl.AddColumn.getDefaultInstance());
      }
      /**
       * <code>repeated .greptime.v1.AddColumn add_columns = 1;</code>
       */
      public io.greptime.v1.Ddl.AddColumn.Builder addAddColumnsBuilder(
          int index) {
        return getAddColumnsFieldBuilder().addBuilder(
            index, io.greptime.v1.Ddl.AddColumn.getDefaultInstance());
      }
      /**
       * <code>repeated .greptime.v1.AddColumn add_columns = 1;</code>
       */
      public java.util.List<io.greptime.v1.Ddl.AddColumn.Builder> 
           getAddColumnsBuilderList() {
        return getAddColumnsFieldBuilder().getBuilderList();
      }
      private com.google.protobuf.RepeatedFieldBuilderV3<
          io.greptime.v1.Ddl.AddColumn, io.greptime.v1.Ddl.AddColumn.Builder, io.greptime.v1.Ddl.AddColumnOrBuilder> 
          getAddColumnsFieldBuilder() {
        if (addColumnsBuilder_ == null) {
          addColumnsBuilder_ = new com.google.protobuf.RepeatedFieldBuilderV3<
              io.greptime.v1.Ddl.AddColumn, io.greptime.v1.Ddl.AddColumn.Builder, io.greptime.v1.Ddl.AddColumnOrBuilder>(
                  addColumns_,
                  ((bitField0_ & 0x00000001) != 0),
                  getParentForChildren(),
                  isClean());
          addColumns_ = null;
        }
        return addColumnsBuilder_;
      }
      @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.AddColumns)
    }

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

    public static io.greptime.v1.Ddl.AddColumns getDefaultInstance() {
      return DEFAULT_INSTANCE;
    }

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

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

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

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

  }

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

    /**
     * <code>repeated .greptime.v1.DropColumn drop_columns = 1;</code>
     */
    java.util.List<io.greptime.v1.Ddl.DropColumn> 
        getDropColumnsList();
    /**
     * <code>repeated .greptime.v1.DropColumn drop_columns = 1;</code>
     */
    io.greptime.v1.Ddl.DropColumn getDropColumns(int index);
    /**
     * <code>repeated .greptime.v1.DropColumn drop_columns = 1;</code>
     */
    int getDropColumnsCount();
    /**
     * <code>repeated .greptime.v1.DropColumn drop_columns = 1;</code>
     */
    java.util.List<? extends io.greptime.v1.Ddl.DropColumnOrBuilder> 
        getDropColumnsOrBuilderList();
    /**
     * <code>repeated .greptime.v1.DropColumn drop_columns = 1;</code>
     */
    io.greptime.v1.Ddl.DropColumnOrBuilder getDropColumnsOrBuilder(
        int index);
  }
  /**
   * Protobuf type {@code greptime.v1.DropColumns}
   */
  public static final class DropColumns extends
      com.google.protobuf.GeneratedMessageV3 implements
      // @@protoc_insertion_point(message_implements:greptime.v1.DropColumns)
      DropColumnsOrBuilder {
  private static final long serialVersionUID = 0L;
    // Use DropColumns.newBuilder() to construct.
    private DropColumns(com.google.protobuf.GeneratedMessageV3.Builder<?> builder) {
      super(builder);
    }
    private DropColumns() {
      dropColumns_ = java.util.Collections.emptyList();
    }

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

    @java.lang.Override
    public final com.google.protobuf.UnknownFieldSet
    getUnknownFields() {
      return this.unknownFields;
    }
    private DropColumns(
        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)) {
                dropColumns_ = new java.util.ArrayList<io.greptime.v1.Ddl.DropColumn>();
                mutable_bitField0_ |= 0x00000001;
              }
              dropColumns_.add(
                  input.readMessage(io.greptime.v1.Ddl.DropColumn.parser(), extensionRegistry));
              break;
            }
            default: {
              if (!parseUnknownField(
                  input, unknownFields, extensionRegistry, tag)) {
                done = true;
              }
              break;
            }
          }
        }
      } catch (com.google.protobuf.InvalidProtocolBufferException e) {
        throw e.setUnfinishedMessage(this);
      } catch (com.google.protobuf.UninitializedMessageException e) {
        throw e.asInvalidProtocolBufferException().setUnfinishedMessage(this);
      } catch (java.io.IOException e) {
        throw new com.google.protobuf.InvalidProtocolBufferException(
            e).setUnfinishedMessage(this);
      } finally {
        if (((mutable_bitField0_ & 0x00000001) != 0)) {
          dropColumns_ = java.util.Collections.unmodifiableList(dropColumns_);
        }
        this.unknownFields = unknownFields.build();
        makeExtensionsImmutable();
      }
    }
    public static final com.google.protobuf.Descriptors.Descriptor
        getDescriptor() {
      return io.greptime.v1.Ddl.internal_static_greptime_v1_DropColumns_descriptor;
    }

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

    public static final int DROP_COLUMNS_FIELD_NUMBER = 1;
    private java.util.List<io.greptime.v1.Ddl.DropColumn> dropColumns_;
    /**
     * <code>repeated .greptime.v1.DropColumn drop_columns = 1;</code>
     */
    @java.lang.Override
    public java.util.List<io.greptime.v1.Ddl.DropColumn> getDropColumnsList() {
      return dropColumns_;
    }
    /**
     * <code>repeated .greptime.v1.DropColumn drop_columns = 1;</code>
     */
    @java.lang.Override
    public java.util.List<? extends io.greptime.v1.Ddl.DropColumnOrBuilder> 
        getDropColumnsOrBuilderList() {
      return dropColumns_;
    }
    /**
     * <code>repeated .greptime.v1.DropColumn drop_columns = 1;</code>
     */
    @java.lang.Override
    public int getDropColumnsCount() {
      return dropColumns_.size();
    }
    /**
     * <code>repeated .greptime.v1.DropColumn drop_columns = 1;</code>
     */
    @java.lang.Override
    public io.greptime.v1.Ddl.DropColumn getDropColumns(int index) {
      return dropColumns_.get(index);
    }
    /**
     * <code>repeated .greptime.v1.DropColumn drop_columns = 1;</code>
     */
    @java.lang.Override
    public io.greptime.v1.Ddl.DropColumnOrBuilder getDropColumnsOrBuilder(
        int index) {
      return dropColumns_.get(index);
    }

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

      memoizedIsInitialized = 1;
      return true;
    }

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

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

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

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

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

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

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

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

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

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

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

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

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

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

      private java.util.List<io.greptime.v1.Ddl.DropColumn> dropColumns_ =
        java.util.Collections.emptyList();
      private void ensureDropColumnsIsMutable() {
        if (!((bitField0_ & 0x00000001) != 0)) {
          dropColumns_ = new java.util.ArrayList<io.greptime.v1.Ddl.DropColumn>(dropColumns_);
          bitField0_ |= 0x00000001;
         }
      }

      private com.google.protobuf.RepeatedFieldBuilderV3<
          io.greptime.v1.Ddl.DropColumn, io.greptime.v1.Ddl.DropColumn.Builder, io.greptime.v1.Ddl.DropColumnOrBuilder> dropColumnsBuilder_;

      /**
       * <code>repeated .greptime.v1.DropColumn drop_columns = 1;</code>
       */
      public java.util.List<io.greptime.v1.Ddl.DropColumn> getDropColumnsList() {
        if (dropColumnsBuilder_ == null) {
          return java.util.Collections.unmodifiableList(dropColumns_);
        } else {
          return dropColumnsBuilder_.getMessageList();
        }
      }
      /**
       * <code>repeated .greptime.v1.DropColumn drop_columns = 1;</code>
       */
      public int getDropColumnsCount() {
        if (dropColumnsBuilder_ == null) {
          return dropColumns_.size();
        } else {
          return dropColumnsBuilder_.getCount();
        }
      }
      /**
       * <code>repeated .greptime.v1.DropColumn drop_columns = 1;</code>
       */
      public io.greptime.v1.Ddl.DropColumn getDropColumns(int index) {
        if (dropColumnsBuilder_ == null) {
          return dropColumns_.get(index);
        } else {
          return dropColumnsBuilder_.getMessage(index);
        }
      }
      /**
       * <code>repeated .greptime.v1.DropColumn drop_columns = 1;</code>
       */
      public Builder setDropColumns(
          int index, io.greptime.v1.Ddl.DropColumn value) {
        if (dropColumnsBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          ensureDropColumnsIsMutable();
          dropColumns_.set(index, value);
          onChanged();
        } else {
          dropColumnsBuilder_.setMessage(index, value);
        }
        return this;
      }
      /**
       * <code>repeated .greptime.v1.DropColumn drop_columns = 1;</code>
       */
      public Builder setDropColumns(
          int index, io.greptime.v1.Ddl.DropColumn.Builder builderForValue) {
        if (dropColumnsBuilder_ == null) {
          ensureDropColumnsIsMutable();
          dropColumns_.set(index, builderForValue.build());
          onChanged();
        } else {
          dropColumnsBuilder_.setMessage(index, builderForValue.build());
        }
        return this;
      }
      /**
       * <code>repeated .greptime.v1.DropColumn drop_columns = 1;</code>
       */
      public Builder addDropColumns(io.greptime.v1.Ddl.DropColumn value) {
        if (dropColumnsBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          ensureDropColumnsIsMutable();
          dropColumns_.add(value);
          onChanged();
        } else {
          dropColumnsBuilder_.addMessage(value);
        }
        return this;
      }
      /**
       * <code>repeated .greptime.v1.DropColumn drop_columns = 1;</code>
       */
      public Builder addDropColumns(
          int index, io.greptime.v1.Ddl.DropColumn value) {
        if (dropColumnsBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          ensureDropColumnsIsMutable();
          dropColumns_.add(index, value);
          onChanged();
        } else {
          dropColumnsBuilder_.addMessage(index, value);
        }
        return this;
      }
      /**
       * <code>repeated .greptime.v1.DropColumn drop_columns = 1;</code>
       */
      public Builder addDropColumns(
          io.greptime.v1.Ddl.DropColumn.Builder builderForValue) {
        if (dropColumnsBuilder_ == null) {
          ensureDropColumnsIsMutable();
          dropColumns_.add(builderForValue.build());
          onChanged();
        } else {
          dropColumnsBuilder_.addMessage(builderForValue.build());
        }
        return this;
      }
      /**
       * <code>repeated .greptime.v1.DropColumn drop_columns = 1;</code>
       */
      public Builder addDropColumns(
          int index, io.greptime.v1.Ddl.DropColumn.Builder builderForValue) {
        if (dropColumnsBuilder_ == null) {
          ensureDropColumnsIsMutable();
          dropColumns_.add(index, builderForValue.build());
          onChanged();
        } else {
          dropColumnsBuilder_.addMessage(index, builderForValue.build());
        }
        return this;
      }
      /**
       * <code>repeated .greptime.v1.DropColumn drop_columns = 1;</code>
       */
      public Builder addAllDropColumns(
          java.lang.Iterable<? extends io.greptime.v1.Ddl.DropColumn> values) {
        if (dropColumnsBuilder_ == null) {
          ensureDropColumnsIsMutable();
          com.google.protobuf.AbstractMessageLite.Builder.addAll(
              values, dropColumns_);
          onChanged();
        } else {
          dropColumnsBuilder_.addAllMessages(values);
        }
        return this;
      }
      /**
       * <code>repeated .greptime.v1.DropColumn drop_columns = 1;</code>
       */
      public Builder clearDropColumns() {
        if (dropColumnsBuilder_ == null) {
          dropColumns_ = java.util.Collections.emptyList();
          bitField0_ = (bitField0_ & ~0x00000001);
          onChanged();
        } else {
          dropColumnsBuilder_.clear();
        }
        return this;
      }
      /**
       * <code>repeated .greptime.v1.DropColumn drop_columns = 1;</code>
       */
      public Builder removeDropColumns(int index) {
        if (dropColumnsBuilder_ == null) {
          ensureDropColumnsIsMutable();
          dropColumns_.remove(index);
          onChanged();
        } else {
          dropColumnsBuilder_.remove(index);
        }
        return this;
      }
      /**
       * <code>repeated .greptime.v1.DropColumn drop_columns = 1;</code>
       */
      public io.greptime.v1.Ddl.DropColumn.Builder getDropColumnsBuilder(
          int index) {
        return getDropColumnsFieldBuilder().getBuilder(index);
      }
      /**
       * <code>repeated .greptime.v1.DropColumn drop_columns = 1;</code>
       */
      public io.greptime.v1.Ddl.DropColumnOrBuilder getDropColumnsOrBuilder(
          int index) {
        if (dropColumnsBuilder_ == null) {
          return dropColumns_.get(index);  } else {
          return dropColumnsBuilder_.getMessageOrBuilder(index);
        }
      }
      /**
       * <code>repeated .greptime.v1.DropColumn drop_columns = 1;</code>
       */
      public java.util.List<? extends io.greptime.v1.Ddl.DropColumnOrBuilder> 
           getDropColumnsOrBuilderList() {
        if (dropColumnsBuilder_ != null) {
          return dropColumnsBuilder_.getMessageOrBuilderList();
        } else {
          return java.util.Collections.unmodifiableList(dropColumns_);
        }
      }
      /**
       * <code>repeated .greptime.v1.DropColumn drop_columns = 1;</code>
       */
      public io.greptime.v1.Ddl.DropColumn.Builder addDropColumnsBuilder() {
        return getDropColumnsFieldBuilder().addBuilder(
            io.greptime.v1.Ddl.DropColumn.getDefaultInstance());
      }
      /**
       * <code>repeated .greptime.v1.DropColumn drop_columns = 1;</code>
       */
      public io.greptime.v1.Ddl.DropColumn.Builder addDropColumnsBuilder(
          int index) {
        return getDropColumnsFieldBuilder().addBuilder(
            index, io.greptime.v1.Ddl.DropColumn.getDefaultInstance());
      }
      /**
       * <code>repeated .greptime.v1.DropColumn drop_columns = 1;</code>
       */
      public java.util.List<io.greptime.v1.Ddl.DropColumn.Builder> 
           getDropColumnsBuilderList() {
        return getDropColumnsFieldBuilder().getBuilderList();
      }
      private com.google.protobuf.RepeatedFieldBuilderV3<
          io.greptime.v1.Ddl.DropColumn, io.greptime.v1.Ddl.DropColumn.Builder, io.greptime.v1.Ddl.DropColumnOrBuilder> 
          getDropColumnsFieldBuilder() {
        if (dropColumnsBuilder_ == null) {
          dropColumnsBuilder_ = new com.google.protobuf.RepeatedFieldBuilderV3<
              io.greptime.v1.Ddl.DropColumn, io.greptime.v1.Ddl.DropColumn.Builder, io.greptime.v1.Ddl.DropColumnOrBuilder>(
                  dropColumns_,
                  ((bitField0_ & 0x00000001) != 0),
                  getParentForChildren(),
                  isClean());
          dropColumns_ = null;
        }
        return dropColumnsBuilder_;
      }
      @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.DropColumns)
    }

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

    public static io.greptime.v1.Ddl.DropColumns getDefaultInstance() {
      return DEFAULT_INSTANCE;
    }

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

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

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

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

  }

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

    /**
     * <code>repeated .greptime.v1.ModifyColumnType modify_column_types = 1;</code>
     */
    java.util.List<io.greptime.v1.Ddl.ModifyColumnType> 
        getModifyColumnTypesList();
    /**
     * <code>repeated .greptime.v1.ModifyColumnType modify_column_types = 1;</code>
     */
    io.greptime.v1.Ddl.ModifyColumnType getModifyColumnTypes(int index);
    /**
     * <code>repeated .greptime.v1.ModifyColumnType modify_column_types = 1;</code>
     */
    int getModifyColumnTypesCount();
    /**
     * <code>repeated .greptime.v1.ModifyColumnType modify_column_types = 1;</code>
     */
    java.util.List<? extends io.greptime.v1.Ddl.ModifyColumnTypeOrBuilder> 
        getModifyColumnTypesOrBuilderList();
    /**
     * <code>repeated .greptime.v1.ModifyColumnType modify_column_types = 1;</code>
     */
    io.greptime.v1.Ddl.ModifyColumnTypeOrBuilder getModifyColumnTypesOrBuilder(
        int index);
  }
  /**
   * Protobuf type {@code greptime.v1.ModifyColumnTypes}
   */
  public static final class ModifyColumnTypes extends
      com.google.protobuf.GeneratedMessageV3 implements
      // @@protoc_insertion_point(message_implements:greptime.v1.ModifyColumnTypes)
      ModifyColumnTypesOrBuilder {
  private static final long serialVersionUID = 0L;
    // Use ModifyColumnTypes.newBuilder() to construct.
    private ModifyColumnTypes(com.google.protobuf.GeneratedMessageV3.Builder<?> builder) {
      super(builder);
    }
    private ModifyColumnTypes() {
      modifyColumnTypes_ = java.util.Collections.emptyList();
    }

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

    @java.lang.Override
    public final com.google.protobuf.UnknownFieldSet
    getUnknownFields() {
      return this.unknownFields;
    }
    private ModifyColumnTypes(
        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)) {
                modifyColumnTypes_ = new java.util.ArrayList<io.greptime.v1.Ddl.ModifyColumnType>();
                mutable_bitField0_ |= 0x00000001;
              }
              modifyColumnTypes_.add(
                  input.readMessage(io.greptime.v1.Ddl.ModifyColumnType.parser(), extensionRegistry));
              break;
            }
            default: {
              if (!parseUnknownField(
                  input, unknownFields, extensionRegistry, tag)) {
                done = true;
              }
              break;
            }
          }
        }
      } catch (com.google.protobuf.InvalidProtocolBufferException e) {
        throw e.setUnfinishedMessage(this);
      } catch (com.google.protobuf.UninitializedMessageException e) {
        throw e.asInvalidProtocolBufferException().setUnfinishedMessage(this);
      } catch (java.io.IOException e) {
        throw new com.google.protobuf.InvalidProtocolBufferException(
            e).setUnfinishedMessage(this);
      } finally {
        if (((mutable_bitField0_ & 0x00000001) != 0)) {
          modifyColumnTypes_ = java.util.Collections.unmodifiableList(modifyColumnTypes_);
        }
        this.unknownFields = unknownFields.build();
        makeExtensionsImmutable();
      }
    }
    public static final com.google.protobuf.Descriptors.Descriptor
        getDescriptor() {
      return io.greptime.v1.Ddl.internal_static_greptime_v1_ModifyColumnTypes_descriptor;
    }

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

    public static final int MODIFY_COLUMN_TYPES_FIELD_NUMBER = 1;
    private java.util.List<io.greptime.v1.Ddl.ModifyColumnType> modifyColumnTypes_;
    /**
     * <code>repeated .greptime.v1.ModifyColumnType modify_column_types = 1;</code>
     */
    @java.lang.Override
    public java.util.List<io.greptime.v1.Ddl.ModifyColumnType> getModifyColumnTypesList() {
      return modifyColumnTypes_;
    }
    /**
     * <code>repeated .greptime.v1.ModifyColumnType modify_column_types = 1;</code>
     */
    @java.lang.Override
    public java.util.List<? extends io.greptime.v1.Ddl.ModifyColumnTypeOrBuilder> 
        getModifyColumnTypesOrBuilderList() {
      return modifyColumnTypes_;
    }
    /**
     * <code>repeated .greptime.v1.ModifyColumnType modify_column_types = 1;</code>
     */
    @java.lang.Override
    public int getModifyColumnTypesCount() {
      return modifyColumnTypes_.size();
    }
    /**
     * <code>repeated .greptime.v1.ModifyColumnType modify_column_types = 1;</code>
     */
    @java.lang.Override
    public io.greptime.v1.Ddl.ModifyColumnType getModifyColumnTypes(int index) {
      return modifyColumnTypes_.get(index);
    }
    /**
     * <code>repeated .greptime.v1.ModifyColumnType modify_column_types = 1;</code>
     */
    @java.lang.Override
    public io.greptime.v1.Ddl.ModifyColumnTypeOrBuilder getModifyColumnTypesOrBuilder(
        int index) {
      return modifyColumnTypes_.get(index);
    }

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

      memoizedIsInitialized = 1;
      return true;
    }

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

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

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

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

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

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

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

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

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

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

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

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

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

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

      private java.util.List<io.greptime.v1.Ddl.ModifyColumnType> modifyColumnTypes_ =
        java.util.Collections.emptyList();
      private void ensureModifyColumnTypesIsMutable() {
        if (!((bitField0_ & 0x00000001) != 0)) {
          modifyColumnTypes_ = new java.util.ArrayList<io.greptime.v1.Ddl.ModifyColumnType>(modifyColumnTypes_);
          bitField0_ |= 0x00000001;
         }
      }

      private com.google.protobuf.RepeatedFieldBuilderV3<
          io.greptime.v1.Ddl.ModifyColumnType, io.greptime.v1.Ddl.ModifyColumnType.Builder, io.greptime.v1.Ddl.ModifyColumnTypeOrBuilder> modifyColumnTypesBuilder_;

      /**
       * <code>repeated .greptime.v1.ModifyColumnType modify_column_types = 1;</code>
       */
      public java.util.List<io.greptime.v1.Ddl.ModifyColumnType> getModifyColumnTypesList() {
        if (modifyColumnTypesBuilder_ == null) {
          return java.util.Collections.unmodifiableList(modifyColumnTypes_);
        } else {
          return modifyColumnTypesBuilder_.getMessageList();
        }
      }
      /**
       * <code>repeated .greptime.v1.ModifyColumnType modify_column_types = 1;</code>
       */
      public int getModifyColumnTypesCount() {
        if (modifyColumnTypesBuilder_ == null) {
          return modifyColumnTypes_.size();
        } else {
          return modifyColumnTypesBuilder_.getCount();
        }
      }
      /**
       * <code>repeated .greptime.v1.ModifyColumnType modify_column_types = 1;</code>
       */
      public io.greptime.v1.Ddl.ModifyColumnType getModifyColumnTypes(int index) {
        if (modifyColumnTypesBuilder_ == null) {
          return modifyColumnTypes_.get(index);
        } else {
          return modifyColumnTypesBuilder_.getMessage(index);
        }
      }
      /**
       * <code>repeated .greptime.v1.ModifyColumnType modify_column_types = 1;</code>
       */
      public Builder setModifyColumnTypes(
          int index, io.greptime.v1.Ddl.ModifyColumnType value) {
        if (modifyColumnTypesBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          ensureModifyColumnTypesIsMutable();
          modifyColumnTypes_.set(index, value);
          onChanged();
        } else {
          modifyColumnTypesBuilder_.setMessage(index, value);
        }
        return this;
      }
      /**
       * <code>repeated .greptime.v1.ModifyColumnType modify_column_types = 1;</code>
       */
      public Builder setModifyColumnTypes(
          int index, io.greptime.v1.Ddl.ModifyColumnType.Builder builderForValue) {
        if (modifyColumnTypesBuilder_ == null) {
          ensureModifyColumnTypesIsMutable();
          modifyColumnTypes_.set(index, builderForValue.build());
          onChanged();
        } else {
          modifyColumnTypesBuilder_.setMessage(index, builderForValue.build());
        }
        return this;
      }
      /**
       * <code>repeated .greptime.v1.ModifyColumnType modify_column_types = 1;</code>
       */
      public Builder addModifyColumnTypes(io.greptime.v1.Ddl.ModifyColumnType value) {
        if (modifyColumnTypesBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          ensureModifyColumnTypesIsMutable();
          modifyColumnTypes_.add(value);
          onChanged();
        } else {
          modifyColumnTypesBuilder_.addMessage(value);
        }
        return this;
      }
      /**
       * <code>repeated .greptime.v1.ModifyColumnType modify_column_types = 1;</code>
       */
      public Builder addModifyColumnTypes(
          int index, io.greptime.v1.Ddl.ModifyColumnType value) {
        if (modifyColumnTypesBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          ensureModifyColumnTypesIsMutable();
          modifyColumnTypes_.add(index, value);
          onChanged();
        } else {
          modifyColumnTypesBuilder_.addMessage(index, value);
        }
        return this;
      }
      /**
       * <code>repeated .greptime.v1.ModifyColumnType modify_column_types = 1;</code>
       */
      public Builder addModifyColumnTypes(
          io.greptime.v1.Ddl.ModifyColumnType.Builder builderForValue) {
        if (modifyColumnTypesBuilder_ == null) {
          ensureModifyColumnTypesIsMutable();
          modifyColumnTypes_.add(builderForValue.build());
          onChanged();
        } else {
          modifyColumnTypesBuilder_.addMessage(builderForValue.build());
        }
        return this;
      }
      /**
       * <code>repeated .greptime.v1.ModifyColumnType modify_column_types = 1;</code>
       */
      public Builder addModifyColumnTypes(
          int index, io.greptime.v1.Ddl.ModifyColumnType.Builder builderForValue) {
        if (modifyColumnTypesBuilder_ == null) {
          ensureModifyColumnTypesIsMutable();
          modifyColumnTypes_.add(index, builderForValue.build());
          onChanged();
        } else {
          modifyColumnTypesBuilder_.addMessage(index, builderForValue.build());
        }
        return this;
      }
      /**
       * <code>repeated .greptime.v1.ModifyColumnType modify_column_types = 1;</code>
       */
      public Builder addAllModifyColumnTypes(
          java.lang.Iterable<? extends io.greptime.v1.Ddl.ModifyColumnType> values) {
        if (modifyColumnTypesBuilder_ == null) {
          ensureModifyColumnTypesIsMutable();
          com.google.protobuf.AbstractMessageLite.Builder.addAll(
              values, modifyColumnTypes_);
          onChanged();
        } else {
          modifyColumnTypesBuilder_.addAllMessages(values);
        }
        return this;
      }
      /**
       * <code>repeated .greptime.v1.ModifyColumnType modify_column_types = 1;</code>
       */
      public Builder clearModifyColumnTypes() {
        if (modifyColumnTypesBuilder_ == null) {
          modifyColumnTypes_ = java.util.Collections.emptyList();
          bitField0_ = (bitField0_ & ~0x00000001);
          onChanged();
        } else {
          modifyColumnTypesBuilder_.clear();
        }
        return this;
      }
      /**
       * <code>repeated .greptime.v1.ModifyColumnType modify_column_types = 1;</code>
       */
      public Builder removeModifyColumnTypes(int index) {
        if (modifyColumnTypesBuilder_ == null) {
          ensureModifyColumnTypesIsMutable();
          modifyColumnTypes_.remove(index);
          onChanged();
        } else {
          modifyColumnTypesBuilder_.remove(index);
        }
        return this;
      }
      /**
       * <code>repeated .greptime.v1.ModifyColumnType modify_column_types = 1;</code>
       */
      public io.greptime.v1.Ddl.ModifyColumnType.Builder getModifyColumnTypesBuilder(
          int index) {
        return getModifyColumnTypesFieldBuilder().getBuilder(index);
      }
      /**
       * <code>repeated .greptime.v1.ModifyColumnType modify_column_types = 1;</code>
       */
      public io.greptime.v1.Ddl.ModifyColumnTypeOrBuilder getModifyColumnTypesOrBuilder(
          int index) {
        if (modifyColumnTypesBuilder_ == null) {
          return modifyColumnTypes_.get(index);  } else {
          return modifyColumnTypesBuilder_.getMessageOrBuilder(index);
        }
      }
      /**
       * <code>repeated .greptime.v1.ModifyColumnType modify_column_types = 1;</code>
       */
      public java.util.List<? extends io.greptime.v1.Ddl.ModifyColumnTypeOrBuilder> 
           getModifyColumnTypesOrBuilderList() {
        if (modifyColumnTypesBuilder_ != null) {
          return modifyColumnTypesBuilder_.getMessageOrBuilderList();
        } else {
          return java.util.Collections.unmodifiableList(modifyColumnTypes_);
        }
      }
      /**
       * <code>repeated .greptime.v1.ModifyColumnType modify_column_types = 1;</code>
       */
      public io.greptime.v1.Ddl.ModifyColumnType.Builder addModifyColumnTypesBuilder() {
        return getModifyColumnTypesFieldBuilder().addBuilder(
            io.greptime.v1.Ddl.ModifyColumnType.getDefaultInstance());
      }
      /**
       * <code>repeated .greptime.v1.ModifyColumnType modify_column_types = 1;</code>
       */
      public io.greptime.v1.Ddl.ModifyColumnType.Builder addModifyColumnTypesBuilder(
          int index) {
        return getModifyColumnTypesFieldBuilder().addBuilder(
            index, io.greptime.v1.Ddl.ModifyColumnType.getDefaultInstance());
      }
      /**
       * <code>repeated .greptime.v1.ModifyColumnType modify_column_types = 1;</code>
       */
      public java.util.List<io.greptime.v1.Ddl.ModifyColumnType.Builder> 
           getModifyColumnTypesBuilderList() {
        return getModifyColumnTypesFieldBuilder().getBuilderList();
      }
      private com.google.protobuf.RepeatedFieldBuilderV3<
          io.greptime.v1.Ddl.ModifyColumnType, io.greptime.v1.Ddl.ModifyColumnType.Builder, io.greptime.v1.Ddl.ModifyColumnTypeOrBuilder> 
          getModifyColumnTypesFieldBuilder() {
        if (modifyColumnTypesBuilder_ == null) {
          modifyColumnTypesBuilder_ = new com.google.protobuf.RepeatedFieldBuilderV3<
              io.greptime.v1.Ddl.ModifyColumnType, io.greptime.v1.Ddl.ModifyColumnType.Builder, io.greptime.v1.Ddl.ModifyColumnTypeOrBuilder>(
                  modifyColumnTypes_,
                  ((bitField0_ & 0x00000001) != 0),
                  getParentForChildren(),
                  isClean());
          modifyColumnTypes_ = null;
        }
        return modifyColumnTypesBuilder_;
      }
      @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.ModifyColumnTypes)
    }

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

    public static io.greptime.v1.Ddl.ModifyColumnTypes getDefaultInstance() {
      return DEFAULT_INSTANCE;
    }

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

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

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

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

  }

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

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

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

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

              newTableName_ = 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.Ddl.internal_static_greptime_v1_RenameTable_descriptor;
    }

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

    public static final int NEW_TABLE_NAME_FIELD_NUMBER = 1;
    private volatile java.lang.Object newTableName_;
    /**
     * <code>string new_table_name = 1;</code>
     * @return The newTableName.
     */
    @java.lang.Override
    public java.lang.String getNewTableName() {
      java.lang.Object ref = newTableName_;
      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();
        newTableName_ = s;
        return s;
      }
    }
    /**
     * <code>string new_table_name = 1;</code>
     * @return The bytes for newTableName.
     */
    @java.lang.Override
    public com.google.protobuf.ByteString
        getNewTableNameBytes() {
      java.lang.Object ref = newTableName_;
      if (ref instanceof java.lang.String) {
        com.google.protobuf.ByteString b = 
            com.google.protobuf.ByteString.copyFromUtf8(
                (java.lang.String) ref);
        newTableName_ = 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(newTableName_)) {
        com.google.protobuf.GeneratedMessageV3.writeString(output, 1, newTableName_);
      }
      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(newTableName_)) {
        size += com.google.protobuf.GeneratedMessageV3.computeStringSize(1, newTableName_);
      }
      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.Ddl.RenameTable)) {
        return super.equals(obj);
      }
      io.greptime.v1.Ddl.RenameTable other = (io.greptime.v1.Ddl.RenameTable) obj;

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

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

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

      // Construct using io.greptime.v1.Ddl.RenameTable.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();
        newTableName_ = "";

        return this;
      }

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

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

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

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

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

      private java.lang.Object newTableName_ = "";
      /**
       * <code>string new_table_name = 1;</code>
       * @return The newTableName.
       */
      public java.lang.String getNewTableName() {
        java.lang.Object ref = newTableName_;
        if (!(ref instanceof java.lang.String)) {
          com.google.protobuf.ByteString bs =
              (com.google.protobuf.ByteString) ref;
          java.lang.String s = bs.toStringUtf8();
          newTableName_ = s;
          return s;
        } else {
          return (java.lang.String) ref;
        }
      }
      /**
       * <code>string new_table_name = 1;</code>
       * @return The bytes for newTableName.
       */
      public com.google.protobuf.ByteString
          getNewTableNameBytes() {
        java.lang.Object ref = newTableName_;
        if (ref instanceof String) {
          com.google.protobuf.ByteString b = 
              com.google.protobuf.ByteString.copyFromUtf8(
                  (java.lang.String) ref);
          newTableName_ = b;
          return b;
        } else {
          return (com.google.protobuf.ByteString) ref;
        }
      }
      /**
       * <code>string new_table_name = 1;</code>
       * @param value The newTableName to set.
       * @return This builder for chaining.
       */
      public Builder setNewTableName(
          java.lang.String value) {
        if (value == null) {
    throw new NullPointerException();
  }
  
        newTableName_ = value;
        onChanged();
        return this;
      }
      /**
       * <code>string new_table_name = 1;</code>
       * @return This builder for chaining.
       */
      public Builder clearNewTableName() {
        
        newTableName_ = getDefaultInstance().getNewTableName();
        onChanged();
        return this;
      }
      /**
       * <code>string new_table_name = 1;</code>
       * @param value The bytes for newTableName to set.
       * @return This builder for chaining.
       */
      public Builder setNewTableNameBytes(
          com.google.protobuf.ByteString value) {
        if (value == null) {
    throw new NullPointerException();
  }
  checkByteStringIsUtf8(value);
        
        newTableName_ = 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.RenameTable)
    }

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

    public static io.greptime.v1.Ddl.RenameTable getDefaultInstance() {
      return DEFAULT_INSTANCE;
    }

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

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

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

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

  }

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

    /**
     * <code>.greptime.v1.ColumnDef column_def = 1;</code>
     * @return Whether the columnDef field is set.
     */
    boolean hasColumnDef();
    /**
     * <code>.greptime.v1.ColumnDef column_def = 1;</code>
     * @return The columnDef.
     */
    io.greptime.v1.Ddl.ColumnDef getColumnDef();
    /**
     * <code>.greptime.v1.ColumnDef column_def = 1;</code>
     */
    io.greptime.v1.Ddl.ColumnDefOrBuilder getColumnDefOrBuilder();

    /**
     * <code>.greptime.v1.AddColumnLocation location = 3;</code>
     * @return Whether the location field is set.
     */
    boolean hasLocation();
    /**
     * <code>.greptime.v1.AddColumnLocation location = 3;</code>
     * @return The location.
     */
    io.greptime.v1.Ddl.AddColumnLocation getLocation();
    /**
     * <code>.greptime.v1.AddColumnLocation location = 3;</code>
     */
    io.greptime.v1.Ddl.AddColumnLocationOrBuilder getLocationOrBuilder();

    /**
     * <code>bool add_if_not_exists = 4;</code>
     * @return The addIfNotExists.
     */
    boolean getAddIfNotExists();
  }
  /**
   * Protobuf type {@code greptime.v1.AddColumn}
   */
  public static final class AddColumn extends
      com.google.protobuf.GeneratedMessageV3 implements
      // @@protoc_insertion_point(message_implements:greptime.v1.AddColumn)
      AddColumnOrBuilder {
  private static final long serialVersionUID = 0L;
    // Use AddColumn.newBuilder() to construct.
    private AddColumn(com.google.protobuf.GeneratedMessageV3.Builder<?> builder) {
      super(builder);
    }
    private AddColumn() {
    }

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

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

              break;
            }
            case 26: {
              io.greptime.v1.Ddl.AddColumnLocation.Builder subBuilder = null;
              if (location_ != null) {
                subBuilder = location_.toBuilder();
              }
              location_ = input.readMessage(io.greptime.v1.Ddl.AddColumnLocation.parser(), extensionRegistry);
              if (subBuilder != null) {
                subBuilder.mergeFrom(location_);
                location_ = subBuilder.buildPartial();
              }

              break;
            }
            case 32: {

              addIfNotExists_ = 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.Ddl.internal_static_greptime_v1_AddColumn_descriptor;
    }

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

    public static final int COLUMN_DEF_FIELD_NUMBER = 1;
    private io.greptime.v1.Ddl.ColumnDef columnDef_;
    /**
     * <code>.greptime.v1.ColumnDef column_def = 1;</code>
     * @return Whether the columnDef field is set.
     */
    @java.lang.Override
    public boolean hasColumnDef() {
      return columnDef_ != null;
    }
    /**
     * <code>.greptime.v1.ColumnDef column_def = 1;</code>
     * @return The columnDef.
     */
    @java.lang.Override
    public io.greptime.v1.Ddl.ColumnDef getColumnDef() {
      return columnDef_ == null ? io.greptime.v1.Ddl.ColumnDef.getDefaultInstance() : columnDef_;
    }
    /**
     * <code>.greptime.v1.ColumnDef column_def = 1;</code>
     */
    @java.lang.Override
    public io.greptime.v1.Ddl.ColumnDefOrBuilder getColumnDefOrBuilder() {
      return getColumnDef();
    }

    public static final int LOCATION_FIELD_NUMBER = 3;
    private io.greptime.v1.Ddl.AddColumnLocation location_;
    /**
     * <code>.greptime.v1.AddColumnLocation location = 3;</code>
     * @return Whether the location field is set.
     */
    @java.lang.Override
    public boolean hasLocation() {
      return location_ != null;
    }
    /**
     * <code>.greptime.v1.AddColumnLocation location = 3;</code>
     * @return The location.
     */
    @java.lang.Override
    public io.greptime.v1.Ddl.AddColumnLocation getLocation() {
      return location_ == null ? io.greptime.v1.Ddl.AddColumnLocation.getDefaultInstance() : location_;
    }
    /**
     * <code>.greptime.v1.AddColumnLocation location = 3;</code>
     */
    @java.lang.Override
    public io.greptime.v1.Ddl.AddColumnLocationOrBuilder getLocationOrBuilder() {
      return getLocation();
    }

    public static final int ADD_IF_NOT_EXISTS_FIELD_NUMBER = 4;
    private boolean addIfNotExists_;
    /**
     * <code>bool add_if_not_exists = 4;</code>
     * @return The addIfNotExists.
     */
    @java.lang.Override
    public boolean getAddIfNotExists() {
      return addIfNotExists_;
    }

    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 (columnDef_ != null) {
        output.writeMessage(1, getColumnDef());
      }
      if (location_ != null) {
        output.writeMessage(3, getLocation());
      }
      if (addIfNotExists_ != false) {
        output.writeBool(4, addIfNotExists_);
      }
      unknownFields.writeTo(output);
    }

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

      size = 0;
      if (columnDef_ != null) {
        size += com.google.protobuf.CodedOutputStream
          .computeMessageSize(1, getColumnDef());
      }
      if (location_ != null) {
        size += com.google.protobuf.CodedOutputStream
          .computeMessageSize(3, getLocation());
      }
      if (addIfNotExists_ != false) {
        size += com.google.protobuf.CodedOutputStream
          .computeBoolSize(4, addIfNotExists_);
      }
      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.Ddl.AddColumn)) {
        return super.equals(obj);
      }
      io.greptime.v1.Ddl.AddColumn other = (io.greptime.v1.Ddl.AddColumn) obj;

      if (hasColumnDef() != other.hasColumnDef()) return false;
      if (hasColumnDef()) {
        if (!getColumnDef()
            .equals(other.getColumnDef())) return false;
      }
      if (hasLocation() != other.hasLocation()) return false;
      if (hasLocation()) {
        if (!getLocation()
            .equals(other.getLocation())) return false;
      }
      if (getAddIfNotExists()
          != other.getAddIfNotExists()) 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 (hasColumnDef()) {
        hash = (37 * hash) + COLUMN_DEF_FIELD_NUMBER;
        hash = (53 * hash) + getColumnDef().hashCode();
      }
      if (hasLocation()) {
        hash = (37 * hash) + LOCATION_FIELD_NUMBER;
        hash = (53 * hash) + getLocation().hashCode();
      }
      hash = (37 * hash) + ADD_IF_NOT_EXISTS_FIELD_NUMBER;
      hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean(
          getAddIfNotExists());
      hash = (29 * hash) + unknownFields.hashCode();
      memoizedHashCode = hash;
      return hash;
    }

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

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

      // Construct using io.greptime.v1.Ddl.AddColumn.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 (columnDefBuilder_ == null) {
          columnDef_ = null;
        } else {
          columnDef_ = null;
          columnDefBuilder_ = null;
        }
        if (locationBuilder_ == null) {
          location_ = null;
        } else {
          location_ = null;
          locationBuilder_ = null;
        }
        addIfNotExists_ = false;

        return this;
      }

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

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

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

      @java.lang.Override
      public io.greptime.v1.Ddl.AddColumn buildPartial() {
        io.greptime.v1.Ddl.AddColumn result = new io.greptime.v1.Ddl.AddColumn(this);
        if (columnDefBuilder_ == null) {
          result.columnDef_ = columnDef_;
        } else {
          result.columnDef_ = columnDefBuilder_.build();
        }
        if (locationBuilder_ == null) {
          result.location_ = location_;
        } else {
          result.location_ = locationBuilder_.build();
        }
        result.addIfNotExists_ = addIfNotExists_;
        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.Ddl.AddColumn) {
          return mergeFrom((io.greptime.v1.Ddl.AddColumn)other);
        } else {
          super.mergeFrom(other);
          return this;
        }
      }

      public Builder mergeFrom(io.greptime.v1.Ddl.AddColumn other) {
        if (other == io.greptime.v1.Ddl.AddColumn.getDefaultInstance()) return this;
        if (other.hasColumnDef()) {
          mergeColumnDef(other.getColumnDef());
        }
        if (other.hasLocation()) {
          mergeLocation(other.getLocation());
        }
        if (other.getAddIfNotExists() != false) {
          setAddIfNotExists(other.getAddIfNotExists());
        }
        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.Ddl.AddColumn parsedMessage = null;
        try {
          parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry);
        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
          parsedMessage = (io.greptime.v1.Ddl.AddColumn) e.getUnfinishedMessage();
          throw e.unwrapIOException();
        } finally {
          if (parsedMessage != null) {
            mergeFrom(parsedMessage);
          }
        }
        return this;
      }

      private io.greptime.v1.Ddl.ColumnDef columnDef_;
      private com.google.protobuf.SingleFieldBuilderV3<
          io.greptime.v1.Ddl.ColumnDef, io.greptime.v1.Ddl.ColumnDef.Builder, io.greptime.v1.Ddl.ColumnDefOrBuilder> columnDefBuilder_;
      /**
       * <code>.greptime.v1.ColumnDef column_def = 1;</code>
       * @return Whether the columnDef field is set.
       */
      public boolean hasColumnDef() {
        return columnDefBuilder_ != null || columnDef_ != null;
      }
      /**
       * <code>.greptime.v1.ColumnDef column_def = 1;</code>
       * @return The columnDef.
       */
      public io.greptime.v1.Ddl.ColumnDef getColumnDef() {
        if (columnDefBuilder_ == null) {
          return columnDef_ == null ? io.greptime.v1.Ddl.ColumnDef.getDefaultInstance() : columnDef_;
        } else {
          return columnDefBuilder_.getMessage();
        }
      }
      /**
       * <code>.greptime.v1.ColumnDef column_def = 1;</code>
       */
      public Builder setColumnDef(io.greptime.v1.Ddl.ColumnDef value) {
        if (columnDefBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          columnDef_ = value;
          onChanged();
        } else {
          columnDefBuilder_.setMessage(value);
        }

        return this;
      }
      /**
       * <code>.greptime.v1.ColumnDef column_def = 1;</code>
       */
      public Builder setColumnDef(
          io.greptime.v1.Ddl.ColumnDef.Builder builderForValue) {
        if (columnDefBuilder_ == null) {
          columnDef_ = builderForValue.build();
          onChanged();
        } else {
          columnDefBuilder_.setMessage(builderForValue.build());
        }

        return this;
      }
      /**
       * <code>.greptime.v1.ColumnDef column_def = 1;</code>
       */
      public Builder mergeColumnDef(io.greptime.v1.Ddl.ColumnDef value) {
        if (columnDefBuilder_ == null) {
          if (columnDef_ != null) {
            columnDef_ =
              io.greptime.v1.Ddl.ColumnDef.newBuilder(columnDef_).mergeFrom(value).buildPartial();
          } else {
            columnDef_ = value;
          }
          onChanged();
        } else {
          columnDefBuilder_.mergeFrom(value);
        }

        return this;
      }
      /**
       * <code>.greptime.v1.ColumnDef column_def = 1;</code>
       */
      public Builder clearColumnDef() {
        if (columnDefBuilder_ == null) {
          columnDef_ = null;
          onChanged();
        } else {
          columnDef_ = null;
          columnDefBuilder_ = null;
        }

        return this;
      }
      /**
       * <code>.greptime.v1.ColumnDef column_def = 1;</code>
       */
      public io.greptime.v1.Ddl.ColumnDef.Builder getColumnDefBuilder() {
        
        onChanged();
        return getColumnDefFieldBuilder().getBuilder();
      }
      /**
       * <code>.greptime.v1.ColumnDef column_def = 1;</code>
       */
      public io.greptime.v1.Ddl.ColumnDefOrBuilder getColumnDefOrBuilder() {
        if (columnDefBuilder_ != null) {
          return columnDefBuilder_.getMessageOrBuilder();
        } else {
          return columnDef_ == null ?
              io.greptime.v1.Ddl.ColumnDef.getDefaultInstance() : columnDef_;
        }
      }
      /**
       * <code>.greptime.v1.ColumnDef column_def = 1;</code>
       */
      private com.google.protobuf.SingleFieldBuilderV3<
          io.greptime.v1.Ddl.ColumnDef, io.greptime.v1.Ddl.ColumnDef.Builder, io.greptime.v1.Ddl.ColumnDefOrBuilder> 
          getColumnDefFieldBuilder() {
        if (columnDefBuilder_ == null) {
          columnDefBuilder_ = new com.google.protobuf.SingleFieldBuilderV3<
              io.greptime.v1.Ddl.ColumnDef, io.greptime.v1.Ddl.ColumnDef.Builder, io.greptime.v1.Ddl.ColumnDefOrBuilder>(
                  getColumnDef(),
                  getParentForChildren(),
                  isClean());
          columnDef_ = null;
        }
        return columnDefBuilder_;
      }

      private io.greptime.v1.Ddl.AddColumnLocation location_;
      private com.google.protobuf.SingleFieldBuilderV3<
          io.greptime.v1.Ddl.AddColumnLocation, io.greptime.v1.Ddl.AddColumnLocation.Builder, io.greptime.v1.Ddl.AddColumnLocationOrBuilder> locationBuilder_;
      /**
       * <code>.greptime.v1.AddColumnLocation location = 3;</code>
       * @return Whether the location field is set.
       */
      public boolean hasLocation() {
        return locationBuilder_ != null || location_ != null;
      }
      /**
       * <code>.greptime.v1.AddColumnLocation location = 3;</code>
       * @return The location.
       */
      public io.greptime.v1.Ddl.AddColumnLocation getLocation() {
        if (locationBuilder_ == null) {
          return location_ == null ? io.greptime.v1.Ddl.AddColumnLocation.getDefaultInstance() : location_;
        } else {
          return locationBuilder_.getMessage();
        }
      }
      /**
       * <code>.greptime.v1.AddColumnLocation location = 3;</code>
       */
      public Builder setLocation(io.greptime.v1.Ddl.AddColumnLocation value) {
        if (locationBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          location_ = value;
          onChanged();
        } else {
          locationBuilder_.setMessage(value);
        }

        return this;
      }
      /**
       * <code>.greptime.v1.AddColumnLocation location = 3;</code>
       */
      public Builder setLocation(
          io.greptime.v1.Ddl.AddColumnLocation.Builder builderForValue) {
        if (locationBuilder_ == null) {
          location_ = builderForValue.build();
          onChanged();
        } else {
          locationBuilder_.setMessage(builderForValue.build());
        }

        return this;
      }
      /**
       * <code>.greptime.v1.AddColumnLocation location = 3;</code>
       */
      public Builder mergeLocation(io.greptime.v1.Ddl.AddColumnLocation value) {
        if (locationBuilder_ == null) {
          if (location_ != null) {
            location_ =
              io.greptime.v1.Ddl.AddColumnLocation.newBuilder(location_).mergeFrom(value).buildPartial();
          } else {
            location_ = value;
          }
          onChanged();
        } else {
          locationBuilder_.mergeFrom(value);
        }

        return this;
      }
      /**
       * <code>.greptime.v1.AddColumnLocation location = 3;</code>
       */
      public Builder clearLocation() {
        if (locationBuilder_ == null) {
          location_ = null;
          onChanged();
        } else {
          location_ = null;
          locationBuilder_ = null;
        }

        return this;
      }
      /**
       * <code>.greptime.v1.AddColumnLocation location = 3;</code>
       */
      public io.greptime.v1.Ddl.AddColumnLocation.Builder getLocationBuilder() {
        
        onChanged();
        return getLocationFieldBuilder().getBuilder();
      }
      /**
       * <code>.greptime.v1.AddColumnLocation location = 3;</code>
       */
      public io.greptime.v1.Ddl.AddColumnLocationOrBuilder getLocationOrBuilder() {
        if (locationBuilder_ != null) {
          return locationBuilder_.getMessageOrBuilder();
        } else {
          return location_ == null ?
              io.greptime.v1.Ddl.AddColumnLocation.getDefaultInstance() : location_;
        }
      }
      /**
       * <code>.greptime.v1.AddColumnLocation location = 3;</code>
       */
      private com.google.protobuf.SingleFieldBuilderV3<
          io.greptime.v1.Ddl.AddColumnLocation, io.greptime.v1.Ddl.AddColumnLocation.Builder, io.greptime.v1.Ddl.AddColumnLocationOrBuilder> 
          getLocationFieldBuilder() {
        if (locationBuilder_ == null) {
          locationBuilder_ = new com.google.protobuf.SingleFieldBuilderV3<
              io.greptime.v1.Ddl.AddColumnLocation, io.greptime.v1.Ddl.AddColumnLocation.Builder, io.greptime.v1.Ddl.AddColumnLocationOrBuilder>(
                  getLocation(),
                  getParentForChildren(),
                  isClean());
          location_ = null;
        }
        return locationBuilder_;
      }

      private boolean addIfNotExists_ ;
      /**
       * <code>bool add_if_not_exists = 4;</code>
       * @return The addIfNotExists.
       */
      @java.lang.Override
      public boolean getAddIfNotExists() {
        return addIfNotExists_;
      }
      /**
       * <code>bool add_if_not_exists = 4;</code>
       * @param value The addIfNotExists to set.
       * @return This builder for chaining.
       */
      public Builder setAddIfNotExists(boolean value) {
        
        addIfNotExists_ = value;
        onChanged();
        return this;
      }
      /**
       * <code>bool add_if_not_exists = 4;</code>
       * @return This builder for chaining.
       */
      public Builder clearAddIfNotExists() {
        
        addIfNotExists_ = 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.AddColumn)
    }

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

    public static io.greptime.v1.Ddl.AddColumn getDefaultInstance() {
      return DEFAULT_INSTANCE;
    }

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

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

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

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

  }

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

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

    /**
     * <code>.greptime.v1.ColumnDataType target_type = 2;</code>
     * @return The enum numeric value on the wire for targetType.
     */
    int getTargetTypeValue();
    /**
     * <code>.greptime.v1.ColumnDataType target_type = 2;</code>
     * @return The targetType.
     */
    io.greptime.v1.Common.ColumnDataType getTargetType();

    /**
     * <code>.greptime.v1.ColumnDataTypeExtension target_type_extension = 3;</code>
     * @return Whether the targetTypeExtension field is set.
     */
    boolean hasTargetTypeExtension();
    /**
     * <code>.greptime.v1.ColumnDataTypeExtension target_type_extension = 3;</code>
     * @return The targetTypeExtension.
     */
    io.greptime.v1.Common.ColumnDataTypeExtension getTargetTypeExtension();
    /**
     * <code>.greptime.v1.ColumnDataTypeExtension target_type_extension = 3;</code>
     */
    io.greptime.v1.Common.ColumnDataTypeExtensionOrBuilder getTargetTypeExtensionOrBuilder();
  }
  /**
   * Protobuf type {@code greptime.v1.ModifyColumnType}
   */
  public static final class ModifyColumnType extends
      com.google.protobuf.GeneratedMessageV3 implements
      // @@protoc_insertion_point(message_implements:greptime.v1.ModifyColumnType)
      ModifyColumnTypeOrBuilder {
  private static final long serialVersionUID = 0L;
    // Use ModifyColumnType.newBuilder() to construct.
    private ModifyColumnType(com.google.protobuf.GeneratedMessageV3.Builder<?> builder) {
      super(builder);
    }
    private ModifyColumnType() {
      columnName_ = "";
      targetType_ = 0;
    }

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

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

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

              targetType_ = rawValue;
              break;
            }
            case 26: {
              io.greptime.v1.Common.ColumnDataTypeExtension.Builder subBuilder = null;
              if (targetTypeExtension_ != null) {
                subBuilder = targetTypeExtension_.toBuilder();
              }
              targetTypeExtension_ = input.readMessage(io.greptime.v1.Common.ColumnDataTypeExtension.parser(), extensionRegistry);
              if (subBuilder != null) {
                subBuilder.mergeFrom(targetTypeExtension_);
                targetTypeExtension_ = 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.Ddl.internal_static_greptime_v1_ModifyColumnType_descriptor;
    }

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

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

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

    public static final int TARGET_TYPE_EXTENSION_FIELD_NUMBER = 3;
    private io.greptime.v1.Common.ColumnDataTypeExtension targetTypeExtension_;
    /**
     * <code>.greptime.v1.ColumnDataTypeExtension target_type_extension = 3;</code>
     * @return Whether the targetTypeExtension field is set.
     */
    @java.lang.Override
    public boolean hasTargetTypeExtension() {
      return targetTypeExtension_ != null;
    }
    /**
     * <code>.greptime.v1.ColumnDataTypeExtension target_type_extension = 3;</code>
     * @return The targetTypeExtension.
     */
    @java.lang.Override
    public io.greptime.v1.Common.ColumnDataTypeExtension getTargetTypeExtension() {
      return targetTypeExtension_ == null ? io.greptime.v1.Common.ColumnDataTypeExtension.getDefaultInstance() : targetTypeExtension_;
    }
    /**
     * <code>.greptime.v1.ColumnDataTypeExtension target_type_extension = 3;</code>
     */
    @java.lang.Override
    public io.greptime.v1.Common.ColumnDataTypeExtensionOrBuilder getTargetTypeExtensionOrBuilder() {
      return getTargetTypeExtension();
    }

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

      memoizedIsInitialized = 1;
      return true;
    }

    @java.lang.Override
    public void writeTo(com.google.protobuf.CodedOutputStream output)
                        throws java.io.IOException {
      if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(columnName_)) {
        com.google.protobuf.GeneratedMessageV3.writeString(output, 1, columnName_);
      }
      if (targetType_ != io.greptime.v1.Common.ColumnDataType.BOOLEAN.getNumber()) {
        output.writeEnum(2, targetType_);
      }
      if (targetTypeExtension_ != null) {
        output.writeMessage(3, getTargetTypeExtension());
      }
      unknownFields.writeTo(output);
    }

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

      size = 0;
      if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(columnName_)) {
        size += com.google.protobuf.GeneratedMessageV3.computeStringSize(1, columnName_);
      }
      if (targetType_ != io.greptime.v1.Common.ColumnDataType.BOOLEAN.getNumber()) {
        size += com.google.protobuf.CodedOutputStream
          .computeEnumSize(2, targetType_);
      }
      if (targetTypeExtension_ != null) {
        size += com.google.protobuf.CodedOutputStream
          .computeMessageSize(3, getTargetTypeExtension());
      }
      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.Ddl.ModifyColumnType)) {
        return super.equals(obj);
      }
      io.greptime.v1.Ddl.ModifyColumnType other = (io.greptime.v1.Ddl.ModifyColumnType) obj;

      if (!getColumnName()
          .equals(other.getColumnName())) return false;
      if (targetType_ != other.targetType_) return false;
      if (hasTargetTypeExtension() != other.hasTargetTypeExtension()) return false;
      if (hasTargetTypeExtension()) {
        if (!getTargetTypeExtension()
            .equals(other.getTargetTypeExtension())) return false;
      }
      if (!unknownFields.equals(other.unknownFields)) return false;
      return true;
    }

    @java.lang.Override
    public int hashCode() {
      if (memoizedHashCode != 0) {
        return memoizedHashCode;
      }
      int hash = 41;
      hash = (19 * hash) + getDescriptor().hashCode();
      hash = (37 * hash) + COLUMN_NAME_FIELD_NUMBER;
      hash = (53 * hash) + getColumnName().hashCode();
      hash = (37 * hash) + TARGET_TYPE_FIELD_NUMBER;
      hash = (53 * hash) + targetType_;
      if (hasTargetTypeExtension()) {
        hash = (37 * hash) + TARGET_TYPE_EXTENSION_FIELD_NUMBER;
        hash = (53 * hash) + getTargetTypeExtension().hashCode();
      }
      hash = (29 * hash) + unknownFields.hashCode();
      memoizedHashCode = hash;
      return hash;
    }

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

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

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

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

        targetType_ = 0;

        if (targetTypeExtensionBuilder_ == null) {
          targetTypeExtension_ = null;
        } else {
          targetTypeExtension_ = null;
          targetTypeExtensionBuilder_ = null;
        }
        return this;
      }

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

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

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

      @java.lang.Override
      public io.greptime.v1.Ddl.ModifyColumnType buildPartial() {
        io.greptime.v1.Ddl.ModifyColumnType result = new io.greptime.v1.Ddl.ModifyColumnType(this);
        result.columnName_ = columnName_;
        result.targetType_ = targetType_;
        if (targetTypeExtensionBuilder_ == null) {
          result.targetTypeExtension_ = targetTypeExtension_;
        } else {
          result.targetTypeExtension_ = targetTypeExtensionBuilder_.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.Ddl.ModifyColumnType) {
          return mergeFrom((io.greptime.v1.Ddl.ModifyColumnType)other);
        } else {
          super.mergeFrom(other);
          return this;
        }
      }

      public Builder mergeFrom(io.greptime.v1.Ddl.ModifyColumnType other) {
        if (other == io.greptime.v1.Ddl.ModifyColumnType.getDefaultInstance()) return this;
        if (!other.getColumnName().isEmpty()) {
          columnName_ = other.columnName_;
          onChanged();
        }
        if (other.targetType_ != 0) {
          setTargetTypeValue(other.getTargetTypeValue());
        }
        if (other.hasTargetTypeExtension()) {
          mergeTargetTypeExtension(other.getTargetTypeExtension());
        }
        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.Ddl.ModifyColumnType parsedMessage = null;
        try {
          parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry);
        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
          parsedMessage = (io.greptime.v1.Ddl.ModifyColumnType) e.getUnfinishedMessage();
          throw e.unwrapIOException();
        } finally {
          if (parsedMessage != null) {
            mergeFrom(parsedMessage);
          }
        }
        return this;
      }

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

      private int targetType_ = 0;
      /**
       * <code>.greptime.v1.ColumnDataType target_type = 2;</code>
       * @return The enum numeric value on the wire for targetType.
       */
      @java.lang.Override public int getTargetTypeValue() {
        return targetType_;
      }
      /**
       * <code>.greptime.v1.ColumnDataType target_type = 2;</code>
       * @param value The enum numeric value on the wire for targetType to set.
       * @return This builder for chaining.
       */
      public Builder setTargetTypeValue(int value) {
        
        targetType_ = value;
        onChanged();
        return this;
      }
      /**
       * <code>.greptime.v1.ColumnDataType target_type = 2;</code>
       * @return The targetType.
       */
      @java.lang.Override
      public io.greptime.v1.Common.ColumnDataType getTargetType() {
        @SuppressWarnings("deprecation")
        io.greptime.v1.Common.ColumnDataType result = io.greptime.v1.Common.ColumnDataType.valueOf(targetType_);
        return result == null ? io.greptime.v1.Common.ColumnDataType.UNRECOGNIZED : result;
      }
      /**
       * <code>.greptime.v1.ColumnDataType target_type = 2;</code>
       * @param value The targetType to set.
       * @return This builder for chaining.
       */
      public Builder setTargetType(io.greptime.v1.Common.ColumnDataType value) {
        if (value == null) {
          throw new NullPointerException();
        }
        
        targetType_ = value.getNumber();
        onChanged();
        return this;
      }
      /**
       * <code>.greptime.v1.ColumnDataType target_type = 2;</code>
       * @return This builder for chaining.
       */
      public Builder clearTargetType() {
        
        targetType_ = 0;
        onChanged();
        return this;
      }

      private io.greptime.v1.Common.ColumnDataTypeExtension targetTypeExtension_;
      private com.google.protobuf.SingleFieldBuilderV3<
          io.greptime.v1.Common.ColumnDataTypeExtension, io.greptime.v1.Common.ColumnDataTypeExtension.Builder, io.greptime.v1.Common.ColumnDataTypeExtensionOrBuilder> targetTypeExtensionBuilder_;
      /**
       * <code>.greptime.v1.ColumnDataTypeExtension target_type_extension = 3;</code>
       * @return Whether the targetTypeExtension field is set.
       */
      public boolean hasTargetTypeExtension() {
        return targetTypeExtensionBuilder_ != null || targetTypeExtension_ != null;
      }
      /**
       * <code>.greptime.v1.ColumnDataTypeExtension target_type_extension = 3;</code>
       * @return The targetTypeExtension.
       */
      public io.greptime.v1.Common.ColumnDataTypeExtension getTargetTypeExtension() {
        if (targetTypeExtensionBuilder_ == null) {
          return targetTypeExtension_ == null ? io.greptime.v1.Common.ColumnDataTypeExtension.getDefaultInstance() : targetTypeExtension_;
        } else {
          return targetTypeExtensionBuilder_.getMessage();
        }
      }
      /**
       * <code>.greptime.v1.ColumnDataTypeExtension target_type_extension = 3;</code>
       */
      public Builder setTargetTypeExtension(io.greptime.v1.Common.ColumnDataTypeExtension value) {
        if (targetTypeExtensionBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          targetTypeExtension_ = value;
          onChanged();
        } else {
          targetTypeExtensionBuilder_.setMessage(value);
        }

        return this;
      }
      /**
       * <code>.greptime.v1.ColumnDataTypeExtension target_type_extension = 3;</code>
       */
      public Builder setTargetTypeExtension(
          io.greptime.v1.Common.ColumnDataTypeExtension.Builder builderForValue) {
        if (targetTypeExtensionBuilder_ == null) {
          targetTypeExtension_ = builderForValue.build();
          onChanged();
        } else {
          targetTypeExtensionBuilder_.setMessage(builderForValue.build());
        }

        return this;
      }
      /**
       * <code>.greptime.v1.ColumnDataTypeExtension target_type_extension = 3;</code>
       */
      public Builder mergeTargetTypeExtension(io.greptime.v1.Common.ColumnDataTypeExtension value) {
        if (targetTypeExtensionBuilder_ == null) {
          if (targetTypeExtension_ != null) {
            targetTypeExtension_ =
              io.greptime.v1.Common.ColumnDataTypeExtension.newBuilder(targetTypeExtension_).mergeFrom(value).buildPartial();
          } else {
            targetTypeExtension_ = value;
          }
          onChanged();
        } else {
          targetTypeExtensionBuilder_.mergeFrom(value);
        }

        return this;
      }
      /**
       * <code>.greptime.v1.ColumnDataTypeExtension target_type_extension = 3;</code>
       */
      public Builder clearTargetTypeExtension() {
        if (targetTypeExtensionBuilder_ == null) {
          targetTypeExtension_ = null;
          onChanged();
        } else {
          targetTypeExtension_ = null;
          targetTypeExtensionBuilder_ = null;
        }

        return this;
      }
      /**
       * <code>.greptime.v1.ColumnDataTypeExtension target_type_extension = 3;</code>
       */
      public io.greptime.v1.Common.ColumnDataTypeExtension.Builder getTargetTypeExtensionBuilder() {
        
        onChanged();
        return getTargetTypeExtensionFieldBuilder().getBuilder();
      }
      /**
       * <code>.greptime.v1.ColumnDataTypeExtension target_type_extension = 3;</code>
       */
      public io.greptime.v1.Common.ColumnDataTypeExtensionOrBuilder getTargetTypeExtensionOrBuilder() {
        if (targetTypeExtensionBuilder_ != null) {
          return targetTypeExtensionBuilder_.getMessageOrBuilder();
        } else {
          return targetTypeExtension_ == null ?
              io.greptime.v1.Common.ColumnDataTypeExtension.getDefaultInstance() : targetTypeExtension_;
        }
      }
      /**
       * <code>.greptime.v1.ColumnDataTypeExtension target_type_extension = 3;</code>
       */
      private com.google.protobuf.SingleFieldBuilderV3<
          io.greptime.v1.Common.ColumnDataTypeExtension, io.greptime.v1.Common.ColumnDataTypeExtension.Builder, io.greptime.v1.Common.ColumnDataTypeExtensionOrBuilder> 
          getTargetTypeExtensionFieldBuilder() {
        if (targetTypeExtensionBuilder_ == null) {
          targetTypeExtensionBuilder_ = new com.google.protobuf.SingleFieldBuilderV3<
              io.greptime.v1.Common.ColumnDataTypeExtension, io.greptime.v1.Common.ColumnDataTypeExtension.Builder, io.greptime.v1.Common.ColumnDataTypeExtensionOrBuilder>(
                  getTargetTypeExtension(),
                  getParentForChildren(),
                  isClean());
          targetTypeExtension_ = null;
        }
        return targetTypeExtensionBuilder_;
      }
      @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.ModifyColumnType)
    }

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

    public static io.greptime.v1.Ddl.ModifyColumnType getDefaultInstance() {
      return DEFAULT_INSTANCE;
    }

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

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

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

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

  }

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

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

    /**
     * <code>string value = 2;</code>
     * @return The value.
     */
    java.lang.String getValue();
    /**
     * <code>string value = 2;</code>
     * @return The bytes for value.
     */
    com.google.protobuf.ByteString
        getValueBytes();
  }
  /**
   * Protobuf type {@code greptime.v1.Option}
   */
  public static final class Option extends
      com.google.protobuf.GeneratedMessageV3 implements
      // @@protoc_insertion_point(message_implements:greptime.v1.Option)
      OptionOrBuilder {
  private static final long serialVersionUID = 0L;
    // Use Option.newBuilder() to construct.
    private Option(com.google.protobuf.GeneratedMessageV3.Builder<?> builder) {
      super(builder);
    }
    private Option() {
      key_ = "";
      value_ = "";
    }

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

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

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

              value_ = 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.Ddl.internal_static_greptime_v1_Option_descriptor;
    }

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

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

    public static final int VALUE_FIELD_NUMBER = 2;
    private volatile java.lang.Object value_;
    /**
     * <code>string value = 2;</code>
     * @return The value.
     */
    @java.lang.Override
    public java.lang.String getValue() {
      java.lang.Object ref = value_;
      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();
        value_ = s;
        return s;
      }
    }
    /**
     * <code>string value = 2;</code>
     * @return The bytes for value.
     */
    @java.lang.Override
    public com.google.protobuf.ByteString
        getValueBytes() {
      java.lang.Object ref = value_;
      if (ref instanceof java.lang.String) {
        com.google.protobuf.ByteString b = 
            com.google.protobuf.ByteString.copyFromUtf8(
                (java.lang.String) ref);
        value_ = 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(key_)) {
        com.google.protobuf.GeneratedMessageV3.writeString(output, 1, key_);
      }
      if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(value_)) {
        com.google.protobuf.GeneratedMessageV3.writeString(output, 2, value_);
      }
      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(key_)) {
        size += com.google.protobuf.GeneratedMessageV3.computeStringSize(1, key_);
      }
      if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(value_)) {
        size += com.google.protobuf.GeneratedMessageV3.computeStringSize(2, 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.Ddl.Option)) {
        return super.equals(obj);
      }
      io.greptime.v1.Ddl.Option other = (io.greptime.v1.Ddl.Option) obj;

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

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

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

      // Construct using io.greptime.v1.Ddl.Option.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();
        key_ = "";

        value_ = "";

        return this;
      }

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

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

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

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

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

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

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

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

    public static io.greptime.v1.Ddl.Option getDefaultInstance() {
      return DEFAULT_INSTANCE;
    }

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

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

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

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

  }

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

    /**
     * <code>repeated .greptime.v1.Option table_options = 1;</code>
     */
    java.util.List<io.greptime.v1.Ddl.Option> 
        getTableOptionsList();
    /**
     * <code>repeated .greptime.v1.Option table_options = 1;</code>
     */
    io.greptime.v1.Ddl.Option getTableOptions(int index);
    /**
     * <code>repeated .greptime.v1.Option table_options = 1;</code>
     */
    int getTableOptionsCount();
    /**
     * <code>repeated .greptime.v1.Option table_options = 1;</code>
     */
    java.util.List<? extends io.greptime.v1.Ddl.OptionOrBuilder> 
        getTableOptionsOrBuilderList();
    /**
     * <code>repeated .greptime.v1.Option table_options = 1;</code>
     */
    io.greptime.v1.Ddl.OptionOrBuilder getTableOptionsOrBuilder(
        int index);
  }
  /**
   * Protobuf type {@code greptime.v1.SetTableOptions}
   */
  public static final class SetTableOptions extends
      com.google.protobuf.GeneratedMessageV3 implements
      // @@protoc_insertion_point(message_implements:greptime.v1.SetTableOptions)
      SetTableOptionsOrBuilder {
  private static final long serialVersionUID = 0L;
    // Use SetTableOptions.newBuilder() to construct.
    private SetTableOptions(com.google.protobuf.GeneratedMessageV3.Builder<?> builder) {
      super(builder);
    }
    private SetTableOptions() {
      tableOptions_ = java.util.Collections.emptyList();
    }

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

    @java.lang.Override
    public final com.google.protobuf.UnknownFieldSet
    getUnknownFields() {
      return this.unknownFields;
    }
    private SetTableOptions(
        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)) {
                tableOptions_ = new java.util.ArrayList<io.greptime.v1.Ddl.Option>();
                mutable_bitField0_ |= 0x00000001;
              }
              tableOptions_.add(
                  input.readMessage(io.greptime.v1.Ddl.Option.parser(), extensionRegistry));
              break;
            }
            default: {
              if (!parseUnknownField(
                  input, unknownFields, extensionRegistry, tag)) {
                done = true;
              }
              break;
            }
          }
        }
      } catch (com.google.protobuf.InvalidProtocolBufferException e) {
        throw e.setUnfinishedMessage(this);
      } catch (com.google.protobuf.UninitializedMessageException e) {
        throw e.asInvalidProtocolBufferException().setUnfinishedMessage(this);
      } catch (java.io.IOException e) {
        throw new com.google.protobuf.InvalidProtocolBufferException(
            e).setUnfinishedMessage(this);
      } finally {
        if (((mutable_bitField0_ & 0x00000001) != 0)) {
          tableOptions_ = java.util.Collections.unmodifiableList(tableOptions_);
        }
        this.unknownFields = unknownFields.build();
        makeExtensionsImmutable();
      }
    }
    public static final com.google.protobuf.Descriptors.Descriptor
        getDescriptor() {
      return io.greptime.v1.Ddl.internal_static_greptime_v1_SetTableOptions_descriptor;
    }

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

    public static final int TABLE_OPTIONS_FIELD_NUMBER = 1;
    private java.util.List<io.greptime.v1.Ddl.Option> tableOptions_;
    /**
     * <code>repeated .greptime.v1.Option table_options = 1;</code>
     */
    @java.lang.Override
    public java.util.List<io.greptime.v1.Ddl.Option> getTableOptionsList() {
      return tableOptions_;
    }
    /**
     * <code>repeated .greptime.v1.Option table_options = 1;</code>
     */
    @java.lang.Override
    public java.util.List<? extends io.greptime.v1.Ddl.OptionOrBuilder> 
        getTableOptionsOrBuilderList() {
      return tableOptions_;
    }
    /**
     * <code>repeated .greptime.v1.Option table_options = 1;</code>
     */
    @java.lang.Override
    public int getTableOptionsCount() {
      return tableOptions_.size();
    }
    /**
     * <code>repeated .greptime.v1.Option table_options = 1;</code>
     */
    @java.lang.Override
    public io.greptime.v1.Ddl.Option getTableOptions(int index) {
      return tableOptions_.get(index);
    }
    /**
     * <code>repeated .greptime.v1.Option table_options = 1;</code>
     */
    @java.lang.Override
    public io.greptime.v1.Ddl.OptionOrBuilder getTableOptionsOrBuilder(
        int index) {
      return tableOptions_.get(index);
    }

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

      memoizedIsInitialized = 1;
      return true;
    }

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

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

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

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

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

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

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

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

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

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

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

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

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

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

      private java.util.List<io.greptime.v1.Ddl.Option> tableOptions_ =
        java.util.Collections.emptyList();
      private void ensureTableOptionsIsMutable() {
        if (!((bitField0_ & 0x00000001) != 0)) {
          tableOptions_ = new java.util.ArrayList<io.greptime.v1.Ddl.Option>(tableOptions_);
          bitField0_ |= 0x00000001;
         }
      }

      private com.google.protobuf.RepeatedFieldBuilderV3<
          io.greptime.v1.Ddl.Option, io.greptime.v1.Ddl.Option.Builder, io.greptime.v1.Ddl.OptionOrBuilder> tableOptionsBuilder_;

      /**
       * <code>repeated .greptime.v1.Option table_options = 1;</code>
       */
      public java.util.List<io.greptime.v1.Ddl.Option> getTableOptionsList() {
        if (tableOptionsBuilder_ == null) {
          return java.util.Collections.unmodifiableList(tableOptions_);
        } else {
          return tableOptionsBuilder_.getMessageList();
        }
      }
      /**
       * <code>repeated .greptime.v1.Option table_options = 1;</code>
       */
      public int getTableOptionsCount() {
        if (tableOptionsBuilder_ == null) {
          return tableOptions_.size();
        } else {
          return tableOptionsBuilder_.getCount();
        }
      }
      /**
       * <code>repeated .greptime.v1.Option table_options = 1;</code>
       */
      public io.greptime.v1.Ddl.Option getTableOptions(int index) {
        if (tableOptionsBuilder_ == null) {
          return tableOptions_.get(index);
        } else {
          return tableOptionsBuilder_.getMessage(index);
        }
      }
      /**
       * <code>repeated .greptime.v1.Option table_options = 1;</code>
       */
      public Builder setTableOptions(
          int index, io.greptime.v1.Ddl.Option value) {
        if (tableOptionsBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          ensureTableOptionsIsMutable();
          tableOptions_.set(index, value);
          onChanged();
        } else {
          tableOptionsBuilder_.setMessage(index, value);
        }
        return this;
      }
      /**
       * <code>repeated .greptime.v1.Option table_options = 1;</code>
       */
      public Builder setTableOptions(
          int index, io.greptime.v1.Ddl.Option.Builder builderForValue) {
        if (tableOptionsBuilder_ == null) {
          ensureTableOptionsIsMutable();
          tableOptions_.set(index, builderForValue.build());
          onChanged();
        } else {
          tableOptionsBuilder_.setMessage(index, builderForValue.build());
        }
        return this;
      }
      /**
       * <code>repeated .greptime.v1.Option table_options = 1;</code>
       */
      public Builder addTableOptions(io.greptime.v1.Ddl.Option value) {
        if (tableOptionsBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          ensureTableOptionsIsMutable();
          tableOptions_.add(value);
          onChanged();
        } else {
          tableOptionsBuilder_.addMessage(value);
        }
        return this;
      }
      /**
       * <code>repeated .greptime.v1.Option table_options = 1;</code>
       */
      public Builder addTableOptions(
          int index, io.greptime.v1.Ddl.Option value) {
        if (tableOptionsBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          ensureTableOptionsIsMutable();
          tableOptions_.add(index, value);
          onChanged();
        } else {
          tableOptionsBuilder_.addMessage(index, value);
        }
        return this;
      }
      /**
       * <code>repeated .greptime.v1.Option table_options = 1;</code>
       */
      public Builder addTableOptions(
          io.greptime.v1.Ddl.Option.Builder builderForValue) {
        if (tableOptionsBuilder_ == null) {
          ensureTableOptionsIsMutable();
          tableOptions_.add(builderForValue.build());
          onChanged();
        } else {
          tableOptionsBuilder_.addMessage(builderForValue.build());
        }
        return this;
      }
      /**
       * <code>repeated .greptime.v1.Option table_options = 1;</code>
       */
      public Builder addTableOptions(
          int index, io.greptime.v1.Ddl.Option.Builder builderForValue) {
        if (tableOptionsBuilder_ == null) {
          ensureTableOptionsIsMutable();
          tableOptions_.add(index, builderForValue.build());
          onChanged();
        } else {
          tableOptionsBuilder_.addMessage(index, builderForValue.build());
        }
        return this;
      }
      /**
       * <code>repeated .greptime.v1.Option table_options = 1;</code>
       */
      public Builder addAllTableOptions(
          java.lang.Iterable<? extends io.greptime.v1.Ddl.Option> values) {
        if (tableOptionsBuilder_ == null) {
          ensureTableOptionsIsMutable();
          com.google.protobuf.AbstractMessageLite.Builder.addAll(
              values, tableOptions_);
          onChanged();
        } else {
          tableOptionsBuilder_.addAllMessages(values);
        }
        return this;
      }
      /**
       * <code>repeated .greptime.v1.Option table_options = 1;</code>
       */
      public Builder clearTableOptions() {
        if (tableOptionsBuilder_ == null) {
          tableOptions_ = java.util.Collections.emptyList();
          bitField0_ = (bitField0_ & ~0x00000001);
          onChanged();
        } else {
          tableOptionsBuilder_.clear();
        }
        return this;
      }
      /**
       * <code>repeated .greptime.v1.Option table_options = 1;</code>
       */
      public Builder removeTableOptions(int index) {
        if (tableOptionsBuilder_ == null) {
          ensureTableOptionsIsMutable();
          tableOptions_.remove(index);
          onChanged();
        } else {
          tableOptionsBuilder_.remove(index);
        }
        return this;
      }
      /**
       * <code>repeated .greptime.v1.Option table_options = 1;</code>
       */
      public io.greptime.v1.Ddl.Option.Builder getTableOptionsBuilder(
          int index) {
        return getTableOptionsFieldBuilder().getBuilder(index);
      }
      /**
       * <code>repeated .greptime.v1.Option table_options = 1;</code>
       */
      public io.greptime.v1.Ddl.OptionOrBuilder getTableOptionsOrBuilder(
          int index) {
        if (tableOptionsBuilder_ == null) {
          return tableOptions_.get(index);  } else {
          return tableOptionsBuilder_.getMessageOrBuilder(index);
        }
      }
      /**
       * <code>repeated .greptime.v1.Option table_options = 1;</code>
       */
      public java.util.List<? extends io.greptime.v1.Ddl.OptionOrBuilder> 
           getTableOptionsOrBuilderList() {
        if (tableOptionsBuilder_ != null) {
          return tableOptionsBuilder_.getMessageOrBuilderList();
        } else {
          return java.util.Collections.unmodifiableList(tableOptions_);
        }
      }
      /**
       * <code>repeated .greptime.v1.Option table_options = 1;</code>
       */
      public io.greptime.v1.Ddl.Option.Builder addTableOptionsBuilder() {
        return getTableOptionsFieldBuilder().addBuilder(
            io.greptime.v1.Ddl.Option.getDefaultInstance());
      }
      /**
       * <code>repeated .greptime.v1.Option table_options = 1;</code>
       */
      public io.greptime.v1.Ddl.Option.Builder addTableOptionsBuilder(
          int index) {
        return getTableOptionsFieldBuilder().addBuilder(
            index, io.greptime.v1.Ddl.Option.getDefaultInstance());
      }
      /**
       * <code>repeated .greptime.v1.Option table_options = 1;</code>
       */
      public java.util.List<io.greptime.v1.Ddl.Option.Builder> 
           getTableOptionsBuilderList() {
        return getTableOptionsFieldBuilder().getBuilderList();
      }
      private com.google.protobuf.RepeatedFieldBuilderV3<
          io.greptime.v1.Ddl.Option, io.greptime.v1.Ddl.Option.Builder, io.greptime.v1.Ddl.OptionOrBuilder> 
          getTableOptionsFieldBuilder() {
        if (tableOptionsBuilder_ == null) {
          tableOptionsBuilder_ = new com.google.protobuf.RepeatedFieldBuilderV3<
              io.greptime.v1.Ddl.Option, io.greptime.v1.Ddl.Option.Builder, io.greptime.v1.Ddl.OptionOrBuilder>(
                  tableOptions_,
                  ((bitField0_ & 0x00000001) != 0),
                  getParentForChildren(),
                  isClean());
          tableOptions_ = null;
        }
        return tableOptionsBuilder_;
      }
      @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.SetTableOptions)
    }

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

    public static io.greptime.v1.Ddl.SetTableOptions getDefaultInstance() {
      return DEFAULT_INSTANCE;
    }

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

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

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

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

  }

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

    /**
     * <code>repeated string keys = 1;</code>
     * @return A list containing the keys.
     */
    java.util.List<java.lang.String>
        getKeysList();
    /**
     * <code>repeated string keys = 1;</code>
     * @return The count of keys.
     */
    int getKeysCount();
    /**
     * <code>repeated string keys = 1;</code>
     * @param index The index of the element to return.
     * @return The keys at the given index.
     */
    java.lang.String getKeys(int index);
    /**
     * <code>repeated string keys = 1;</code>
     * @param index The index of the value to return.
     * @return The bytes of the keys at the given index.
     */
    com.google.protobuf.ByteString
        getKeysBytes(int index);
  }
  /**
   * Protobuf type {@code greptime.v1.UnsetTableOptions}
   */
  public static final class UnsetTableOptions extends
      com.google.protobuf.GeneratedMessageV3 implements
      // @@protoc_insertion_point(message_implements:greptime.v1.UnsetTableOptions)
      UnsetTableOptionsOrBuilder {
  private static final long serialVersionUID = 0L;
    // Use UnsetTableOptions.newBuilder() to construct.
    private UnsetTableOptions(com.google.protobuf.GeneratedMessageV3.Builder<?> builder) {
      super(builder);
    }
    private UnsetTableOptions() {
      keys_ = com.google.protobuf.LazyStringArrayList.EMPTY;
    }

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

    @java.lang.Override
    public final com.google.protobuf.UnknownFieldSet
    getUnknownFields() {
      return this.unknownFields;
    }
    private UnsetTableOptions(
        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();
              if (!((mutable_bitField0_ & 0x00000001) != 0)) {
                keys_ = new com.google.protobuf.LazyStringArrayList();
                mutable_bitField0_ |= 0x00000001;
              }
              keys_.add(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 {
        if (((mutable_bitField0_ & 0x00000001) != 0)) {
          keys_ = keys_.getUnmodifiableView();
        }
        this.unknownFields = unknownFields.build();
        makeExtensionsImmutable();
      }
    }
    public static final com.google.protobuf.Descriptors.Descriptor
        getDescriptor() {
      return io.greptime.v1.Ddl.internal_static_greptime_v1_UnsetTableOptions_descriptor;
    }

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

    public static final int KEYS_FIELD_NUMBER = 1;
    private com.google.protobuf.LazyStringList keys_;
    /**
     * <code>repeated string keys = 1;</code>
     * @return A list containing the keys.
     */
    public com.google.protobuf.ProtocolStringList
        getKeysList() {
      return keys_;
    }
    /**
     * <code>repeated string keys = 1;</code>
     * @return The count of keys.
     */
    public int getKeysCount() {
      return keys_.size();
    }
    /**
     * <code>repeated string keys = 1;</code>
     * @param index The index of the element to return.
     * @return The keys at the given index.
     */
    public java.lang.String getKeys(int index) {
      return keys_.get(index);
    }
    /**
     * <code>repeated string keys = 1;</code>
     * @param index The index of the value to return.
     * @return The bytes of the keys at the given index.
     */
    public com.google.protobuf.ByteString
        getKeysBytes(int index) {
      return keys_.getByteString(index);
    }

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

      memoizedIsInitialized = 1;
      return true;
    }

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

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

      size = 0;
      {
        int dataSize = 0;
        for (int i = 0; i < keys_.size(); i++) {
          dataSize += computeStringSizeNoTag(keys_.getRaw(i));
        }
        size += dataSize;
        size += 1 * getKeysList().size();
      }
      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.Ddl.UnsetTableOptions)) {
        return super.equals(obj);
      }
      io.greptime.v1.Ddl.UnsetTableOptions other = (io.greptime.v1.Ddl.UnsetTableOptions) obj;

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

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

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

      // Construct using io.greptime.v1.Ddl.UnsetTableOptions.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();
        keys_ = com.google.protobuf.LazyStringArrayList.EMPTY;
        bitField0_ = (bitField0_ & ~0x00000001);
        return this;
      }

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

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

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

      @java.lang.Override
      public io.greptime.v1.Ddl.UnsetTableOptions buildPartial() {
        io.greptime.v1.Ddl.UnsetTableOptions result = new io.greptime.v1.Ddl.UnsetTableOptions(this);
        int from_bitField0_ = bitField0_;
        if (((bitField0_ & 0x00000001) != 0)) {
          keys_ = keys_.getUnmodifiableView();
          bitField0_ = (bitField0_ & ~0x00000001);
        }
        result.keys_ = keys_;
        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.Ddl.UnsetTableOptions) {
          return mergeFrom((io.greptime.v1.Ddl.UnsetTableOptions)other);
        } else {
          super.mergeFrom(other);
          return this;
        }
      }

      public Builder mergeFrom(io.greptime.v1.Ddl.UnsetTableOptions other) {
        if (other == io.greptime.v1.Ddl.UnsetTableOptions.getDefaultInstance()) return this;
        if (!other.keys_.isEmpty()) {
          if (keys_.isEmpty()) {
            keys_ = other.keys_;
            bitField0_ = (bitField0_ & ~0x00000001);
          } else {
            ensureKeysIsMutable();
            keys_.addAll(other.keys_);
          }
          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.Ddl.UnsetTableOptions parsedMessage = null;
        try {
          parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry);
        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
          parsedMessage = (io.greptime.v1.Ddl.UnsetTableOptions) e.getUnfinishedMessage();
          throw e.unwrapIOException();
        } finally {
          if (parsedMessage != null) {
            mergeFrom(parsedMessage);
          }
        }
        return this;
      }
      private int bitField0_;

      private com.google.protobuf.LazyStringList keys_ = com.google.protobuf.LazyStringArrayList.EMPTY;
      private void ensureKeysIsMutable() {
        if (!((bitField0_ & 0x00000001) != 0)) {
          keys_ = new com.google.protobuf.LazyStringArrayList(keys_);
          bitField0_ |= 0x00000001;
         }
      }
      /**
       * <code>repeated string keys = 1;</code>
       * @return A list containing the keys.
       */
      public com.google.protobuf.ProtocolStringList
          getKeysList() {
        return keys_.getUnmodifiableView();
      }
      /**
       * <code>repeated string keys = 1;</code>
       * @return The count of keys.
       */
      public int getKeysCount() {
        return keys_.size();
      }
      /**
       * <code>repeated string keys = 1;</code>
       * @param index The index of the element to return.
       * @return The keys at the given index.
       */
      public java.lang.String getKeys(int index) {
        return keys_.get(index);
      }
      /**
       * <code>repeated string keys = 1;</code>
       * @param index The index of the value to return.
       * @return The bytes of the keys at the given index.
       */
      public com.google.protobuf.ByteString
          getKeysBytes(int index) {
        return keys_.getByteString(index);
      }
      /**
       * <code>repeated string keys = 1;</code>
       * @param index The index to set the value at.
       * @param value The keys to set.
       * @return This builder for chaining.
       */
      public Builder setKeys(
          int index, java.lang.String value) {
        if (value == null) {
    throw new NullPointerException();
  }
  ensureKeysIsMutable();
        keys_.set(index, value);
        onChanged();
        return this;
      }
      /**
       * <code>repeated string keys = 1;</code>
       * @param value The keys to add.
       * @return This builder for chaining.
       */
      public Builder addKeys(
          java.lang.String value) {
        if (value == null) {
    throw new NullPointerException();
  }
  ensureKeysIsMutable();
        keys_.add(value);
        onChanged();
        return this;
      }
      /**
       * <code>repeated string keys = 1;</code>
       * @param values The keys to add.
       * @return This builder for chaining.
       */
      public Builder addAllKeys(
          java.lang.Iterable<java.lang.String> values) {
        ensureKeysIsMutable();
        com.google.protobuf.AbstractMessageLite.Builder.addAll(
            values, keys_);
        onChanged();
        return this;
      }
      /**
       * <code>repeated string keys = 1;</code>
       * @return This builder for chaining.
       */
      public Builder clearKeys() {
        keys_ = com.google.protobuf.LazyStringArrayList.EMPTY;
        bitField0_ = (bitField0_ & ~0x00000001);
        onChanged();
        return this;
      }
      /**
       * <code>repeated string keys = 1;</code>
       * @param value The bytes of the keys to add.
       * @return This builder for chaining.
       */
      public Builder addKeysBytes(
          com.google.protobuf.ByteString value) {
        if (value == null) {
    throw new NullPointerException();
  }
  checkByteStringIsUtf8(value);
        ensureKeysIsMutable();
        keys_.add(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.UnsetTableOptions)
    }

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

    public static io.greptime.v1.Ddl.UnsetTableOptions getDefaultInstance() {
      return DEFAULT_INSTANCE;
    }

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

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

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

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

  }

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

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

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

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

              name_ = 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.Ddl.internal_static_greptime_v1_DropColumn_descriptor;
    }

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

    public static final int NAME_FIELD_NUMBER = 1;
    private volatile java.lang.Object name_;
    /**
     * <code>string name = 1;</code>
     * @return The name.
     */
    @java.lang.Override
    public java.lang.String getName() {
      java.lang.Object ref = name_;
      if (ref instanceof java.lang.String) {
        return (java.lang.String) ref;
      } else {
        com.google.protobuf.ByteString bs = 
            (com.google.protobuf.ByteString) ref;
        java.lang.String s = bs.toStringUtf8();
        name_ = s;
        return s;
      }
    }
    /**
     * <code>string name = 1;</code>
     * @return The bytes for name.
     */
    @java.lang.Override
    public com.google.protobuf.ByteString
        getNameBytes() {
      java.lang.Object ref = name_;
      if (ref instanceof java.lang.String) {
        com.google.protobuf.ByteString b = 
            com.google.protobuf.ByteString.copyFromUtf8(
                (java.lang.String) ref);
        name_ = b;
        return b;
      } else {
        return (com.google.protobuf.ByteString) ref;
      }
    }

    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(name_)) {
        com.google.protobuf.GeneratedMessageV3.writeString(output, 1, name_);
      }
      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(name_)) {
        size += com.google.protobuf.GeneratedMessageV3.computeStringSize(1, name_);
      }
      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.Ddl.DropColumn)) {
        return super.equals(obj);
      }
      io.greptime.v1.Ddl.DropColumn other = (io.greptime.v1.Ddl.DropColumn) obj;

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

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

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

      // Construct using io.greptime.v1.Ddl.DropColumn.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();
        name_ = "";

        return this;
      }

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

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

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

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

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

      private java.lang.Object name_ = "";
      /**
       * <code>string name = 1;</code>
       * @return The name.
       */
      public java.lang.String getName() {
        java.lang.Object ref = name_;
        if (!(ref instanceof java.lang.String)) {
          com.google.protobuf.ByteString bs =
              (com.google.protobuf.ByteString) ref;
          java.lang.String s = bs.toStringUtf8();
          name_ = s;
          return s;
        } else {
          return (java.lang.String) ref;
        }
      }
      /**
       * <code>string name = 1;</code>
       * @return The bytes for name.
       */
      public com.google.protobuf.ByteString
          getNameBytes() {
        java.lang.Object ref = name_;
        if (ref instanceof String) {
          com.google.protobuf.ByteString b = 
              com.google.protobuf.ByteString.copyFromUtf8(
                  (java.lang.String) ref);
          name_ = b;
          return b;
        } else {
          return (com.google.protobuf.ByteString) ref;
        }
      }
      /**
       * <code>string name = 1;</code>
       * @param value The name to set.
       * @return This builder for chaining.
       */
      public Builder setName(
          java.lang.String value) {
        if (value == null) {
    throw new NullPointerException();
  }
  
        name_ = value;
        onChanged();
        return this;
      }
      /**
       * <code>string name = 1;</code>
       * @return This builder for chaining.
       */
      public Builder clearName() {
        
        name_ = getDefaultInstance().getName();
        onChanged();
        return this;
      }
      /**
       * <code>string name = 1;</code>
       * @param value The bytes for name to set.
       * @return This builder for chaining.
       */
      public Builder setNameBytes(
          com.google.protobuf.ByteString value) {
        if (value == null) {
    throw new NullPointerException();
  }
  checkByteStringIsUtf8(value);
        
        name_ = 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.DropColumn)
    }

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

    public static io.greptime.v1.Ddl.DropColumn getDefaultInstance() {
      return DEFAULT_INSTANCE;
    }

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

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

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

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

  }

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

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

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

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

              id_ = 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.Ddl.internal_static_greptime_v1_TableId_descriptor;
    }

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

    public static final int ID_FIELD_NUMBER = 1;
    private int id_;
    /**
     * <code>uint32 id = 1;</code>
     * @return The id.
     */
    @java.lang.Override
    public int getId() {
      return id_;
    }

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

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

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

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

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

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

      // Construct using io.greptime.v1.Ddl.TableId.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();
        id_ = 0;

        return this;
      }

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

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

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

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

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

      private int id_ ;
      /**
       * <code>uint32 id = 1;</code>
       * @return The id.
       */
      @java.lang.Override
      public int getId() {
        return id_;
      }
      /**
       * <code>uint32 id = 1;</code>
       * @param value The id to set.
       * @return This builder for chaining.
       */
      public Builder setId(int value) {
        
        id_ = value;
        onChanged();
        return this;
      }
      /**
       * <code>uint32 id = 1;</code>
       * @return This builder for chaining.
       */
      public Builder clearId() {
        
        id_ = 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.TableId)
    }

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

    public static io.greptime.v1.Ddl.TableId getDefaultInstance() {
      return DEFAULT_INSTANCE;
    }

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

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

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

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

  }

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

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

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

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

              id_ = 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.Ddl.internal_static_greptime_v1_FlowId_descriptor;
    }

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

    public static final int ID_FIELD_NUMBER = 1;
    private int id_;
    /**
     * <code>uint32 id = 1;</code>
     * @return The id.
     */
    @java.lang.Override
    public int getId() {
      return id_;
    }

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

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

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

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

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

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

      // Construct using io.greptime.v1.Ddl.FlowId.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();
        id_ = 0;

        return this;
      }

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

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

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

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

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

      private int id_ ;
      /**
       * <code>uint32 id = 1;</code>
       * @return The id.
       */
      @java.lang.Override
      public int getId() {
        return id_;
      }
      /**
       * <code>uint32 id = 1;</code>
       * @param value The id to set.
       * @return This builder for chaining.
       */
      public Builder setId(int value) {
        
        id_ = value;
        onChanged();
        return this;
      }
      /**
       * <code>uint32 id = 1;</code>
       * @return This builder for chaining.
       */
      public Builder clearId() {
        
        id_ = 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.FlowId)
    }

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

    public static io.greptime.v1.Ddl.FlowId getDefaultInstance() {
      return DEFAULT_INSTANCE;
    }

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

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

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

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

  }

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

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

    /**
     * <code>.greptime.v1.ColumnDataType data_type = 2;</code>
     * @return The enum numeric value on the wire for dataType.
     */
    int getDataTypeValue();
    /**
     * <code>.greptime.v1.ColumnDataType data_type = 2;</code>
     * @return The dataType.
     */
    io.greptime.v1.Common.ColumnDataType getDataType();

    /**
     * <code>bool is_nullable = 3;</code>
     * @return The isNullable.
     */
    boolean getIsNullable();

    /**
     * <code>bytes default_constraint = 4;</code>
     * @return The defaultConstraint.
     */
    com.google.protobuf.ByteString getDefaultConstraint();

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

    /**
     * <code>string comment = 6;</code>
     * @return The comment.
     */
    java.lang.String getComment();
    /**
     * <code>string comment = 6;</code>
     * @return The bytes for comment.
     */
    com.google.protobuf.ByteString
        getCommentBytes();

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

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

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

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

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

              dataType_ = rawValue;
              break;
            }
            case 24: {

              isNullable_ = input.readBool();
              break;
            }
            case 34: {

              defaultConstraint_ = input.readBytes();
              break;
            }
            case 40: {
              int rawValue = input.readEnum();

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

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

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

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

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

    public static final int NAME_FIELD_NUMBER = 1;
    private volatile java.lang.Object name_;
    /**
     * <code>string name = 1;</code>
     * @return The name.
     */
    @java.lang.Override
    public java.lang.String getName() {
      java.lang.Object ref = name_;
      if (ref instanceof java.lang.String) {
        return (java.lang.String) ref;
      } else {
        com.google.protobuf.ByteString bs = 
            (com.google.protobuf.ByteString) ref;
        java.lang.String s = bs.toStringUtf8();
        name_ = s;
        return s;
      }
    }
    /**
     * <code>string name = 1;</code>
     * @return The bytes for name.
     */
    @java.lang.Override
    public com.google.protobuf.ByteString
        getNameBytes() {
      java.lang.Object ref = name_;
      if (ref instanceof java.lang.String) {
        com.google.protobuf.ByteString b = 
            com.google.protobuf.ByteString.copyFromUtf8(
                (java.lang.String) ref);
        name_ = b;
        return b;
      } else {
        return (com.google.protobuf.ByteString) ref;
      }
    }

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

    public static final int IS_NULLABLE_FIELD_NUMBER = 3;
    private boolean isNullable_;
    /**
     * <code>bool is_nullable = 3;</code>
     * @return The isNullable.
     */
    @java.lang.Override
    public boolean getIsNullable() {
      return isNullable_;
    }

    public static final int DEFAULT_CONSTRAINT_FIELD_NUMBER = 4;
    private com.google.protobuf.ByteString defaultConstraint_;
    /**
     * <code>bytes default_constraint = 4;</code>
     * @return The defaultConstraint.
     */
    @java.lang.Override
    public com.google.protobuf.ByteString getDefaultConstraint() {
      return defaultConstraint_;
    }

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

    public static final int COMMENT_FIELD_NUMBER = 6;
    private volatile java.lang.Object comment_;
    /**
     * <code>string comment = 6;</code>
     * @return The comment.
     */
    @java.lang.Override
    public java.lang.String getComment() {
      java.lang.Object ref = comment_;
      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();
        comment_ = s;
        return s;
      }
    }
    /**
     * <code>string comment = 6;</code>
     * @return The bytes for comment.
     */
    @java.lang.Override
    public com.google.protobuf.ByteString
        getCommentBytes() {
      java.lang.Object ref = comment_;
      if (ref instanceof java.lang.String) {
        com.google.protobuf.ByteString b = 
            com.google.protobuf.ByteString.copyFromUtf8(
                (java.lang.String) ref);
        comment_ = b;
        return b;
      } else {
        return (com.google.protobuf.ByteString) ref;
      }
    }

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

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

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

      memoizedIsInitialized = 1;
      return true;
    }

    @java.lang.Override
    public void writeTo(com.google.protobuf.CodedOutputStream output)
                        throws java.io.IOException {
      if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(name_)) {
        com.google.protobuf.GeneratedMessageV3.writeString(output, 1, name_);
      }
      if (dataType_ != io.greptime.v1.Common.ColumnDataType.BOOLEAN.getNumber()) {
        output.writeEnum(2, dataType_);
      }
      if (isNullable_ != false) {
        output.writeBool(3, isNullable_);
      }
      if (!defaultConstraint_.isEmpty()) {
        output.writeBytes(4, defaultConstraint_);
      }
      if (semanticType_ != io.greptime.v1.Common.SemanticType.TAG.getNumber()) {
        output.writeEnum(5, semanticType_);
      }
      if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(comment_)) {
        com.google.protobuf.GeneratedMessageV3.writeString(output, 6, comment_);
      }
      if (datatypeExtension_ != null) {
        output.writeMessage(7, getDatatypeExtension());
      }
      if (options_ != null) {
        output.writeMessage(8, getOptions());
      }
      unknownFields.writeTo(output);
    }

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

      size = 0;
      if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(name_)) {
        size += com.google.protobuf.GeneratedMessageV3.computeStringSize(1, name_);
      }
      if (dataType_ != io.greptime.v1.Common.ColumnDataType.BOOLEAN.getNumber()) {
        size += com.google.protobuf.CodedOutputStream
          .computeEnumSize(2, dataType_);
      }
      if (isNullable_ != false) {
        size += com.google.protobuf.CodedOutputStream
          .computeBoolSize(3, isNullable_);
      }
      if (!defaultConstraint_.isEmpty()) {
        size += com.google.protobuf.CodedOutputStream
          .computeBytesSize(4, defaultConstraint_);
      }
      if (semanticType_ != io.greptime.v1.Common.SemanticType.TAG.getNumber()) {
        size += com.google.protobuf.CodedOutputStream
          .computeEnumSize(5, semanticType_);
      }
      if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(comment_)) {
        size += com.google.protobuf.GeneratedMessageV3.computeStringSize(6, comment_);
      }
      if (datatypeExtension_ != null) {
        size += com.google.protobuf.CodedOutputStream
          .computeMessageSize(7, getDatatypeExtension());
      }
      if (options_ != null) {
        size += com.google.protobuf.CodedOutputStream
          .computeMessageSize(8, getOptions());
      }
      size += unknownFields.getSerializedSize();
      memoizedSize = size;
      return size;
    }

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

      if (!getName()
          .equals(other.getName())) return false;
      if (dataType_ != other.dataType_) return false;
      if (getIsNullable()
          != other.getIsNullable()) return false;
      if (!getDefaultConstraint()
          .equals(other.getDefaultConstraint())) return false;
      if (semanticType_ != other.semanticType_) return false;
      if (!getComment()
          .equals(other.getComment())) return false;
      if (hasDatatypeExtension() != other.hasDatatypeExtension()) return false;
      if (hasDatatypeExtension()) {
        if (!getDatatypeExtension()
            .equals(other.getDatatypeExtension())) return false;
      }
      if (hasOptions() != other.hasOptions()) return false;
      if (hasOptions()) {
        if (!getOptions()
            .equals(other.getOptions())) return false;
      }
      if (!unknownFields.equals(other.unknownFields)) return false;
      return true;
    }

    @java.lang.Override
    public int hashCode() {
      if (memoizedHashCode != 0) {
        return memoizedHashCode;
      }
      int hash = 41;
      hash = (19 * hash) + getDescriptor().hashCode();
      hash = (37 * hash) + NAME_FIELD_NUMBER;
      hash = (53 * hash) + getName().hashCode();
      hash = (37 * hash) + DATA_TYPE_FIELD_NUMBER;
      hash = (53 * hash) + dataType_;
      hash = (37 * hash) + IS_NULLABLE_FIELD_NUMBER;
      hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean(
          getIsNullable());
      hash = (37 * hash) + DEFAULT_CONSTRAINT_FIELD_NUMBER;
      hash = (53 * hash) + getDefaultConstraint().hashCode();
      hash = (37 * hash) + SEMANTIC_TYPE_FIELD_NUMBER;
      hash = (53 * hash) + semanticType_;
      hash = (37 * hash) + COMMENT_FIELD_NUMBER;
      hash = (53 * hash) + getComment().hashCode();
      if (hasDatatypeExtension()) {
        hash = (37 * hash) + DATATYPE_EXTENSION_FIELD_NUMBER;
        hash = (53 * hash) + getDatatypeExtension().hashCode();
      }
      if (hasOptions()) {
        hash = (37 * hash) + OPTIONS_FIELD_NUMBER;
        hash = (53 * hash) + getOptions().hashCode();
      }
      hash = (29 * hash) + unknownFields.hashCode();
      memoizedHashCode = hash;
      return hash;
    }

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

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

      // Construct using io.greptime.v1.Ddl.ColumnDef.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();
        name_ = "";

        dataType_ = 0;

        isNullable_ = false;

        defaultConstraint_ = com.google.protobuf.ByteString.EMPTY;

        semanticType_ = 0;

        comment_ = "";

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

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

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

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

      @java.lang.Override
      public io.greptime.v1.Ddl.ColumnDef buildPartial() {
        io.greptime.v1.Ddl.ColumnDef result = new io.greptime.v1.Ddl.ColumnDef(this);
        result.name_ = name_;
        result.dataType_ = dataType_;
        result.isNullable_ = isNullable_;
        result.defaultConstraint_ = defaultConstraint_;
        result.semanticType_ = semanticType_;
        result.comment_ = comment_;
        if (datatypeExtensionBuilder_ == null) {
          result.datatypeExtension_ = datatypeExtension_;
        } else {
          result.datatypeExtension_ = datatypeExtensionBuilder_.build();
        }
        if (optionsBuilder_ == null) {
          result.options_ = options_;
        } else {
          result.options_ = optionsBuilder_.build();
        }
        onBuilt();
        return result;
      }

      @java.lang.Override
      public Builder clone() {
        return super.clone();
      }
      @java.lang.Override
      public Builder setField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          java.lang.Object value) {
        return super.setField(field, value);
      }
      @java.lang.Override
      public Builder clearField(
          com.google.protobuf.Descriptors.FieldDescriptor field) {
        return super.clearField(field);
      }
      @java.lang.Override
      public Builder clearOneof(
          com.google.protobuf.Descriptors.OneofDescriptor oneof) {
        return super.clearOneof(oneof);
      }
      @java.lang.Override
      public Builder setRepeatedField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          int index, java.lang.Object value) {
        return super.setRepeatedField(field, index, value);
      }
      @java.lang.Override
      public Builder addRepeatedField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          java.lang.Object value) {
        return super.addRepeatedField(field, value);
      }
      @java.lang.Override
      public Builder mergeFrom(com.google.protobuf.Message other) {
        if (other instanceof io.greptime.v1.Ddl.ColumnDef) {
          return mergeFrom((io.greptime.v1.Ddl.ColumnDef)other);
        } else {
          super.mergeFrom(other);
          return this;
        }
      }

      public Builder mergeFrom(io.greptime.v1.Ddl.ColumnDef other) {
        if (other == io.greptime.v1.Ddl.ColumnDef.getDefaultInstance()) return this;
        if (!other.getName().isEmpty()) {
          name_ = other.name_;
          onChanged();
        }
        if (other.dataType_ != 0) {
          setDataTypeValue(other.getDataTypeValue());
        }
        if (other.getIsNullable() != false) {
          setIsNullable(other.getIsNullable());
        }
        if (other.getDefaultConstraint() != com.google.protobuf.ByteString.EMPTY) {
          setDefaultConstraint(other.getDefaultConstraint());
        }
        if (other.semanticType_ != 0) {
          setSemanticTypeValue(other.getSemanticTypeValue());
        }
        if (!other.getComment().isEmpty()) {
          comment_ = other.comment_;
          onChanged();
        }
        if (other.hasDatatypeExtension()) {
          mergeDatatypeExtension(other.getDatatypeExtension());
        }
        if (other.hasOptions()) {
          mergeOptions(other.getOptions());
        }
        this.mergeUnknownFields(other.unknownFields);
        onChanged();
        return this;
      }

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

      @java.lang.Override
      public Builder mergeFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        io.greptime.v1.Ddl.ColumnDef parsedMessage = null;
        try {
          parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry);
        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
          parsedMessage = (io.greptime.v1.Ddl.ColumnDef) e.getUnfinishedMessage();
          throw e.unwrapIOException();
        } finally {
          if (parsedMessage != null) {
            mergeFrom(parsedMessage);
          }
        }
        return this;
      }

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

      private int dataType_ = 0;
      /**
       * <code>.greptime.v1.ColumnDataType data_type = 2;</code>
       * @return The enum numeric value on the wire for dataType.
       */
      @java.lang.Override public int getDataTypeValue() {
        return dataType_;
      }
      /**
       * <code>.greptime.v1.ColumnDataType data_type = 2;</code>
       * @param value The enum numeric value on the wire for dataType to set.
       * @return This builder for chaining.
       */
      public Builder setDataTypeValue(int value) {
        
        dataType_ = value;
        onChanged();
        return this;
      }
      /**
       * <code>.greptime.v1.ColumnDataType data_type = 2;</code>
       * @return The dataType.
       */
      @java.lang.Override
      public io.greptime.v1.Common.ColumnDataType getDataType() {
        @SuppressWarnings("deprecation")
        io.greptime.v1.Common.ColumnDataType result = io.greptime.v1.Common.ColumnDataType.valueOf(dataType_);
        return result == null ? io.greptime.v1.Common.ColumnDataType.UNRECOGNIZED : result;
      }
      /**
       * <code>.greptime.v1.ColumnDataType data_type = 2;</code>
       * @param value The dataType to set.
       * @return This builder for chaining.
       */
      public Builder setDataType(io.greptime.v1.Common.ColumnDataType value) {
        if (value == null) {
          throw new NullPointerException();
        }
        
        dataType_ = value.getNumber();
        onChanged();
        return this;
      }
      /**
       * <code>.greptime.v1.ColumnDataType data_type = 2;</code>
       * @return This builder for chaining.
       */
      public Builder clearDataType() {
        
        dataType_ = 0;
        onChanged();
        return this;
      }

      private boolean isNullable_ ;
      /**
       * <code>bool is_nullable = 3;</code>
       * @return The isNullable.
       */
      @java.lang.Override
      public boolean getIsNullable() {
        return isNullable_;
      }
      /**
       * <code>bool is_nullable = 3;</code>
       * @param value The isNullable to set.
       * @return This builder for chaining.
       */
      public Builder setIsNullable(boolean value) {
        
        isNullable_ = value;
        onChanged();
        return this;
      }
      /**
       * <code>bool is_nullable = 3;</code>
       * @return This builder for chaining.
       */
      public Builder clearIsNullable() {
        
        isNullable_ = false;
        onChanged();
        return this;
      }

      private com.google.protobuf.ByteString defaultConstraint_ = com.google.protobuf.ByteString.EMPTY;
      /**
       * <code>bytes default_constraint = 4;</code>
       * @return The defaultConstraint.
       */
      @java.lang.Override
      public com.google.protobuf.ByteString getDefaultConstraint() {
        return defaultConstraint_;
      }
      /**
       * <code>bytes default_constraint = 4;</code>
       * @param value The defaultConstraint to set.
       * @return This builder for chaining.
       */
      public Builder setDefaultConstraint(com.google.protobuf.ByteString value) {
        if (value == null) {
    throw new NullPointerException();
  }
  
        defaultConstraint_ = value;
        onChanged();
        return this;
      }
      /**
       * <code>bytes default_constraint = 4;</code>
       * @return This builder for chaining.
       */
      public Builder clearDefaultConstraint() {
        
        defaultConstraint_ = getDefaultInstance().getDefaultConstraint();
        onChanged();
        return this;
      }

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

      private java.lang.Object comment_ = "";
      /**
       * <code>string comment = 6;</code>
       * @return The comment.
       */
      public java.lang.String getComment() {
        java.lang.Object ref = comment_;
        if (!(ref instanceof java.lang.String)) {
          com.google.protobuf.ByteString bs =
              (com.google.protobuf.ByteString) ref;
          java.lang.String s = bs.toStringUtf8();
          comment_ = s;
          return s;
        } else {
          return (java.lang.String) ref;
        }
      }
      /**
       * <code>string comment = 6;</code>
       * @return The bytes for comment.
       */
      public com.google.protobuf.ByteString
          getCommentBytes() {
        java.lang.Object ref = comment_;
        if (ref instanceof String) {
          com.google.protobuf.ByteString b = 
              com.google.protobuf.ByteString.copyFromUtf8(
                  (java.lang.String) ref);
          comment_ = b;
          return b;
        } else {
          return (com.google.protobuf.ByteString) ref;
        }
      }
      /**
       * <code>string comment = 6;</code>
       * @param value The comment to set.
       * @return This builder for chaining.
       */
      public Builder setComment(
          java.lang.String value) {
        if (value == null) {
    throw new NullPointerException();
  }
  
        comment_ = value;
        onChanged();
        return this;
      }
      /**
       * <code>string comment = 6;</code>
       * @return This builder for chaining.
       */
      public Builder clearComment() {
        
        comment_ = getDefaultInstance().getComment();
        onChanged();
        return this;
      }
      /**
       * <code>string comment = 6;</code>
       * @param value The bytes for comment to set.
       * @return This builder for chaining.
       */
      public Builder setCommentBytes(
          com.google.protobuf.ByteString value) {
        if (value == null) {
    throw new NullPointerException();
  }
  checkByteStringIsUtf8(value);
        
        comment_ = value;
        onChanged();
        return this;
      }

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

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

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

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

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

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

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

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

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

        return this;
      }
      /**
       * <pre>
       * Additional column options.
       * </pre>
       *
       * <code>.greptime.v1.ColumnOptions options = 8;</code>
       */
      public io.greptime.v1.Common.ColumnOptions.Builder getOptionsBuilder() {
        
        onChanged();
        return getOptionsFieldBuilder().getBuilder();
      }
      /**
       * <pre>
       * Additional column options.
       * </pre>
       *
       * <code>.greptime.v1.ColumnOptions options = 8;</code>
       */
      public io.greptime.v1.Common.ColumnOptionsOrBuilder getOptionsOrBuilder() {
        if (optionsBuilder_ != null) {
          return optionsBuilder_.getMessageOrBuilder();
        } else {
          return options_ == null ?
              io.greptime.v1.Common.ColumnOptions.getDefaultInstance() : options_;
        }
      }
      /**
       * <pre>
       * Additional column options.
       * </pre>
       *
       * <code>.greptime.v1.ColumnOptions options = 8;</code>
       */
      private com.google.protobuf.SingleFieldBuilderV3<
          io.greptime.v1.Common.ColumnOptions, io.greptime.v1.Common.ColumnOptions.Builder, io.greptime.v1.Common.ColumnOptionsOrBuilder> 
          getOptionsFieldBuilder() {
        if (optionsBuilder_ == null) {
          optionsBuilder_ = new com.google.protobuf.SingleFieldBuilderV3<
              io.greptime.v1.Common.ColumnOptions, io.greptime.v1.Common.ColumnOptions.Builder, io.greptime.v1.Common.ColumnOptionsOrBuilder>(
                  getOptions(),
                  getParentForChildren(),
                  isClean());
          options_ = null;
        }
        return optionsBuilder_;
      }
      @java.lang.Override
      public final Builder setUnknownFields(
          final com.google.protobuf.UnknownFieldSet unknownFields) {
        return super.setUnknownFields(unknownFields);
      }

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


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

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

    public static io.greptime.v1.Ddl.ColumnDef getDefaultInstance() {
      return DEFAULT_INSTANCE;
    }

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

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

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

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

  }

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

    /**
     * <code>.greptime.v1.AddColumnLocation.LocationType location_type = 1;</code>
     * @return The enum numeric value on the wire for locationType.
     */
    int getLocationTypeValue();
    /**
     * <code>.greptime.v1.AddColumnLocation.LocationType location_type = 1;</code>
     * @return The locationType.
     */
    io.greptime.v1.Ddl.AddColumnLocation.LocationType getLocationType();

    /**
     * <code>string after_column_name = 2;</code>
     * @return The afterColumnName.
     */
    java.lang.String getAfterColumnName();
    /**
     * <code>string after_column_name = 2;</code>
     * @return The bytes for afterColumnName.
     */
    com.google.protobuf.ByteString
        getAfterColumnNameBytes();
  }
  /**
   * Protobuf type {@code greptime.v1.AddColumnLocation}
   */
  public static final class AddColumnLocation extends
      com.google.protobuf.GeneratedMessageV3 implements
      // @@protoc_insertion_point(message_implements:greptime.v1.AddColumnLocation)
      AddColumnLocationOrBuilder {
  private static final long serialVersionUID = 0L;
    // Use AddColumnLocation.newBuilder() to construct.
    private AddColumnLocation(com.google.protobuf.GeneratedMessageV3.Builder<?> builder) {
      super(builder);
    }
    private AddColumnLocation() {
      locationType_ = 0;
      afterColumnName_ = "";
    }

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

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

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

              afterColumnName_ = 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.Ddl.internal_static_greptime_v1_AddColumnLocation_descriptor;
    }

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

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

      /**
       * <code>FIRST = 0;</code>
       */
      public static final int FIRST_VALUE = 0;
      /**
       * <code>AFTER = 1;</code>
       */
      public static final int AFTER_VALUE = 1;


      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 LocationType 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 LocationType forNumber(int value) {
        switch (value) {
          case 0: return FIRST;
          case 1: return AFTER;
          default: return null;
        }
      }

      public static com.google.protobuf.Internal.EnumLiteMap<LocationType>
          internalGetValueMap() {
        return internalValueMap;
      }
      private static final com.google.protobuf.Internal.EnumLiteMap<
          LocationType> internalValueMap =
            new com.google.protobuf.Internal.EnumLiteMap<LocationType>() {
              public LocationType findValueByNumber(int number) {
                return LocationType.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.Ddl.AddColumnLocation.getDescriptor().getEnumTypes().get(0);
      }

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

      public static LocationType 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 LocationType(int value) {
        this.value = value;
      }

      // @@protoc_insertion_point(enum_scope:greptime.v1.AddColumnLocation.LocationType)
    }

    public static final int LOCATION_TYPE_FIELD_NUMBER = 1;
    private int locationType_;
    /**
     * <code>.greptime.v1.AddColumnLocation.LocationType location_type = 1;</code>
     * @return The enum numeric value on the wire for locationType.
     */
    @java.lang.Override public int getLocationTypeValue() {
      return locationType_;
    }
    /**
     * <code>.greptime.v1.AddColumnLocation.LocationType location_type = 1;</code>
     * @return The locationType.
     */
    @java.lang.Override public io.greptime.v1.Ddl.AddColumnLocation.LocationType getLocationType() {
      @SuppressWarnings("deprecation")
      io.greptime.v1.Ddl.AddColumnLocation.LocationType result = io.greptime.v1.Ddl.AddColumnLocation.LocationType.valueOf(locationType_);
      return result == null ? io.greptime.v1.Ddl.AddColumnLocation.LocationType.UNRECOGNIZED : result;
    }

    public static final int AFTER_COLUMN_NAME_FIELD_NUMBER = 2;
    private volatile java.lang.Object afterColumnName_;
    /**
     * <code>string after_column_name = 2;</code>
     * @return The afterColumnName.
     */
    @java.lang.Override
    public java.lang.String getAfterColumnName() {
      java.lang.Object ref = afterColumnName_;
      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();
        afterColumnName_ = s;
        return s;
      }
    }
    /**
     * <code>string after_column_name = 2;</code>
     * @return The bytes for afterColumnName.
     */
    @java.lang.Override
    public com.google.protobuf.ByteString
        getAfterColumnNameBytes() {
      java.lang.Object ref = afterColumnName_;
      if (ref instanceof java.lang.String) {
        com.google.protobuf.ByteString b = 
            com.google.protobuf.ByteString.copyFromUtf8(
                (java.lang.String) ref);
        afterColumnName_ = 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 (locationType_ != io.greptime.v1.Ddl.AddColumnLocation.LocationType.FIRST.getNumber()) {
        output.writeEnum(1, locationType_);
      }
      if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(afterColumnName_)) {
        com.google.protobuf.GeneratedMessageV3.writeString(output, 2, afterColumnName_);
      }
      unknownFields.writeTo(output);
    }

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

      size = 0;
      if (locationType_ != io.greptime.v1.Ddl.AddColumnLocation.LocationType.FIRST.getNumber()) {
        size += com.google.protobuf.CodedOutputStream
          .computeEnumSize(1, locationType_);
      }
      if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(afterColumnName_)) {
        size += com.google.protobuf.GeneratedMessageV3.computeStringSize(2, afterColumnName_);
      }
      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.Ddl.AddColumnLocation)) {
        return super.equals(obj);
      }
      io.greptime.v1.Ddl.AddColumnLocation other = (io.greptime.v1.Ddl.AddColumnLocation) obj;

      if (locationType_ != other.locationType_) return false;
      if (!getAfterColumnName()
          .equals(other.getAfterColumnName())) 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) + LOCATION_TYPE_FIELD_NUMBER;
      hash = (53 * hash) + locationType_;
      hash = (37 * hash) + AFTER_COLUMN_NAME_FIELD_NUMBER;
      hash = (53 * hash) + getAfterColumnName().hashCode();
      hash = (29 * hash) + unknownFields.hashCode();
      memoizedHashCode = hash;
      return hash;
    }

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

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

      // Construct using io.greptime.v1.Ddl.AddColumnLocation.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();
        locationType_ = 0;

        afterColumnName_ = "";

        return this;
      }

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

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

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

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

      public Builder mergeFrom(io.greptime.v1.Ddl.AddColumnLocation other) {
        if (other == io.greptime.v1.Ddl.AddColumnLocation.getDefaultInstance()) return this;
        if (other.locationType_ != 0) {
          setLocationTypeValue(other.getLocationTypeValue());
        }
        if (!other.getAfterColumnName().isEmpty()) {
          afterColumnName_ = other.afterColumnName_;
          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.Ddl.AddColumnLocation parsedMessage = null;
        try {
          parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry);
        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
          parsedMessage = (io.greptime.v1.Ddl.AddColumnLocation) e.getUnfinishedMessage();
          throw e.unwrapIOException();
        } finally {
          if (parsedMessage != null) {
            mergeFrom(parsedMessage);
          }
        }
        return this;
      }

      private int locationType_ = 0;
      /**
       * <code>.greptime.v1.AddColumnLocation.LocationType location_type = 1;</code>
       * @return The enum numeric value on the wire for locationType.
       */
      @java.lang.Override public int getLocationTypeValue() {
        return locationType_;
      }
      /**
       * <code>.greptime.v1.AddColumnLocation.LocationType location_type = 1;</code>
       * @param value The enum numeric value on the wire for locationType to set.
       * @return This builder for chaining.
       */
      public Builder setLocationTypeValue(int value) {
        
        locationType_ = value;
        onChanged();
        return this;
      }
      /**
       * <code>.greptime.v1.AddColumnLocation.LocationType location_type = 1;</code>
       * @return The locationType.
       */
      @java.lang.Override
      public io.greptime.v1.Ddl.AddColumnLocation.LocationType getLocationType() {
        @SuppressWarnings("deprecation")
        io.greptime.v1.Ddl.AddColumnLocation.LocationType result = io.greptime.v1.Ddl.AddColumnLocation.LocationType.valueOf(locationType_);
        return result == null ? io.greptime.v1.Ddl.AddColumnLocation.LocationType.UNRECOGNIZED : result;
      }
      /**
       * <code>.greptime.v1.AddColumnLocation.LocationType location_type = 1;</code>
       * @param value The locationType to set.
       * @return This builder for chaining.
       */
      public Builder setLocationType(io.greptime.v1.Ddl.AddColumnLocation.LocationType value) {
        if (value == null) {
          throw new NullPointerException();
        }
        
        locationType_ = value.getNumber();
        onChanged();
        return this;
      }
      /**
       * <code>.greptime.v1.AddColumnLocation.LocationType location_type = 1;</code>
       * @return This builder for chaining.
       */
      public Builder clearLocationType() {
        
        locationType_ = 0;
        onChanged();
        return this;
      }

      private java.lang.Object afterColumnName_ = "";
      /**
       * <code>string after_column_name = 2;</code>
       * @return The afterColumnName.
       */
      public java.lang.String getAfterColumnName() {
        java.lang.Object ref = afterColumnName_;
        if (!(ref instanceof java.lang.String)) {
          com.google.protobuf.ByteString bs =
              (com.google.protobuf.ByteString) ref;
          java.lang.String s = bs.toStringUtf8();
          afterColumnName_ = s;
          return s;
        } else {
          return (java.lang.String) ref;
        }
      }
      /**
       * <code>string after_column_name = 2;</code>
       * @return The bytes for afterColumnName.
       */
      public com.google.protobuf.ByteString
          getAfterColumnNameBytes() {
        java.lang.Object ref = afterColumnName_;
        if (ref instanceof String) {
          com.google.protobuf.ByteString b = 
              com.google.protobuf.ByteString.copyFromUtf8(
                  (java.lang.String) ref);
          afterColumnName_ = b;
          return b;
        } else {
          return (com.google.protobuf.ByteString) ref;
        }
      }
      /**
       * <code>string after_column_name = 2;</code>
       * @param value The afterColumnName to set.
       * @return This builder for chaining.
       */
      public Builder setAfterColumnName(
          java.lang.String value) {
        if (value == null) {
    throw new NullPointerException();
  }
  
        afterColumnName_ = value;
        onChanged();
        return this;
      }
      /**
       * <code>string after_column_name = 2;</code>
       * @return This builder for chaining.
       */
      public Builder clearAfterColumnName() {
        
        afterColumnName_ = getDefaultInstance().getAfterColumnName();
        onChanged();
        return this;
      }
      /**
       * <code>string after_column_name = 2;</code>
       * @param value The bytes for afterColumnName to set.
       * @return This builder for chaining.
       */
      public Builder setAfterColumnNameBytes(
          com.google.protobuf.ByteString value) {
        if (value == null) {
    throw new NullPointerException();
  }
  checkByteStringIsUtf8(value);
        
        afterColumnName_ = 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.AddColumnLocation)
    }

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

    public static io.greptime.v1.Ddl.AddColumnLocation getDefaultInstance() {
      return DEFAULT_INSTANCE;
    }

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

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

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

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

  }

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

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

    /**
     * <code>bool enable = 2;</code>
     * @return The enable.
     */
    boolean getEnable();

    /**
     * <code>.greptime.v1.Analyzer analyzer = 3;</code>
     * @return The enum numeric value on the wire for analyzer.
     */
    int getAnalyzerValue();
    /**
     * <code>.greptime.v1.Analyzer analyzer = 3;</code>
     * @return The analyzer.
     */
    io.greptime.v1.Ddl.Analyzer getAnalyzer();

    /**
     * <code>bool case_sensitive = 4;</code>
     * @return The caseSensitive.
     */
    boolean getCaseSensitive();

    /**
     * <code>.greptime.v1.FulltextBackend backend = 5;</code>
     * @return The enum numeric value on the wire for backend.
     */
    int getBackendValue();
    /**
     * <code>.greptime.v1.FulltextBackend backend = 5;</code>
     * @return The backend.
     */
    io.greptime.v1.Ddl.FulltextBackend getBackend();
  }
  /**
   * Protobuf type {@code greptime.v1.SetFulltext}
   */
  public static final class SetFulltext extends
      com.google.protobuf.GeneratedMessageV3 implements
      // @@protoc_insertion_point(message_implements:greptime.v1.SetFulltext)
      SetFulltextOrBuilder {
  private static final long serialVersionUID = 0L;
    // Use SetFulltext.newBuilder() to construct.
    private SetFulltext(com.google.protobuf.GeneratedMessageV3.Builder<?> builder) {
      super(builder);
    }
    private SetFulltext() {
      columnName_ = "";
      analyzer_ = 0;
      backend_ = 0;
    }

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

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

              columnName_ = s;
              break;
            }
            case 16: {

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

              analyzer_ = rawValue;
              break;
            }
            case 32: {

              caseSensitive_ = input.readBool();
              break;
            }
            case 40: {
              int rawValue = input.readEnum();

              backend_ = rawValue;
              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.Ddl.internal_static_greptime_v1_SetFulltext_descriptor;
    }

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

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

    public static final int ENABLE_FIELD_NUMBER = 2;
    private boolean enable_;
    /**
     * <code>bool enable = 2;</code>
     * @return The enable.
     */
    @java.lang.Override
    public boolean getEnable() {
      return enable_;
    }

    public static final int ANALYZER_FIELD_NUMBER = 3;
    private int analyzer_;
    /**
     * <code>.greptime.v1.Analyzer analyzer = 3;</code>
     * @return The enum numeric value on the wire for analyzer.
     */
    @java.lang.Override public int getAnalyzerValue() {
      return analyzer_;
    }
    /**
     * <code>.greptime.v1.Analyzer analyzer = 3;</code>
     * @return The analyzer.
     */
    @java.lang.Override public io.greptime.v1.Ddl.Analyzer getAnalyzer() {
      @SuppressWarnings("deprecation")
      io.greptime.v1.Ddl.Analyzer result = io.greptime.v1.Ddl.Analyzer.valueOf(analyzer_);
      return result == null ? io.greptime.v1.Ddl.Analyzer.UNRECOGNIZED : result;
    }

    public static final int CASE_SENSITIVE_FIELD_NUMBER = 4;
    private boolean caseSensitive_;
    /**
     * <code>bool case_sensitive = 4;</code>
     * @return The caseSensitive.
     */
    @java.lang.Override
    public boolean getCaseSensitive() {
      return caseSensitive_;
    }

    public static final int BACKEND_FIELD_NUMBER = 5;
    private int backend_;
    /**
     * <code>.greptime.v1.FulltextBackend backend = 5;</code>
     * @return The enum numeric value on the wire for backend.
     */
    @java.lang.Override public int getBackendValue() {
      return backend_;
    }
    /**
     * <code>.greptime.v1.FulltextBackend backend = 5;</code>
     * @return The backend.
     */
    @java.lang.Override public io.greptime.v1.Ddl.FulltextBackend getBackend() {
      @SuppressWarnings("deprecation")
      io.greptime.v1.Ddl.FulltextBackend result = io.greptime.v1.Ddl.FulltextBackend.valueOf(backend_);
      return result == null ? io.greptime.v1.Ddl.FulltextBackend.UNRECOGNIZED : result;
    }

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

      memoizedIsInitialized = 1;
      return true;
    }

    @java.lang.Override
    public void writeTo(com.google.protobuf.CodedOutputStream output)
                        throws java.io.IOException {
      if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(columnName_)) {
        com.google.protobuf.GeneratedMessageV3.writeString(output, 1, columnName_);
      }
      if (enable_ != false) {
        output.writeBool(2, enable_);
      }
      if (analyzer_ != io.greptime.v1.Ddl.Analyzer.ENGLISH.getNumber()) {
        output.writeEnum(3, analyzer_);
      }
      if (caseSensitive_ != false) {
        output.writeBool(4, caseSensitive_);
      }
      if (backend_ != io.greptime.v1.Ddl.FulltextBackend.TANTIVY.getNumber()) {
        output.writeEnum(5, backend_);
      }
      unknownFields.writeTo(output);
    }

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

      size = 0;
      if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(columnName_)) {
        size += com.google.protobuf.GeneratedMessageV3.computeStringSize(1, columnName_);
      }
      if (enable_ != false) {
        size += com.google.protobuf.CodedOutputStream
          .computeBoolSize(2, enable_);
      }
      if (analyzer_ != io.greptime.v1.Ddl.Analyzer.ENGLISH.getNumber()) {
        size += com.google.protobuf.CodedOutputStream
          .computeEnumSize(3, analyzer_);
      }
      if (caseSensitive_ != false) {
        size += com.google.protobuf.CodedOutputStream
          .computeBoolSize(4, caseSensitive_);
      }
      if (backend_ != io.greptime.v1.Ddl.FulltextBackend.TANTIVY.getNumber()) {
        size += com.google.protobuf.CodedOutputStream
          .computeEnumSize(5, backend_);
      }
      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.Ddl.SetFulltext)) {
        return super.equals(obj);
      }
      io.greptime.v1.Ddl.SetFulltext other = (io.greptime.v1.Ddl.SetFulltext) obj;

      if (!getColumnName()
          .equals(other.getColumnName())) return false;
      if (getEnable()
          != other.getEnable()) return false;
      if (analyzer_ != other.analyzer_) return false;
      if (getCaseSensitive()
          != other.getCaseSensitive()) return false;
      if (backend_ != other.backend_) return false;
      if (!unknownFields.equals(other.unknownFields)) return false;
      return true;
    }

    @java.lang.Override
    public int hashCode() {
      if (memoizedHashCode != 0) {
        return memoizedHashCode;
      }
      int hash = 41;
      hash = (19 * hash) + getDescriptor().hashCode();
      hash = (37 * hash) + COLUMN_NAME_FIELD_NUMBER;
      hash = (53 * hash) + getColumnName().hashCode();
      hash = (37 * hash) + ENABLE_FIELD_NUMBER;
      hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean(
          getEnable());
      hash = (37 * hash) + ANALYZER_FIELD_NUMBER;
      hash = (53 * hash) + analyzer_;
      hash = (37 * hash) + CASE_SENSITIVE_FIELD_NUMBER;
      hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean(
          getCaseSensitive());
      hash = (37 * hash) + BACKEND_FIELD_NUMBER;
      hash = (53 * hash) + backend_;
      hash = (29 * hash) + unknownFields.hashCode();
      memoizedHashCode = hash;
      return hash;
    }

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

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

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

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

        enable_ = false;

        analyzer_ = 0;

        caseSensitive_ = false;

        backend_ = 0;

        return this;
      }

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

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

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

      @java.lang.Override
      public io.greptime.v1.Ddl.SetFulltext buildPartial() {
        io.greptime.v1.Ddl.SetFulltext result = new io.greptime.v1.Ddl.SetFulltext(this);
        result.columnName_ = columnName_;
        result.enable_ = enable_;
        result.analyzer_ = analyzer_;
        result.caseSensitive_ = caseSensitive_;
        result.backend_ = backend_;
        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.Ddl.SetFulltext) {
          return mergeFrom((io.greptime.v1.Ddl.SetFulltext)other);
        } else {
          super.mergeFrom(other);
          return this;
        }
      }

      public Builder mergeFrom(io.greptime.v1.Ddl.SetFulltext other) {
        if (other == io.greptime.v1.Ddl.SetFulltext.getDefaultInstance()) return this;
        if (!other.getColumnName().isEmpty()) {
          columnName_ = other.columnName_;
          onChanged();
        }
        if (other.getEnable() != false) {
          setEnable(other.getEnable());
        }
        if (other.analyzer_ != 0) {
          setAnalyzerValue(other.getAnalyzerValue());
        }
        if (other.getCaseSensitive() != false) {
          setCaseSensitive(other.getCaseSensitive());
        }
        if (other.backend_ != 0) {
          setBackendValue(other.getBackendValue());
        }
        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.Ddl.SetFulltext parsedMessage = null;
        try {
          parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry);
        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
          parsedMessage = (io.greptime.v1.Ddl.SetFulltext) e.getUnfinishedMessage();
          throw e.unwrapIOException();
        } finally {
          if (parsedMessage != null) {
            mergeFrom(parsedMessage);
          }
        }
        return this;
      }

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

      private boolean enable_ ;
      /**
       * <code>bool enable = 2;</code>
       * @return The enable.
       */
      @java.lang.Override
      public boolean getEnable() {
        return enable_;
      }
      /**
       * <code>bool enable = 2;</code>
       * @param value The enable to set.
       * @return This builder for chaining.
       */
      public Builder setEnable(boolean value) {
        
        enable_ = value;
        onChanged();
        return this;
      }
      /**
       * <code>bool enable = 2;</code>
       * @return This builder for chaining.
       */
      public Builder clearEnable() {
        
        enable_ = false;
        onChanged();
        return this;
      }

      private int analyzer_ = 0;
      /**
       * <code>.greptime.v1.Analyzer analyzer = 3;</code>
       * @return The enum numeric value on the wire for analyzer.
       */
      @java.lang.Override public int getAnalyzerValue() {
        return analyzer_;
      }
      /**
       * <code>.greptime.v1.Analyzer analyzer = 3;</code>
       * @param value The enum numeric value on the wire for analyzer to set.
       * @return This builder for chaining.
       */
      public Builder setAnalyzerValue(int value) {
        
        analyzer_ = value;
        onChanged();
        return this;
      }
      /**
       * <code>.greptime.v1.Analyzer analyzer = 3;</code>
       * @return The analyzer.
       */
      @java.lang.Override
      public io.greptime.v1.Ddl.Analyzer getAnalyzer() {
        @SuppressWarnings("deprecation")
        io.greptime.v1.Ddl.Analyzer result = io.greptime.v1.Ddl.Analyzer.valueOf(analyzer_);
        return result == null ? io.greptime.v1.Ddl.Analyzer.UNRECOGNIZED : result;
      }
      /**
       * <code>.greptime.v1.Analyzer analyzer = 3;</code>
       * @param value The analyzer to set.
       * @return This builder for chaining.
       */
      public Builder setAnalyzer(io.greptime.v1.Ddl.Analyzer value) {
        if (value == null) {
          throw new NullPointerException();
        }
        
        analyzer_ = value.getNumber();
        onChanged();
        return this;
      }
      /**
       * <code>.greptime.v1.Analyzer analyzer = 3;</code>
       * @return This builder for chaining.
       */
      public Builder clearAnalyzer() {
        
        analyzer_ = 0;
        onChanged();
        return this;
      }

      private boolean caseSensitive_ ;
      /**
       * <code>bool case_sensitive = 4;</code>
       * @return The caseSensitive.
       */
      @java.lang.Override
      public boolean getCaseSensitive() {
        return caseSensitive_;
      }
      /**
       * <code>bool case_sensitive = 4;</code>
       * @param value The caseSensitive to set.
       * @return This builder for chaining.
       */
      public Builder setCaseSensitive(boolean value) {
        
        caseSensitive_ = value;
        onChanged();
        return this;
      }
      /**
       * <code>bool case_sensitive = 4;</code>
       * @return This builder for chaining.
       */
      public Builder clearCaseSensitive() {
        
        caseSensitive_ = false;
        onChanged();
        return this;
      }

      private int backend_ = 0;
      /**
       * <code>.greptime.v1.FulltextBackend backend = 5;</code>
       * @return The enum numeric value on the wire for backend.
       */
      @java.lang.Override public int getBackendValue() {
        return backend_;
      }
      /**
       * <code>.greptime.v1.FulltextBackend backend = 5;</code>
       * @param value The enum numeric value on the wire for backend to set.
       * @return This builder for chaining.
       */
      public Builder setBackendValue(int value) {
        
        backend_ = value;
        onChanged();
        return this;
      }
      /**
       * <code>.greptime.v1.FulltextBackend backend = 5;</code>
       * @return The backend.
       */
      @java.lang.Override
      public io.greptime.v1.Ddl.FulltextBackend getBackend() {
        @SuppressWarnings("deprecation")
        io.greptime.v1.Ddl.FulltextBackend result = io.greptime.v1.Ddl.FulltextBackend.valueOf(backend_);
        return result == null ? io.greptime.v1.Ddl.FulltextBackend.UNRECOGNIZED : result;
      }
      /**
       * <code>.greptime.v1.FulltextBackend backend = 5;</code>
       * @param value The backend to set.
       * @return This builder for chaining.
       */
      public Builder setBackend(io.greptime.v1.Ddl.FulltextBackend value) {
        if (value == null) {
          throw new NullPointerException();
        }
        
        backend_ = value.getNumber();
        onChanged();
        return this;
      }
      /**
       * <code>.greptime.v1.FulltextBackend backend = 5;</code>
       * @return This builder for chaining.
       */
      public Builder clearBackend() {
        
        backend_ = 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.SetFulltext)
    }

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

    public static io.greptime.v1.Ddl.SetFulltext getDefaultInstance() {
      return DEFAULT_INSTANCE;
    }

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

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

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

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

  }

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

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

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

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

              columnName_ = s;
              break;
            }
            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.Ddl.internal_static_greptime_v1_UnsetFulltext_descriptor;
    }

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

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

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

      memoizedIsInitialized = 1;
      return true;
    }

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

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

      size = 0;
      if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(columnName_)) {
        size += com.google.protobuf.GeneratedMessageV3.computeStringSize(1, columnName_);
      }
      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.Ddl.UnsetFulltext)) {
        return super.equals(obj);
      }
      io.greptime.v1.Ddl.UnsetFulltext other = (io.greptime.v1.Ddl.UnsetFulltext) obj;

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

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

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

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

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

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

        return this;
      }

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

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

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

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

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

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

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

    public static io.greptime.v1.Ddl.UnsetFulltext getDefaultInstance() {
      return DEFAULT_INSTANCE;
    }

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

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

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

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

  }

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

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

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

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

              columnName_ = s;
              break;
            }
            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.Ddl.internal_static_greptime_v1_SetInverted_descriptor;
    }

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

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

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

      memoizedIsInitialized = 1;
      return true;
    }

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

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

      size = 0;
      if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(columnName_)) {
        size += com.google.protobuf.GeneratedMessageV3.computeStringSize(1, columnName_);
      }
      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.Ddl.SetInverted)) {
        return super.equals(obj);
      }
      io.greptime.v1.Ddl.SetInverted other = (io.greptime.v1.Ddl.SetInverted) obj;

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

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

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

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

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

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

        return this;
      }

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

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

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

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

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

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

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

    public static io.greptime.v1.Ddl.SetInverted getDefaultInstance() {
      return DEFAULT_INSTANCE;
    }

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

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

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

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

  }

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

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

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

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

              columnName_ = s;
              break;
            }
            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.Ddl.internal_static_greptime_v1_UnsetInverted_descriptor;
    }

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

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

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

      memoizedIsInitialized = 1;
      return true;
    }

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

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

      size = 0;
      if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(columnName_)) {
        size += com.google.protobuf.GeneratedMessageV3.computeStringSize(1, columnName_);
      }
      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.Ddl.UnsetInverted)) {
        return super.equals(obj);
      }
      io.greptime.v1.Ddl.UnsetInverted other = (io.greptime.v1.Ddl.UnsetInverted) obj;

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

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

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

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

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

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

        return this;
      }

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

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

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

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

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

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

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

    public static io.greptime.v1.Ddl.UnsetInverted getDefaultInstance() {
      return DEFAULT_INSTANCE;
    }

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

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

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

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

  }

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

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

    /**
     * <code>bool enable = 2;</code>
     * @return The enable.
     */
    boolean getEnable();

    /**
     * <code>uint64 granularity = 3;</code>
     * @return The granularity.
     */
    long getGranularity();

    /**
     * <code>.greptime.v1.SkippingIndexType skipping_index_type = 4;</code>
     * @return The enum numeric value on the wire for skippingIndexType.
     */
    int getSkippingIndexTypeValue();
    /**
     * <code>.greptime.v1.SkippingIndexType skipping_index_type = 4;</code>
     * @return The skippingIndexType.
     */
    io.greptime.v1.Ddl.SkippingIndexType getSkippingIndexType();
  }
  /**
   * Protobuf type {@code greptime.v1.SetSkipping}
   */
  public static final class SetSkipping extends
      com.google.protobuf.GeneratedMessageV3 implements
      // @@protoc_insertion_point(message_implements:greptime.v1.SetSkipping)
      SetSkippingOrBuilder {
  private static final long serialVersionUID = 0L;
    // Use SetSkipping.newBuilder() to construct.
    private SetSkipping(com.google.protobuf.GeneratedMessageV3.Builder<?> builder) {
      super(builder);
    }
    private SetSkipping() {
      columnName_ = "";
      skippingIndexType_ = 0;
    }

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

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

              columnName_ = s;
              break;
            }
            case 16: {

              enable_ = input.readBool();
              break;
            }
            case 24: {

              granularity_ = input.readUInt64();
              break;
            }
            case 32: {
              int rawValue = input.readEnum();

              skippingIndexType_ = rawValue;
              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.Ddl.internal_static_greptime_v1_SetSkipping_descriptor;
    }

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

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

    public static final int ENABLE_FIELD_NUMBER = 2;
    private boolean enable_;
    /**
     * <code>bool enable = 2;</code>
     * @return The enable.
     */
    @java.lang.Override
    public boolean getEnable() {
      return enable_;
    }

    public static final int GRANULARITY_FIELD_NUMBER = 3;
    private long granularity_;
    /**
     * <code>uint64 granularity = 3;</code>
     * @return The granularity.
     */
    @java.lang.Override
    public long getGranularity() {
      return granularity_;
    }

    public static final int SKIPPING_INDEX_TYPE_FIELD_NUMBER = 4;
    private int skippingIndexType_;
    /**
     * <code>.greptime.v1.SkippingIndexType skipping_index_type = 4;</code>
     * @return The enum numeric value on the wire for skippingIndexType.
     */
    @java.lang.Override public int getSkippingIndexTypeValue() {
      return skippingIndexType_;
    }
    /**
     * <code>.greptime.v1.SkippingIndexType skipping_index_type = 4;</code>
     * @return The skippingIndexType.
     */
    @java.lang.Override public io.greptime.v1.Ddl.SkippingIndexType getSkippingIndexType() {
      @SuppressWarnings("deprecation")
      io.greptime.v1.Ddl.SkippingIndexType result = io.greptime.v1.Ddl.SkippingIndexType.valueOf(skippingIndexType_);
      return result == null ? io.greptime.v1.Ddl.SkippingIndexType.UNRECOGNIZED : result;
    }

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

      memoizedIsInitialized = 1;
      return true;
    }

    @java.lang.Override
    public void writeTo(com.google.protobuf.CodedOutputStream output)
                        throws java.io.IOException {
      if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(columnName_)) {
        com.google.protobuf.GeneratedMessageV3.writeString(output, 1, columnName_);
      }
      if (enable_ != false) {
        output.writeBool(2, enable_);
      }
      if (granularity_ != 0L) {
        output.writeUInt64(3, granularity_);
      }
      if (skippingIndexType_ != io.greptime.v1.Ddl.SkippingIndexType.BLOOM_FILTER.getNumber()) {
        output.writeEnum(4, skippingIndexType_);
      }
      unknownFields.writeTo(output);
    }

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

      size = 0;
      if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(columnName_)) {
        size += com.google.protobuf.GeneratedMessageV3.computeStringSize(1, columnName_);
      }
      if (enable_ != false) {
        size += com.google.protobuf.CodedOutputStream
          .computeBoolSize(2, enable_);
      }
      if (granularity_ != 0L) {
        size += com.google.protobuf.CodedOutputStream
          .computeUInt64Size(3, granularity_);
      }
      if (skippingIndexType_ != io.greptime.v1.Ddl.SkippingIndexType.BLOOM_FILTER.getNumber()) {
        size += com.google.protobuf.CodedOutputStream
          .computeEnumSize(4, skippingIndexType_);
      }
      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.Ddl.SetSkipping)) {
        return super.equals(obj);
      }
      io.greptime.v1.Ddl.SetSkipping other = (io.greptime.v1.Ddl.SetSkipping) obj;

      if (!getColumnName()
          .equals(other.getColumnName())) return false;
      if (getEnable()
          != other.getEnable()) return false;
      if (getGranularity()
          != other.getGranularity()) return false;
      if (skippingIndexType_ != other.skippingIndexType_) return false;
      if (!unknownFields.equals(other.unknownFields)) return false;
      return true;
    }

    @java.lang.Override
    public int hashCode() {
      if (memoizedHashCode != 0) {
        return memoizedHashCode;
      }
      int hash = 41;
      hash = (19 * hash) + getDescriptor().hashCode();
      hash = (37 * hash) + COLUMN_NAME_FIELD_NUMBER;
      hash = (53 * hash) + getColumnName().hashCode();
      hash = (37 * hash) + ENABLE_FIELD_NUMBER;
      hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean(
          getEnable());
      hash = (37 * hash) + GRANULARITY_FIELD_NUMBER;
      hash = (53 * hash) + com.google.protobuf.Internal.hashLong(
          getGranularity());
      hash = (37 * hash) + SKIPPING_INDEX_TYPE_FIELD_NUMBER;
      hash = (53 * hash) + skippingIndexType_;
      hash = (29 * hash) + unknownFields.hashCode();
      memoizedHashCode = hash;
      return hash;
    }

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

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

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

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

        enable_ = false;

        granularity_ = 0L;

        skippingIndexType_ = 0;

        return this;
      }

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

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

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

      @java.lang.Override
      public io.greptime.v1.Ddl.SetSkipping buildPartial() {
        io.greptime.v1.Ddl.SetSkipping result = new io.greptime.v1.Ddl.SetSkipping(this);
        result.columnName_ = columnName_;
        result.enable_ = enable_;
        result.granularity_ = granularity_;
        result.skippingIndexType_ = skippingIndexType_;
        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.Ddl.SetSkipping) {
          return mergeFrom((io.greptime.v1.Ddl.SetSkipping)other);
        } else {
          super.mergeFrom(other);
          return this;
        }
      }

      public Builder mergeFrom(io.greptime.v1.Ddl.SetSkipping other) {
        if (other == io.greptime.v1.Ddl.SetSkipping.getDefaultInstance()) return this;
        if (!other.getColumnName().isEmpty()) {
          columnName_ = other.columnName_;
          onChanged();
        }
        if (other.getEnable() != false) {
          setEnable(other.getEnable());
        }
        if (other.getGranularity() != 0L) {
          setGranularity(other.getGranularity());
        }
        if (other.skippingIndexType_ != 0) {
          setSkippingIndexTypeValue(other.getSkippingIndexTypeValue());
        }
        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.Ddl.SetSkipping parsedMessage = null;
        try {
          parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry);
        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
          parsedMessage = (io.greptime.v1.Ddl.SetSkipping) e.getUnfinishedMessage();
          throw e.unwrapIOException();
        } finally {
          if (parsedMessage != null) {
            mergeFrom(parsedMessage);
          }
        }
        return this;
      }

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

      private boolean enable_ ;
      /**
       * <code>bool enable = 2;</code>
       * @return The enable.
       */
      @java.lang.Override
      public boolean getEnable() {
        return enable_;
      }
      /**
       * <code>bool enable = 2;</code>
       * @param value The enable to set.
       * @return This builder for chaining.
       */
      public Builder setEnable(boolean value) {
        
        enable_ = value;
        onChanged();
        return this;
      }
      /**
       * <code>bool enable = 2;</code>
       * @return This builder for chaining.
       */
      public Builder clearEnable() {
        
        enable_ = false;
        onChanged();
        return this;
      }

      private long granularity_ ;
      /**
       * <code>uint64 granularity = 3;</code>
       * @return The granularity.
       */
      @java.lang.Override
      public long getGranularity() {
        return granularity_;
      }
      /**
       * <code>uint64 granularity = 3;</code>
       * @param value The granularity to set.
       * @return This builder for chaining.
       */
      public Builder setGranularity(long value) {
        
        granularity_ = value;
        onChanged();
        return this;
      }
      /**
       * <code>uint64 granularity = 3;</code>
       * @return This builder for chaining.
       */
      public Builder clearGranularity() {
        
        granularity_ = 0L;
        onChanged();
        return this;
      }

      private int skippingIndexType_ = 0;
      /**
       * <code>.greptime.v1.SkippingIndexType skipping_index_type = 4;</code>
       * @return The enum numeric value on the wire for skippingIndexType.
       */
      @java.lang.Override public int getSkippingIndexTypeValue() {
        return skippingIndexType_;
      }
      /**
       * <code>.greptime.v1.SkippingIndexType skipping_index_type = 4;</code>
       * @param value The enum numeric value on the wire for skippingIndexType to set.
       * @return This builder for chaining.
       */
      public Builder setSkippingIndexTypeValue(int value) {
        
        skippingIndexType_ = value;
        onChanged();
        return this;
      }
      /**
       * <code>.greptime.v1.SkippingIndexType skipping_index_type = 4;</code>
       * @return The skippingIndexType.
       */
      @java.lang.Override
      public io.greptime.v1.Ddl.SkippingIndexType getSkippingIndexType() {
        @SuppressWarnings("deprecation")
        io.greptime.v1.Ddl.SkippingIndexType result = io.greptime.v1.Ddl.SkippingIndexType.valueOf(skippingIndexType_);
        return result == null ? io.greptime.v1.Ddl.SkippingIndexType.UNRECOGNIZED : result;
      }
      /**
       * <code>.greptime.v1.SkippingIndexType skipping_index_type = 4;</code>
       * @param value The skippingIndexType to set.
       * @return This builder for chaining.
       */
      public Builder setSkippingIndexType(io.greptime.v1.Ddl.SkippingIndexType value) {
        if (value == null) {
          throw new NullPointerException();
        }
        
        skippingIndexType_ = value.getNumber();
        onChanged();
        return this;
      }
      /**
       * <code>.greptime.v1.SkippingIndexType skipping_index_type = 4;</code>
       * @return This builder for chaining.
       */
      public Builder clearSkippingIndexType() {
        
        skippingIndexType_ = 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.SetSkipping)
    }

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

    public static io.greptime.v1.Ddl.SetSkipping getDefaultInstance() {
      return DEFAULT_INSTANCE;
    }

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

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

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

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

  }

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

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

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

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

              columnName_ = s;
              break;
            }
            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.Ddl.internal_static_greptime_v1_UnsetSkipping_descriptor;
    }

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

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

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

      memoizedIsInitialized = 1;
      return true;
    }

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

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

      size = 0;
      if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(columnName_)) {
        size += com.google.protobuf.GeneratedMessageV3.computeStringSize(1, columnName_);
      }
      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.Ddl.UnsetSkipping)) {
        return super.equals(obj);
      }
      io.greptime.v1.Ddl.UnsetSkipping other = (io.greptime.v1.Ddl.UnsetSkipping) obj;

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

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

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

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

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

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

        return this;
      }

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

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

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

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

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

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

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

    public static io.greptime.v1.Ddl.UnsetSkipping getDefaultInstance() {
      return DEFAULT_INSTANCE;
    }

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

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

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

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

  }

  public interface AlterDatabaseExprOrBuilder extends
      // @@protoc_insertion_point(interface_extends:greptime.v1.AlterDatabaseExpr)
      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>.greptime.v1.SetDatabaseOptions set_database_options = 3;</code>
     * @return Whether the setDatabaseOptions field is set.
     */
    boolean hasSetDatabaseOptions();
    /**
     * <code>.greptime.v1.SetDatabaseOptions set_database_options = 3;</code>
     * @return The setDatabaseOptions.
     */
    io.greptime.v1.Ddl.SetDatabaseOptions getSetDatabaseOptions();
    /**
     * <code>.greptime.v1.SetDatabaseOptions set_database_options = 3;</code>
     */
    io.greptime.v1.Ddl.SetDatabaseOptionsOrBuilder getSetDatabaseOptionsOrBuilder();

    /**
     * <code>.greptime.v1.UnsetDatabaseOptions unset_database_options = 4;</code>
     * @return Whether the unsetDatabaseOptions field is set.
     */
    boolean hasUnsetDatabaseOptions();
    /**
     * <code>.greptime.v1.UnsetDatabaseOptions unset_database_options = 4;</code>
     * @return The unsetDatabaseOptions.
     */
    io.greptime.v1.Ddl.UnsetDatabaseOptions getUnsetDatabaseOptions();
    /**
     * <code>.greptime.v1.UnsetDatabaseOptions unset_database_options = 4;</code>
     */
    io.greptime.v1.Ddl.UnsetDatabaseOptionsOrBuilder getUnsetDatabaseOptionsOrBuilder();

    public io.greptime.v1.Ddl.AlterDatabaseExpr.KindCase getKindCase();
  }
  /**
   * Protobuf type {@code greptime.v1.AlterDatabaseExpr}
   */
  public static final class AlterDatabaseExpr extends
      com.google.protobuf.GeneratedMessageV3 implements
      // @@protoc_insertion_point(message_implements:greptime.v1.AlterDatabaseExpr)
      AlterDatabaseExprOrBuilder {
  private static final long serialVersionUID = 0L;
    // Use AlterDatabaseExpr.newBuilder() to construct.
    private AlterDatabaseExpr(com.google.protobuf.GeneratedMessageV3.Builder<?> builder) {
      super(builder);
    }
    private AlterDatabaseExpr() {
      catalogName_ = "";
      schemaName_ = "";
    }

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

    @java.lang.Override
    public final com.google.protobuf.UnknownFieldSet
    getUnknownFields() {
      return this.unknownFields;
    }
    private AlterDatabaseExpr(
        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: {
              io.greptime.v1.Ddl.SetDatabaseOptions.Builder subBuilder = null;
              if (kindCase_ == 3) {
                subBuilder = ((io.greptime.v1.Ddl.SetDatabaseOptions) kind_).toBuilder();
              }
              kind_ =
                  input.readMessage(io.greptime.v1.Ddl.SetDatabaseOptions.parser(), extensionRegistry);
              if (subBuilder != null) {
                subBuilder.mergeFrom((io.greptime.v1.Ddl.SetDatabaseOptions) kind_);
                kind_ = subBuilder.buildPartial();
              }
              kindCase_ = 3;
              break;
            }
            case 34: {
              io.greptime.v1.Ddl.UnsetDatabaseOptions.Builder subBuilder = null;
              if (kindCase_ == 4) {
                subBuilder = ((io.greptime.v1.Ddl.UnsetDatabaseOptions) kind_).toBuilder();
              }
              kind_ =
                  input.readMessage(io.greptime.v1.Ddl.UnsetDatabaseOptions.parser(), extensionRegistry);
              if (subBuilder != null) {
                subBuilder.mergeFrom((io.greptime.v1.Ddl.UnsetDatabaseOptions) kind_);
                kind_ = subBuilder.buildPartial();
              }
              kindCase_ = 4;
              break;
            }
            default: {
              if (!parseUnknownField(
                  input, unknownFields, extensionRegistry, tag)) {
                done = true;
              }
              break;
            }
          }
        }
      } catch (com.google.protobuf.InvalidProtocolBufferException e) {
        throw e.setUnfinishedMessage(this);
      } catch (com.google.protobuf.UninitializedMessageException e) {
        throw e.asInvalidProtocolBufferException().setUnfinishedMessage(this);
      } catch (java.io.IOException e) {
        throw new com.google.protobuf.InvalidProtocolBufferException(
            e).setUnfinishedMessage(this);
      } finally {
        this.unknownFields = unknownFields.build();
        makeExtensionsImmutable();
      }
    }
    public static final com.google.protobuf.Descriptors.Descriptor
        getDescriptor() {
      return io.greptime.v1.Ddl.internal_static_greptime_v1_AlterDatabaseExpr_descriptor;
    }

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

    private int kindCase_ = 0;
    private java.lang.Object kind_;
    public enum KindCase
        implements com.google.protobuf.Internal.EnumLite,
            com.google.protobuf.AbstractMessage.InternalOneOfEnum {
      SET_DATABASE_OPTIONS(3),
      UNSET_DATABASE_OPTIONS(4),
      KIND_NOT_SET(0);
      private final int value;
      private KindCase(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 KindCase valueOf(int value) {
        return forNumber(value);
      }

      public static KindCase forNumber(int value) {
        switch (value) {
          case 3: return SET_DATABASE_OPTIONS;
          case 4: return UNSET_DATABASE_OPTIONS;
          case 0: return KIND_NOT_SET;
          default: return null;
        }
      }
      public int getNumber() {
        return this.value;
      }
    };

    public KindCase
    getKindCase() {
      return KindCase.forNumber(
          kindCase_);
    }

    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 SET_DATABASE_OPTIONS_FIELD_NUMBER = 3;
    /**
     * <code>.greptime.v1.SetDatabaseOptions set_database_options = 3;</code>
     * @return Whether the setDatabaseOptions field is set.
     */
    @java.lang.Override
    public boolean hasSetDatabaseOptions() {
      return kindCase_ == 3;
    }
    /**
     * <code>.greptime.v1.SetDatabaseOptions set_database_options = 3;</code>
     * @return The setDatabaseOptions.
     */
    @java.lang.Override
    public io.greptime.v1.Ddl.SetDatabaseOptions getSetDatabaseOptions() {
      if (kindCase_ == 3) {
         return (io.greptime.v1.Ddl.SetDatabaseOptions) kind_;
      }
      return io.greptime.v1.Ddl.SetDatabaseOptions.getDefaultInstance();
    }
    /**
     * <code>.greptime.v1.SetDatabaseOptions set_database_options = 3;</code>
     */
    @java.lang.Override
    public io.greptime.v1.Ddl.SetDatabaseOptionsOrBuilder getSetDatabaseOptionsOrBuilder() {
      if (kindCase_ == 3) {
         return (io.greptime.v1.Ddl.SetDatabaseOptions) kind_;
      }
      return io.greptime.v1.Ddl.SetDatabaseOptions.getDefaultInstance();
    }

    public static final int UNSET_DATABASE_OPTIONS_FIELD_NUMBER = 4;
    /**
     * <code>.greptime.v1.UnsetDatabaseOptions unset_database_options = 4;</code>
     * @return Whether the unsetDatabaseOptions field is set.
     */
    @java.lang.Override
    public boolean hasUnsetDatabaseOptions() {
      return kindCase_ == 4;
    }
    /**
     * <code>.greptime.v1.UnsetDatabaseOptions unset_database_options = 4;</code>
     * @return The unsetDatabaseOptions.
     */
    @java.lang.Override
    public io.greptime.v1.Ddl.UnsetDatabaseOptions getUnsetDatabaseOptions() {
      if (kindCase_ == 4) {
         return (io.greptime.v1.Ddl.UnsetDatabaseOptions) kind_;
      }
      return io.greptime.v1.Ddl.UnsetDatabaseOptions.getDefaultInstance();
    }
    /**
     * <code>.greptime.v1.UnsetDatabaseOptions unset_database_options = 4;</code>
     */
    @java.lang.Override
    public io.greptime.v1.Ddl.UnsetDatabaseOptionsOrBuilder getUnsetDatabaseOptionsOrBuilder() {
      if (kindCase_ == 4) {
         return (io.greptime.v1.Ddl.UnsetDatabaseOptions) kind_;
      }
      return io.greptime.v1.Ddl.UnsetDatabaseOptions.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 (!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 (kindCase_ == 3) {
        output.writeMessage(3, (io.greptime.v1.Ddl.SetDatabaseOptions) kind_);
      }
      if (kindCase_ == 4) {
        output.writeMessage(4, (io.greptime.v1.Ddl.UnsetDatabaseOptions) kind_);
      }
      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 (kindCase_ == 3) {
        size += com.google.protobuf.CodedOutputStream
          .computeMessageSize(3, (io.greptime.v1.Ddl.SetDatabaseOptions) kind_);
      }
      if (kindCase_ == 4) {
        size += com.google.protobuf.CodedOutputStream
          .computeMessageSize(4, (io.greptime.v1.Ddl.UnsetDatabaseOptions) kind_);
      }
      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.Ddl.AlterDatabaseExpr)) {
        return super.equals(obj);
      }
      io.greptime.v1.Ddl.AlterDatabaseExpr other = (io.greptime.v1.Ddl.AlterDatabaseExpr) obj;

      if (!getCatalogName()
          .equals(other.getCatalogName())) return false;
      if (!getSchemaName()
          .equals(other.getSchemaName())) return false;
      if (!getKindCase().equals(other.getKindCase())) return false;
      switch (kindCase_) {
        case 3:
          if (!getSetDatabaseOptions()
              .equals(other.getSetDatabaseOptions())) return false;
          break;
        case 4:
          if (!getUnsetDatabaseOptions()
              .equals(other.getUnsetDatabaseOptions())) 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();
      hash = (37 * hash) + CATALOG_NAME_FIELD_NUMBER;
      hash = (53 * hash) + getCatalogName().hashCode();
      hash = (37 * hash) + SCHEMA_NAME_FIELD_NUMBER;
      hash = (53 * hash) + getSchemaName().hashCode();
      switch (kindCase_) {
        case 3:
          hash = (37 * hash) + SET_DATABASE_OPTIONS_FIELD_NUMBER;
          hash = (53 * hash) + getSetDatabaseOptions().hashCode();
          break;
        case 4:
          hash = (37 * hash) + UNSET_DATABASE_OPTIONS_FIELD_NUMBER;
          hash = (53 * hash) + getUnsetDatabaseOptions().hashCode();
          break;
        case 0:
        default:
      }
      hash = (29 * hash) + unknownFields.hashCode();
      memoizedHashCode = hash;
      return hash;
    }

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

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

      // Construct using io.greptime.v1.Ddl.AlterDatabaseExpr.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_ = "";

        kindCase_ = 0;
        kind_ = null;
        return this;
      }

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

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

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

      @java.lang.Override
      public io.greptime.v1.Ddl.AlterDatabaseExpr buildPartial() {
        io.greptime.v1.Ddl.AlterDatabaseExpr result = new io.greptime.v1.Ddl.AlterDatabaseExpr(this);
        result.catalogName_ = catalogName_;
        result.schemaName_ = schemaName_;
        if (kindCase_ == 3) {
          if (setDatabaseOptionsBuilder_ == null) {
            result.kind_ = kind_;
          } else {
            result.kind_ = setDatabaseOptionsBuilder_.build();
          }
        }
        if (kindCase_ == 4) {
          if (unsetDatabaseOptionsBuilder_ == null) {
            result.kind_ = kind_;
          } else {
            result.kind_ = unsetDatabaseOptionsBuilder_.build();
          }
        }
        result.kindCase_ = kindCase_;
        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.Ddl.AlterDatabaseExpr) {
          return mergeFrom((io.greptime.v1.Ddl.AlterDatabaseExpr)other);
        } else {
          super.mergeFrom(other);
          return this;
        }
      }

      public Builder mergeFrom(io.greptime.v1.Ddl.AlterDatabaseExpr other) {
        if (other == io.greptime.v1.Ddl.AlterDatabaseExpr.getDefaultInstance()) return this;
        if (!other.getCatalogName().isEmpty()) {
          catalogName_ = other.catalogName_;
          onChanged();
        }
        if (!other.getSchemaName().isEmpty()) {
          schemaName_ = other.schemaName_;
          onChanged();
        }
        switch (other.getKindCase()) {
          case SET_DATABASE_OPTIONS: {
            mergeSetDatabaseOptions(other.getSetDatabaseOptions());
            break;
          }
          case UNSET_DATABASE_OPTIONS: {
            mergeUnsetDatabaseOptions(other.getUnsetDatabaseOptions());
            break;
          }
          case KIND_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.Ddl.AlterDatabaseExpr parsedMessage = null;
        try {
          parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry);
        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
          parsedMessage = (io.greptime.v1.Ddl.AlterDatabaseExpr) e.getUnfinishedMessage();
          throw e.unwrapIOException();
        } finally {
          if (parsedMessage != null) {
            mergeFrom(parsedMessage);
          }
        }
        return this;
      }
      private int kindCase_ = 0;
      private java.lang.Object kind_;
      public KindCase
          getKindCase() {
        return KindCase.forNumber(
            kindCase_);
      }

      public Builder clearKind() {
        kindCase_ = 0;
        kind_ = null;
        onChanged();
        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 com.google.protobuf.SingleFieldBuilderV3<
          io.greptime.v1.Ddl.SetDatabaseOptions, io.greptime.v1.Ddl.SetDatabaseOptions.Builder, io.greptime.v1.Ddl.SetDatabaseOptionsOrBuilder> setDatabaseOptionsBuilder_;
      /**
       * <code>.greptime.v1.SetDatabaseOptions set_database_options = 3;</code>
       * @return Whether the setDatabaseOptions field is set.
       */
      @java.lang.Override
      public boolean hasSetDatabaseOptions() {
        return kindCase_ == 3;
      }
      /**
       * <code>.greptime.v1.SetDatabaseOptions set_database_options = 3;</code>
       * @return The setDatabaseOptions.
       */
      @java.lang.Override
      public io.greptime.v1.Ddl.SetDatabaseOptions getSetDatabaseOptions() {
        if (setDatabaseOptionsBuilder_ == null) {
          if (kindCase_ == 3) {
            return (io.greptime.v1.Ddl.SetDatabaseOptions) kind_;
          }
          return io.greptime.v1.Ddl.SetDatabaseOptions.getDefaultInstance();
        } else {
          if (kindCase_ == 3) {
            return setDatabaseOptionsBuilder_.getMessage();
          }
          return io.greptime.v1.Ddl.SetDatabaseOptions.getDefaultInstance();
        }
      }
      /**
       * <code>.greptime.v1.SetDatabaseOptions set_database_options = 3;</code>
       */
      public Builder setSetDatabaseOptions(io.greptime.v1.Ddl.SetDatabaseOptions value) {
        if (setDatabaseOptionsBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          kind_ = value;
          onChanged();
        } else {
          setDatabaseOptionsBuilder_.setMessage(value);
        }
        kindCase_ = 3;
        return this;
      }
      /**
       * <code>.greptime.v1.SetDatabaseOptions set_database_options = 3;</code>
       */
      public Builder setSetDatabaseOptions(
          io.greptime.v1.Ddl.SetDatabaseOptions.Builder builderForValue) {
        if (setDatabaseOptionsBuilder_ == null) {
          kind_ = builderForValue.build();
          onChanged();
        } else {
          setDatabaseOptionsBuilder_.setMessage(builderForValue.build());
        }
        kindCase_ = 3;
        return this;
      }
      /**
       * <code>.greptime.v1.SetDatabaseOptions set_database_options = 3;</code>
       */
      public Builder mergeSetDatabaseOptions(io.greptime.v1.Ddl.SetDatabaseOptions value) {
        if (setDatabaseOptionsBuilder_ == null) {
          if (kindCase_ == 3 &&
              kind_ != io.greptime.v1.Ddl.SetDatabaseOptions.getDefaultInstance()) {
            kind_ = io.greptime.v1.Ddl.SetDatabaseOptions.newBuilder((io.greptime.v1.Ddl.SetDatabaseOptions) kind_)
                .mergeFrom(value).buildPartial();
          } else {
            kind_ = value;
          }
          onChanged();
        } else {
          if (kindCase_ == 3) {
            setDatabaseOptionsBuilder_.mergeFrom(value);
          } else {
            setDatabaseOptionsBuilder_.setMessage(value);
          }
        }
        kindCase_ = 3;
        return this;
      }
      /**
       * <code>.greptime.v1.SetDatabaseOptions set_database_options = 3;</code>
       */
      public Builder clearSetDatabaseOptions() {
        if (setDatabaseOptionsBuilder_ == null) {
          if (kindCase_ == 3) {
            kindCase_ = 0;
            kind_ = null;
            onChanged();
          }
        } else {
          if (kindCase_ == 3) {
            kindCase_ = 0;
            kind_ = null;
          }
          setDatabaseOptionsBuilder_.clear();
        }
        return this;
      }
      /**
       * <code>.greptime.v1.SetDatabaseOptions set_database_options = 3;</code>
       */
      public io.greptime.v1.Ddl.SetDatabaseOptions.Builder getSetDatabaseOptionsBuilder() {
        return getSetDatabaseOptionsFieldBuilder().getBuilder();
      }
      /**
       * <code>.greptime.v1.SetDatabaseOptions set_database_options = 3;</code>
       */
      @java.lang.Override
      public io.greptime.v1.Ddl.SetDatabaseOptionsOrBuilder getSetDatabaseOptionsOrBuilder() {
        if ((kindCase_ == 3) && (setDatabaseOptionsBuilder_ != null)) {
          return setDatabaseOptionsBuilder_.getMessageOrBuilder();
        } else {
          if (kindCase_ == 3) {
            return (io.greptime.v1.Ddl.SetDatabaseOptions) kind_;
          }
          return io.greptime.v1.Ddl.SetDatabaseOptions.getDefaultInstance();
        }
      }
      /**
       * <code>.greptime.v1.SetDatabaseOptions set_database_options = 3;</code>
       */
      private com.google.protobuf.SingleFieldBuilderV3<
          io.greptime.v1.Ddl.SetDatabaseOptions, io.greptime.v1.Ddl.SetDatabaseOptions.Builder, io.greptime.v1.Ddl.SetDatabaseOptionsOrBuilder> 
          getSetDatabaseOptionsFieldBuilder() {
        if (setDatabaseOptionsBuilder_ == null) {
          if (!(kindCase_ == 3)) {
            kind_ = io.greptime.v1.Ddl.SetDatabaseOptions.getDefaultInstance();
          }
          setDatabaseOptionsBuilder_ = new com.google.protobuf.SingleFieldBuilderV3<
              io.greptime.v1.Ddl.SetDatabaseOptions, io.greptime.v1.Ddl.SetDatabaseOptions.Builder, io.greptime.v1.Ddl.SetDatabaseOptionsOrBuilder>(
                  (io.greptime.v1.Ddl.SetDatabaseOptions) kind_,
                  getParentForChildren(),
                  isClean());
          kind_ = null;
        }
        kindCase_ = 3;
        onChanged();;
        return setDatabaseOptionsBuilder_;
      }

      private com.google.protobuf.SingleFieldBuilderV3<
          io.greptime.v1.Ddl.UnsetDatabaseOptions, io.greptime.v1.Ddl.UnsetDatabaseOptions.Builder, io.greptime.v1.Ddl.UnsetDatabaseOptionsOrBuilder> unsetDatabaseOptionsBuilder_;
      /**
       * <code>.greptime.v1.UnsetDatabaseOptions unset_database_options = 4;</code>
       * @return Whether the unsetDatabaseOptions field is set.
       */
      @java.lang.Override
      public boolean hasUnsetDatabaseOptions() {
        return kindCase_ == 4;
      }
      /**
       * <code>.greptime.v1.UnsetDatabaseOptions unset_database_options = 4;</code>
       * @return The unsetDatabaseOptions.
       */
      @java.lang.Override
      public io.greptime.v1.Ddl.UnsetDatabaseOptions getUnsetDatabaseOptions() {
        if (unsetDatabaseOptionsBuilder_ == null) {
          if (kindCase_ == 4) {
            return (io.greptime.v1.Ddl.UnsetDatabaseOptions) kind_;
          }
          return io.greptime.v1.Ddl.UnsetDatabaseOptions.getDefaultInstance();
        } else {
          if (kindCase_ == 4) {
            return unsetDatabaseOptionsBuilder_.getMessage();
          }
          return io.greptime.v1.Ddl.UnsetDatabaseOptions.getDefaultInstance();
        }
      }
      /**
       * <code>.greptime.v1.UnsetDatabaseOptions unset_database_options = 4;</code>
       */
      public Builder setUnsetDatabaseOptions(io.greptime.v1.Ddl.UnsetDatabaseOptions value) {
        if (unsetDatabaseOptionsBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          kind_ = value;
          onChanged();
        } else {
          unsetDatabaseOptionsBuilder_.setMessage(value);
        }
        kindCase_ = 4;
        return this;
      }
      /**
       * <code>.greptime.v1.UnsetDatabaseOptions unset_database_options = 4;</code>
       */
      public Builder setUnsetDatabaseOptions(
          io.greptime.v1.Ddl.UnsetDatabaseOptions.Builder builderForValue) {
        if (unsetDatabaseOptionsBuilder_ == null) {
          kind_ = builderForValue.build();
          onChanged();
        } else {
          unsetDatabaseOptionsBuilder_.setMessage(builderForValue.build());
        }
        kindCase_ = 4;
        return this;
      }
      /**
       * <code>.greptime.v1.UnsetDatabaseOptions unset_database_options = 4;</code>
       */
      public Builder mergeUnsetDatabaseOptions(io.greptime.v1.Ddl.UnsetDatabaseOptions value) {
        if (unsetDatabaseOptionsBuilder_ == null) {
          if (kindCase_ == 4 &&
              kind_ != io.greptime.v1.Ddl.UnsetDatabaseOptions.getDefaultInstance()) {
            kind_ = io.greptime.v1.Ddl.UnsetDatabaseOptions.newBuilder((io.greptime.v1.Ddl.UnsetDatabaseOptions) kind_)
                .mergeFrom(value).buildPartial();
          } else {
            kind_ = value;
          }
          onChanged();
        } else {
          if (kindCase_ == 4) {
            unsetDatabaseOptionsBuilder_.mergeFrom(value);
          } else {
            unsetDatabaseOptionsBuilder_.setMessage(value);
          }
        }
        kindCase_ = 4;
        return this;
      }
      /**
       * <code>.greptime.v1.UnsetDatabaseOptions unset_database_options = 4;</code>
       */
      public Builder clearUnsetDatabaseOptions() {
        if (unsetDatabaseOptionsBuilder_ == null) {
          if (kindCase_ == 4) {
            kindCase_ = 0;
            kind_ = null;
            onChanged();
          }
        } else {
          if (kindCase_ == 4) {
            kindCase_ = 0;
            kind_ = null;
          }
          unsetDatabaseOptionsBuilder_.clear();
        }
        return this;
      }
      /**
       * <code>.greptime.v1.UnsetDatabaseOptions unset_database_options = 4;</code>
       */
      public io.greptime.v1.Ddl.UnsetDatabaseOptions.Builder getUnsetDatabaseOptionsBuilder() {
        return getUnsetDatabaseOptionsFieldBuilder().getBuilder();
      }
      /**
       * <code>.greptime.v1.UnsetDatabaseOptions unset_database_options = 4;</code>
       */
      @java.lang.Override
      public io.greptime.v1.Ddl.UnsetDatabaseOptionsOrBuilder getUnsetDatabaseOptionsOrBuilder() {
        if ((kindCase_ == 4) && (unsetDatabaseOptionsBuilder_ != null)) {
          return unsetDatabaseOptionsBuilder_.getMessageOrBuilder();
        } else {
          if (kindCase_ == 4) {
            return (io.greptime.v1.Ddl.UnsetDatabaseOptions) kind_;
          }
          return io.greptime.v1.Ddl.UnsetDatabaseOptions.getDefaultInstance();
        }
      }
      /**
       * <code>.greptime.v1.UnsetDatabaseOptions unset_database_options = 4;</code>
       */
      private com.google.protobuf.SingleFieldBuilderV3<
          io.greptime.v1.Ddl.UnsetDatabaseOptions, io.greptime.v1.Ddl.UnsetDatabaseOptions.Builder, io.greptime.v1.Ddl.UnsetDatabaseOptionsOrBuilder> 
          getUnsetDatabaseOptionsFieldBuilder() {
        if (unsetDatabaseOptionsBuilder_ == null) {
          if (!(kindCase_ == 4)) {
            kind_ = io.greptime.v1.Ddl.UnsetDatabaseOptions.getDefaultInstance();
          }
          unsetDatabaseOptionsBuilder_ = new com.google.protobuf.SingleFieldBuilderV3<
              io.greptime.v1.Ddl.UnsetDatabaseOptions, io.greptime.v1.Ddl.UnsetDatabaseOptions.Builder, io.greptime.v1.Ddl.UnsetDatabaseOptionsOrBuilder>(
                  (io.greptime.v1.Ddl.UnsetDatabaseOptions) kind_,
                  getParentForChildren(),
                  isClean());
          kind_ = null;
        }
        kindCase_ = 4;
        onChanged();;
        return unsetDatabaseOptionsBuilder_;
      }
      @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.AlterDatabaseExpr)
    }

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

    public static io.greptime.v1.Ddl.AlterDatabaseExpr getDefaultInstance() {
      return DEFAULT_INSTANCE;
    }

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

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

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

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

  }

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

    /**
     * <code>repeated .greptime.v1.Option set_database_options = 1;</code>
     */
    java.util.List<io.greptime.v1.Ddl.Option> 
        getSetDatabaseOptionsList();
    /**
     * <code>repeated .greptime.v1.Option set_database_options = 1;</code>
     */
    io.greptime.v1.Ddl.Option getSetDatabaseOptions(int index);
    /**
     * <code>repeated .greptime.v1.Option set_database_options = 1;</code>
     */
    int getSetDatabaseOptionsCount();
    /**
     * <code>repeated .greptime.v1.Option set_database_options = 1;</code>
     */
    java.util.List<? extends io.greptime.v1.Ddl.OptionOrBuilder> 
        getSetDatabaseOptionsOrBuilderList();
    /**
     * <code>repeated .greptime.v1.Option set_database_options = 1;</code>
     */
    io.greptime.v1.Ddl.OptionOrBuilder getSetDatabaseOptionsOrBuilder(
        int index);
  }
  /**
   * Protobuf type {@code greptime.v1.SetDatabaseOptions}
   */
  public static final class SetDatabaseOptions extends
      com.google.protobuf.GeneratedMessageV3 implements
      // @@protoc_insertion_point(message_implements:greptime.v1.SetDatabaseOptions)
      SetDatabaseOptionsOrBuilder {
  private static final long serialVersionUID = 0L;
    // Use SetDatabaseOptions.newBuilder() to construct.
    private SetDatabaseOptions(com.google.protobuf.GeneratedMessageV3.Builder<?> builder) {
      super(builder);
    }
    private SetDatabaseOptions() {
      setDatabaseOptions_ = java.util.Collections.emptyList();
    }

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

    @java.lang.Override
    public final com.google.protobuf.UnknownFieldSet
    getUnknownFields() {
      return this.unknownFields;
    }
    private SetDatabaseOptions(
        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)) {
                setDatabaseOptions_ = new java.util.ArrayList<io.greptime.v1.Ddl.Option>();
                mutable_bitField0_ |= 0x00000001;
              }
              setDatabaseOptions_.add(
                  input.readMessage(io.greptime.v1.Ddl.Option.parser(), extensionRegistry));
              break;
            }
            default: {
              if (!parseUnknownField(
                  input, unknownFields, extensionRegistry, tag)) {
                done = true;
              }
              break;
            }
          }
        }
      } catch (com.google.protobuf.InvalidProtocolBufferException e) {
        throw e.setUnfinishedMessage(this);
      } catch (com.google.protobuf.UninitializedMessageException e) {
        throw e.asInvalidProtocolBufferException().setUnfinishedMessage(this);
      } catch (java.io.IOException e) {
        throw new com.google.protobuf.InvalidProtocolBufferException(
            e).setUnfinishedMessage(this);
      } finally {
        if (((mutable_bitField0_ & 0x00000001) != 0)) {
          setDatabaseOptions_ = java.util.Collections.unmodifiableList(setDatabaseOptions_);
        }
        this.unknownFields = unknownFields.build();
        makeExtensionsImmutable();
      }
    }
    public static final com.google.protobuf.Descriptors.Descriptor
        getDescriptor() {
      return io.greptime.v1.Ddl.internal_static_greptime_v1_SetDatabaseOptions_descriptor;
    }

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

    public static final int SET_DATABASE_OPTIONS_FIELD_NUMBER = 1;
    private java.util.List<io.greptime.v1.Ddl.Option> setDatabaseOptions_;
    /**
     * <code>repeated .greptime.v1.Option set_database_options = 1;</code>
     */
    @java.lang.Override
    public java.util.List<io.greptime.v1.Ddl.Option> getSetDatabaseOptionsList() {
      return setDatabaseOptions_;
    }
    /**
     * <code>repeated .greptime.v1.Option set_database_options = 1;</code>
     */
    @java.lang.Override
    public java.util.List<? extends io.greptime.v1.Ddl.OptionOrBuilder> 
        getSetDatabaseOptionsOrBuilderList() {
      return setDatabaseOptions_;
    }
    /**
     * <code>repeated .greptime.v1.Option set_database_options = 1;</code>
     */
    @java.lang.Override
    public int getSetDatabaseOptionsCount() {
      return setDatabaseOptions_.size();
    }
    /**
     * <code>repeated .greptime.v1.Option set_database_options = 1;</code>
     */
    @java.lang.Override
    public io.greptime.v1.Ddl.Option getSetDatabaseOptions(int index) {
      return setDatabaseOptions_.get(index);
    }
    /**
     * <code>repeated .greptime.v1.Option set_database_options = 1;</code>
     */
    @java.lang.Override
    public io.greptime.v1.Ddl.OptionOrBuilder getSetDatabaseOptionsOrBuilder(
        int index) {
      return setDatabaseOptions_.get(index);
    }

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

      memoizedIsInitialized = 1;
      return true;
    }

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

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

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

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

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

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

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

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

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

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

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

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

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

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

      private java.util.List<io.greptime.v1.Ddl.Option> setDatabaseOptions_ =
        java.util.Collections.emptyList();
      private void ensureSetDatabaseOptionsIsMutable() {
        if (!((bitField0_ & 0x00000001) != 0)) {
          setDatabaseOptions_ = new java.util.ArrayList<io.greptime.v1.Ddl.Option>(setDatabaseOptions_);
          bitField0_ |= 0x00000001;
         }
      }

      private com.google.protobuf.RepeatedFieldBuilderV3<
          io.greptime.v1.Ddl.Option, io.greptime.v1.Ddl.Option.Builder, io.greptime.v1.Ddl.OptionOrBuilder> setDatabaseOptionsBuilder_;

      /**
       * <code>repeated .greptime.v1.Option set_database_options = 1;</code>
       */
      public java.util.List<io.greptime.v1.Ddl.Option> getSetDatabaseOptionsList() {
        if (setDatabaseOptionsBuilder_ == null) {
          return java.util.Collections.unmodifiableList(setDatabaseOptions_);
        } else {
          return setDatabaseOptionsBuilder_.getMessageList();
        }
      }
      /**
       * <code>repeated .greptime.v1.Option set_database_options = 1;</code>
       */
      public int getSetDatabaseOptionsCount() {
        if (setDatabaseOptionsBuilder_ == null) {
          return setDatabaseOptions_.size();
        } else {
          return setDatabaseOptionsBuilder_.getCount();
        }
      }
      /**
       * <code>repeated .greptime.v1.Option set_database_options = 1;</code>
       */
      public io.greptime.v1.Ddl.Option getSetDatabaseOptions(int index) {
        if (setDatabaseOptionsBuilder_ == null) {
          return setDatabaseOptions_.get(index);
        } else {
          return setDatabaseOptionsBuilder_.getMessage(index);
        }
      }
      /**
       * <code>repeated .greptime.v1.Option set_database_options = 1;</code>
       */
      public Builder setSetDatabaseOptions(
          int index, io.greptime.v1.Ddl.Option value) {
        if (setDatabaseOptionsBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          ensureSetDatabaseOptionsIsMutable();
          setDatabaseOptions_.set(index, value);
          onChanged();
        } else {
          setDatabaseOptionsBuilder_.setMessage(index, value);
        }
        return this;
      }
      /**
       * <code>repeated .greptime.v1.Option set_database_options = 1;</code>
       */
      public Builder setSetDatabaseOptions(
          int index, io.greptime.v1.Ddl.Option.Builder builderForValue) {
        if (setDatabaseOptionsBuilder_ == null) {
          ensureSetDatabaseOptionsIsMutable();
          setDatabaseOptions_.set(index, builderForValue.build());
          onChanged();
        } else {
          setDatabaseOptionsBuilder_.setMessage(index, builderForValue.build());
        }
        return this;
      }
      /**
       * <code>repeated .greptime.v1.Option set_database_options = 1;</code>
       */
      public Builder addSetDatabaseOptions(io.greptime.v1.Ddl.Option value) {
        if (setDatabaseOptionsBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          ensureSetDatabaseOptionsIsMutable();
          setDatabaseOptions_.add(value);
          onChanged();
        } else {
          setDatabaseOptionsBuilder_.addMessage(value);
        }
        return this;
      }
      /**
       * <code>repeated .greptime.v1.Option set_database_options = 1;</code>
       */
      public Builder addSetDatabaseOptions(
          int index, io.greptime.v1.Ddl.Option value) {
        if (setDatabaseOptionsBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          ensureSetDatabaseOptionsIsMutable();
          setDatabaseOptions_.add(index, value);
          onChanged();
        } else {
          setDatabaseOptionsBuilder_.addMessage(index, value);
        }
        return this;
      }
      /**
       * <code>repeated .greptime.v1.Option set_database_options = 1;</code>
       */
      public Builder addSetDatabaseOptions(
          io.greptime.v1.Ddl.Option.Builder builderForValue) {
        if (setDatabaseOptionsBuilder_ == null) {
          ensureSetDatabaseOptionsIsMutable();
          setDatabaseOptions_.add(builderForValue.build());
          onChanged();
        } else {
          setDatabaseOptionsBuilder_.addMessage(builderForValue.build());
        }
        return this;
      }
      /**
       * <code>repeated .greptime.v1.Option set_database_options = 1;</code>
       */
      public Builder addSetDatabaseOptions(
          int index, io.greptime.v1.Ddl.Option.Builder builderForValue) {
        if (setDatabaseOptionsBuilder_ == null) {
          ensureSetDatabaseOptionsIsMutable();
          setDatabaseOptions_.add(index, builderForValue.build());
          onChanged();
        } else {
          setDatabaseOptionsBuilder_.addMessage(index, builderForValue.build());
        }
        return this;
      }
      /**
       * <code>repeated .greptime.v1.Option set_database_options = 1;</code>
       */
      public Builder addAllSetDatabaseOptions(
          java.lang.Iterable<? extends io.greptime.v1.Ddl.Option> values) {
        if (setDatabaseOptionsBuilder_ == null) {
          ensureSetDatabaseOptionsIsMutable();
          com.google.protobuf.AbstractMessageLite.Builder.addAll(
              values, setDatabaseOptions_);
          onChanged();
        } else {
          setDatabaseOptionsBuilder_.addAllMessages(values);
        }
        return this;
      }
      /**
       * <code>repeated .greptime.v1.Option set_database_options = 1;</code>
       */
      public Builder clearSetDatabaseOptions() {
        if (setDatabaseOptionsBuilder_ == null) {
          setDatabaseOptions_ = java.util.Collections.emptyList();
          bitField0_ = (bitField0_ & ~0x00000001);
          onChanged();
        } else {
          setDatabaseOptionsBuilder_.clear();
        }
        return this;
      }
      /**
       * <code>repeated .greptime.v1.Option set_database_options = 1;</code>
       */
      public Builder removeSetDatabaseOptions(int index) {
        if (setDatabaseOptionsBuilder_ == null) {
          ensureSetDatabaseOptionsIsMutable();
          setDatabaseOptions_.remove(index);
          onChanged();
        } else {
          setDatabaseOptionsBuilder_.remove(index);
        }
        return this;
      }
      /**
       * <code>repeated .greptime.v1.Option set_database_options = 1;</code>
       */
      public io.greptime.v1.Ddl.Option.Builder getSetDatabaseOptionsBuilder(
          int index) {
        return getSetDatabaseOptionsFieldBuilder().getBuilder(index);
      }
      /**
       * <code>repeated .greptime.v1.Option set_database_options = 1;</code>
       */
      public io.greptime.v1.Ddl.OptionOrBuilder getSetDatabaseOptionsOrBuilder(
          int index) {
        if (setDatabaseOptionsBuilder_ == null) {
          return setDatabaseOptions_.get(index);  } else {
          return setDatabaseOptionsBuilder_.getMessageOrBuilder(index);
        }
      }
      /**
       * <code>repeated .greptime.v1.Option set_database_options = 1;</code>
       */
      public java.util.List<? extends io.greptime.v1.Ddl.OptionOrBuilder> 
           getSetDatabaseOptionsOrBuilderList() {
        if (setDatabaseOptionsBuilder_ != null) {
          return setDatabaseOptionsBuilder_.getMessageOrBuilderList();
        } else {
          return java.util.Collections.unmodifiableList(setDatabaseOptions_);
        }
      }
      /**
       * <code>repeated .greptime.v1.Option set_database_options = 1;</code>
       */
      public io.greptime.v1.Ddl.Option.Builder addSetDatabaseOptionsBuilder() {
        return getSetDatabaseOptionsFieldBuilder().addBuilder(
            io.greptime.v1.Ddl.Option.getDefaultInstance());
      }
      /**
       * <code>repeated .greptime.v1.Option set_database_options = 1;</code>
       */
      public io.greptime.v1.Ddl.Option.Builder addSetDatabaseOptionsBuilder(
          int index) {
        return getSetDatabaseOptionsFieldBuilder().addBuilder(
            index, io.greptime.v1.Ddl.Option.getDefaultInstance());
      }
      /**
       * <code>repeated .greptime.v1.Option set_database_options = 1;</code>
       */
      public java.util.List<io.greptime.v1.Ddl.Option.Builder> 
           getSetDatabaseOptionsBuilderList() {
        return getSetDatabaseOptionsFieldBuilder().getBuilderList();
      }
      private com.google.protobuf.RepeatedFieldBuilderV3<
          io.greptime.v1.Ddl.Option, io.greptime.v1.Ddl.Option.Builder, io.greptime.v1.Ddl.OptionOrBuilder> 
          getSetDatabaseOptionsFieldBuilder() {
        if (setDatabaseOptionsBuilder_ == null) {
          setDatabaseOptionsBuilder_ = new com.google.protobuf.RepeatedFieldBuilderV3<
              io.greptime.v1.Ddl.Option, io.greptime.v1.Ddl.Option.Builder, io.greptime.v1.Ddl.OptionOrBuilder>(
                  setDatabaseOptions_,
                  ((bitField0_ & 0x00000001) != 0),
                  getParentForChildren(),
                  isClean());
          setDatabaseOptions_ = null;
        }
        return setDatabaseOptionsBuilder_;
      }
      @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.SetDatabaseOptions)
    }

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

    public static io.greptime.v1.Ddl.SetDatabaseOptions getDefaultInstance() {
      return DEFAULT_INSTANCE;
    }

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

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

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

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

  }

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

    /**
     * <code>repeated string keys = 1;</code>
     * @return A list containing the keys.
     */
    java.util.List<java.lang.String>
        getKeysList();
    /**
     * <code>repeated string keys = 1;</code>
     * @return The count of keys.
     */
    int getKeysCount();
    /**
     * <code>repeated string keys = 1;</code>
     * @param index The index of the element to return.
     * @return The keys at the given index.
     */
    java.lang.String getKeys(int index);
    /**
     * <code>repeated string keys = 1;</code>
     * @param index The index of the value to return.
     * @return The bytes of the keys at the given index.
     */
    com.google.protobuf.ByteString
        getKeysBytes(int index);
  }
  /**
   * Protobuf type {@code greptime.v1.UnsetDatabaseOptions}
   */
  public static final class UnsetDatabaseOptions extends
      com.google.protobuf.GeneratedMessageV3 implements
      // @@protoc_insertion_point(message_implements:greptime.v1.UnsetDatabaseOptions)
      UnsetDatabaseOptionsOrBuilder {
  private static final long serialVersionUID = 0L;
    // Use UnsetDatabaseOptions.newBuilder() to construct.
    private UnsetDatabaseOptions(com.google.protobuf.GeneratedMessageV3.Builder<?> builder) {
      super(builder);
    }
    private UnsetDatabaseOptions() {
      keys_ = com.google.protobuf.LazyStringArrayList.EMPTY;
    }

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

    @java.lang.Override
    public final com.google.protobuf.UnknownFieldSet
    getUnknownFields() {
      return this.unknownFields;
    }
    private UnsetDatabaseOptions(
        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();
              if (!((mutable_bitField0_ & 0x00000001) != 0)) {
                keys_ = new com.google.protobuf.LazyStringArrayList();
                mutable_bitField0_ |= 0x00000001;
              }
              keys_.add(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 {
        if (((mutable_bitField0_ & 0x00000001) != 0)) {
          keys_ = keys_.getUnmodifiableView();
        }
        this.unknownFields = unknownFields.build();
        makeExtensionsImmutable();
      }
    }
    public static final com.google.protobuf.Descriptors.Descriptor
        getDescriptor() {
      return io.greptime.v1.Ddl.internal_static_greptime_v1_UnsetDatabaseOptions_descriptor;
    }

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

    public static final int KEYS_FIELD_NUMBER = 1;
    private com.google.protobuf.LazyStringList keys_;
    /**
     * <code>repeated string keys = 1;</code>
     * @return A list containing the keys.
     */
    public com.google.protobuf.ProtocolStringList
        getKeysList() {
      return keys_;
    }
    /**
     * <code>repeated string keys = 1;</code>
     * @return The count of keys.
     */
    public int getKeysCount() {
      return keys_.size();
    }
    /**
     * <code>repeated string keys = 1;</code>
     * @param index The index of the element to return.
     * @return The keys at the given index.
     */
    public java.lang.String getKeys(int index) {
      return keys_.get(index);
    }
    /**
     * <code>repeated string keys = 1;</code>
     * @param index The index of the value to return.
     * @return The bytes of the keys at the given index.
     */
    public com.google.protobuf.ByteString
        getKeysBytes(int index) {
      return keys_.getByteString(index);
    }

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

      memoizedIsInitialized = 1;
      return true;
    }

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

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

      size = 0;
      {
        int dataSize = 0;
        for (int i = 0; i < keys_.size(); i++) {
          dataSize += computeStringSizeNoTag(keys_.getRaw(i));
        }
        size += dataSize;
        size += 1 * getKeysList().size();
      }
      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.Ddl.UnsetDatabaseOptions)) {
        return super.equals(obj);
      }
      io.greptime.v1.Ddl.UnsetDatabaseOptions other = (io.greptime.v1.Ddl.UnsetDatabaseOptions) obj;

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

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

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

      // Construct using io.greptime.v1.Ddl.UnsetDatabaseOptions.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();
        keys_ = com.google.protobuf.LazyStringArrayList.EMPTY;
        bitField0_ = (bitField0_ & ~0x00000001);
        return this;
      }

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

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

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

      @java.lang.Override
      public io.greptime.v1.Ddl.UnsetDatabaseOptions buildPartial() {
        io.greptime.v1.Ddl.UnsetDatabaseOptions result = new io.greptime.v1.Ddl.UnsetDatabaseOptions(this);
        int from_bitField0_ = bitField0_;
        if (((bitField0_ & 0x00000001) != 0)) {
          keys_ = keys_.getUnmodifiableView();
          bitField0_ = (bitField0_ & ~0x00000001);
        }
        result.keys_ = keys_;
        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.Ddl.UnsetDatabaseOptions) {
          return mergeFrom((io.greptime.v1.Ddl.UnsetDatabaseOptions)other);
        } else {
          super.mergeFrom(other);
          return this;
        }
      }

      public Builder mergeFrom(io.greptime.v1.Ddl.UnsetDatabaseOptions other) {
        if (other == io.greptime.v1.Ddl.UnsetDatabaseOptions.getDefaultInstance()) return this;
        if (!other.keys_.isEmpty()) {
          if (keys_.isEmpty()) {
            keys_ = other.keys_;
            bitField0_ = (bitField0_ & ~0x00000001);
          } else {
            ensureKeysIsMutable();
            keys_.addAll(other.keys_);
          }
          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.Ddl.UnsetDatabaseOptions parsedMessage = null;
        try {
          parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry);
        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
          parsedMessage = (io.greptime.v1.Ddl.UnsetDatabaseOptions) e.getUnfinishedMessage();
          throw e.unwrapIOException();
        } finally {
          if (parsedMessage != null) {
            mergeFrom(parsedMessage);
          }
        }
        return this;
      }
      private int bitField0_;

      private com.google.protobuf.LazyStringList keys_ = com.google.protobuf.LazyStringArrayList.EMPTY;
      private void ensureKeysIsMutable() {
        if (!((bitField0_ & 0x00000001) != 0)) {
          keys_ = new com.google.protobuf.LazyStringArrayList(keys_);
          bitField0_ |= 0x00000001;
         }
      }
      /**
       * <code>repeated string keys = 1;</code>
       * @return A list containing the keys.
       */
      public com.google.protobuf.ProtocolStringList
          getKeysList() {
        return keys_.getUnmodifiableView();
      }
      /**
       * <code>repeated string keys = 1;</code>
       * @return The count of keys.
       */
      public int getKeysCount() {
        return keys_.size();
      }
      /**
       * <code>repeated string keys = 1;</code>
       * @param index The index of the element to return.
       * @return The keys at the given index.
       */
      public java.lang.String getKeys(int index) {
        return keys_.get(index);
      }
      /**
       * <code>repeated string keys = 1;</code>
       * @param index The index of the value to return.
       * @return The bytes of the keys at the given index.
       */
      public com.google.protobuf.ByteString
          getKeysBytes(int index) {
        return keys_.getByteString(index);
      }
      /**
       * <code>repeated string keys = 1;</code>
       * @param index The index to set the value at.
       * @param value The keys to set.
       * @return This builder for chaining.
       */
      public Builder setKeys(
          int index, java.lang.String value) {
        if (value == null) {
    throw new NullPointerException();
  }
  ensureKeysIsMutable();
        keys_.set(index, value);
        onChanged();
        return this;
      }
      /**
       * <code>repeated string keys = 1;</code>
       * @param value The keys to add.
       * @return This builder for chaining.
       */
      public Builder addKeys(
          java.lang.String value) {
        if (value == null) {
    throw new NullPointerException();
  }
  ensureKeysIsMutable();
        keys_.add(value);
        onChanged();
        return this;
      }
      /**
       * <code>repeated string keys = 1;</code>
       * @param values The keys to add.
       * @return This builder for chaining.
       */
      public Builder addAllKeys(
          java.lang.Iterable<java.lang.String> values) {
        ensureKeysIsMutable();
        com.google.protobuf.AbstractMessageLite.Builder.addAll(
            values, keys_);
        onChanged();
        return this;
      }
      /**
       * <code>repeated string keys = 1;</code>
       * @return This builder for chaining.
       */
      public Builder clearKeys() {
        keys_ = com.google.protobuf.LazyStringArrayList.EMPTY;
        bitField0_ = (bitField0_ & ~0x00000001);
        onChanged();
        return this;
      }
      /**
       * <code>repeated string keys = 1;</code>
       * @param value The bytes of the keys to add.
       * @return This builder for chaining.
       */
      public Builder addKeysBytes(
          com.google.protobuf.ByteString value) {
        if (value == null) {
    throw new NullPointerException();
  }
  checkByteStringIsUtf8(value);
        ensureKeysIsMutable();
        keys_.add(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.UnsetDatabaseOptions)
    }

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

    public static io.greptime.v1.Ddl.UnsetDatabaseOptions getDefaultInstance() {
      return DEFAULT_INSTANCE;
    }

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

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

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

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

  }

  private static final com.google.protobuf.Descriptors.Descriptor
    internal_static_greptime_v1_DdlRequest_descriptor;
  private static final 
    com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
      internal_static_greptime_v1_DdlRequest_fieldAccessorTable;
  private static final com.google.protobuf.Descriptors.Descriptor
    internal_static_greptime_v1_CreateFlowExpr_descriptor;
  private static final 
    com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
      internal_static_greptime_v1_CreateFlowExpr_fieldAccessorTable;
  private static final com.google.protobuf.Descriptors.Descriptor
    internal_static_greptime_v1_CreateFlowExpr_FlowOptionsEntry_descriptor;
  private static final 
    com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
      internal_static_greptime_v1_CreateFlowExpr_FlowOptionsEntry_fieldAccessorTable;
  private static final com.google.protobuf.Descriptors.Descriptor
    internal_static_greptime_v1_DropFlowExpr_descriptor;
  private static final 
    com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
      internal_static_greptime_v1_DropFlowExpr_fieldAccessorTable;
  private static final com.google.protobuf.Descriptors.Descriptor
    internal_static_greptime_v1_CreateViewExpr_descriptor;
  private static final 
    com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
      internal_static_greptime_v1_CreateViewExpr_fieldAccessorTable;
  private static final com.google.protobuf.Descriptors.Descriptor
    internal_static_greptime_v1_DropViewExpr_descriptor;
  private static final 
    com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
      internal_static_greptime_v1_DropViewExpr_fieldAccessorTable;
  private static final com.google.protobuf.Descriptors.Descriptor
    internal_static_greptime_v1_CreateTableExpr_descriptor;
  private static final 
    com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
      internal_static_greptime_v1_CreateTableExpr_fieldAccessorTable;
  private static final com.google.protobuf.Descriptors.Descriptor
    internal_static_greptime_v1_CreateTableExpr_TableOptionsEntry_descriptor;
  private static final 
    com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
      internal_static_greptime_v1_CreateTableExpr_TableOptionsEntry_fieldAccessorTable;
  private static final com.google.protobuf.Descriptors.Descriptor
    internal_static_greptime_v1_AlterTableExpr_descriptor;
  private static final 
    com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
      internal_static_greptime_v1_AlterTableExpr_fieldAccessorTable;
  private static final com.google.protobuf.Descriptors.Descriptor
    internal_static_greptime_v1_SetIndex_descriptor;
  private static final 
    com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
      internal_static_greptime_v1_SetIndex_fieldAccessorTable;
  private static final com.google.protobuf.Descriptors.Descriptor
    internal_static_greptime_v1_UnsetIndex_descriptor;
  private static final 
    com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
      internal_static_greptime_v1_UnsetIndex_fieldAccessorTable;
  private static final com.google.protobuf.Descriptors.Descriptor
    internal_static_greptime_v1_DropTableExpr_descriptor;
  private static final 
    com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
      internal_static_greptime_v1_DropTableExpr_fieldAccessorTable;
  private static final com.google.protobuf.Descriptors.Descriptor
    internal_static_greptime_v1_CreateDatabaseExpr_descriptor;
  private static final 
    com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
      internal_static_greptime_v1_CreateDatabaseExpr_fieldAccessorTable;
  private static final com.google.protobuf.Descriptors.Descriptor
    internal_static_greptime_v1_CreateDatabaseExpr_OptionsEntry_descriptor;
  private static final 
    com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
      internal_static_greptime_v1_CreateDatabaseExpr_OptionsEntry_fieldAccessorTable;
  private static final com.google.protobuf.Descriptors.Descriptor
    internal_static_greptime_v1_TruncateTableExpr_descriptor;
  private static final 
    com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
      internal_static_greptime_v1_TruncateTableExpr_fieldAccessorTable;
  private static final com.google.protobuf.Descriptors.Descriptor
    internal_static_greptime_v1_DropDatabaseExpr_descriptor;
  private static final 
    com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
      internal_static_greptime_v1_DropDatabaseExpr_fieldAccessorTable;
  private static final com.google.protobuf.Descriptors.Descriptor
    internal_static_greptime_v1_AddColumns_descriptor;
  private static final 
    com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
      internal_static_greptime_v1_AddColumns_fieldAccessorTable;
  private static final com.google.protobuf.Descriptors.Descriptor
    internal_static_greptime_v1_DropColumns_descriptor;
  private static final 
    com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
      internal_static_greptime_v1_DropColumns_fieldAccessorTable;
  private static final com.google.protobuf.Descriptors.Descriptor
    internal_static_greptime_v1_ModifyColumnTypes_descriptor;
  private static final 
    com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
      internal_static_greptime_v1_ModifyColumnTypes_fieldAccessorTable;
  private static final com.google.protobuf.Descriptors.Descriptor
    internal_static_greptime_v1_RenameTable_descriptor;
  private static final 
    com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
      internal_static_greptime_v1_RenameTable_fieldAccessorTable;
  private static final com.google.protobuf.Descriptors.Descriptor
    internal_static_greptime_v1_AddColumn_descriptor;
  private static final 
    com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
      internal_static_greptime_v1_AddColumn_fieldAccessorTable;
  private static final com.google.protobuf.Descriptors.Descriptor
    internal_static_greptime_v1_ModifyColumnType_descriptor;
  private static final 
    com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
      internal_static_greptime_v1_ModifyColumnType_fieldAccessorTable;
  private static final com.google.protobuf.Descriptors.Descriptor
    internal_static_greptime_v1_Option_descriptor;
  private static final 
    com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
      internal_static_greptime_v1_Option_fieldAccessorTable;
  private static final com.google.protobuf.Descriptors.Descriptor
    internal_static_greptime_v1_SetTableOptions_descriptor;
  private static final 
    com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
      internal_static_greptime_v1_SetTableOptions_fieldAccessorTable;
  private static final com.google.protobuf.Descriptors.Descriptor
    internal_static_greptime_v1_UnsetTableOptions_descriptor;
  private static final 
    com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
      internal_static_greptime_v1_UnsetTableOptions_fieldAccessorTable;
  private static final com.google.protobuf.Descriptors.Descriptor
    internal_static_greptime_v1_DropColumn_descriptor;
  private static final 
    com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
      internal_static_greptime_v1_DropColumn_fieldAccessorTable;
  private static final com.google.protobuf.Descriptors.Descriptor
    internal_static_greptime_v1_TableId_descriptor;
  private static final 
    com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
      internal_static_greptime_v1_TableId_fieldAccessorTable;
  private static final com.google.protobuf.Descriptors.Descriptor
    internal_static_greptime_v1_FlowId_descriptor;
  private static final 
    com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
      internal_static_greptime_v1_FlowId_fieldAccessorTable;
  private static final com.google.protobuf.Descriptors.Descriptor
    internal_static_greptime_v1_ColumnDef_descriptor;
  private static final 
    com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
      internal_static_greptime_v1_ColumnDef_fieldAccessorTable;
  private static final com.google.protobuf.Descriptors.Descriptor
    internal_static_greptime_v1_AddColumnLocation_descriptor;
  private static final 
    com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
      internal_static_greptime_v1_AddColumnLocation_fieldAccessorTable;
  private static final com.google.protobuf.Descriptors.Descriptor
    internal_static_greptime_v1_SetFulltext_descriptor;
  private static final 
    com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
      internal_static_greptime_v1_SetFulltext_fieldAccessorTable;
  private static final com.google.protobuf.Descriptors.Descriptor
    internal_static_greptime_v1_UnsetFulltext_descriptor;
  private static final 
    com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
      internal_static_greptime_v1_UnsetFulltext_fieldAccessorTable;
  private static final com.google.protobuf.Descriptors.Descriptor
    internal_static_greptime_v1_SetInverted_descriptor;
  private static final 
    com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
      internal_static_greptime_v1_SetInverted_fieldAccessorTable;
  private static final com.google.protobuf.Descriptors.Descriptor
    internal_static_greptime_v1_UnsetInverted_descriptor;
  private static final 
    com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
      internal_static_greptime_v1_UnsetInverted_fieldAccessorTable;
  private static final com.google.protobuf.Descriptors.Descriptor
    internal_static_greptime_v1_SetSkipping_descriptor;
  private static final 
    com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
      internal_static_greptime_v1_SetSkipping_fieldAccessorTable;
  private static final com.google.protobuf.Descriptors.Descriptor
    internal_static_greptime_v1_UnsetSkipping_descriptor;
  private static final 
    com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
      internal_static_greptime_v1_UnsetSkipping_fieldAccessorTable;
  private static final com.google.protobuf.Descriptors.Descriptor
    internal_static_greptime_v1_AlterDatabaseExpr_descriptor;
  private static final 
    com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
      internal_static_greptime_v1_AlterDatabaseExpr_fieldAccessorTable;
  private static final com.google.protobuf.Descriptors.Descriptor
    internal_static_greptime_v1_SetDatabaseOptions_descriptor;
  private static final 
    com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
      internal_static_greptime_v1_SetDatabaseOptions_fieldAccessorTable;
  private static final com.google.protobuf.Descriptors.Descriptor
    internal_static_greptime_v1_UnsetDatabaseOptions_descriptor;
  private static final 
    com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
      internal_static_greptime_v1_UnsetDatabaseOptions_fieldAccessorTable;

  public static com.google.protobuf.Descriptors.FileDescriptor
      getDescriptor() {
    return descriptor;
  }
  private static  com.google.protobuf.Descriptors.FileDescriptor
      descriptor;
  static {
    java.lang.String[] descriptorData = {
      "\n\025greptime/v1/ddl.proto\022\013greptime.v1\032\030gr" +
      "eptime/v1/common.proto\"\250\004\n\nDdlRequest\022:\n" +
      "\017create_database\030\001 \001(\0132\037.greptime.v1.Cre" +
      "ateDatabaseExprH\000\0224\n\014create_table\030\002 \001(\0132" +
      "\034.greptime.v1.CreateTableExprH\000\0222\n\013alter" +
      "_table\030\003 \001(\0132\033.greptime.v1.AlterTableExp" +
      "rH\000\0220\n\ndrop_table\030\004 \001(\0132\032.greptime.v1.Dr" +
      "opTableExprH\000\0228\n\016truncate_table\030\007 \001(\0132\036." +
      "greptime.v1.TruncateTableExprH\000\0222\n\013creat" +
      "e_flow\030\010 \001(\0132\033.greptime.v1.CreateFlowExp" +
      "rH\000\022.\n\tdrop_flow\030\t \001(\0132\031.greptime.v1.Dro" +
      "pFlowExprH\000\0222\n\013create_view\030\n \001(\0132\033.grept" +
      "ime.v1.CreateViewExprH\000\022.\n\tdrop_view\030\013 \001" +
      "(\0132\031.greptime.v1.DropViewExprH\000\0228\n\016alter" +
      "_database\030\014 \001(\0132\036.greptime.v1.AlterDatab" +
      "aseExprH\000B\006\n\004expr\"\226\003\n\016CreateFlowExpr\022\024\n\014" +
      "catalog_name\030\001 \001(\t\022\021\n\tflow_name\030\002 \001(\t\0222\n" +
      "\022source_table_names\030\003 \003(\0132\026.greptime.v1." +
      "TableName\022/\n\017sink_table_name\030\004 \001(\0132\026.gre" +
      "ptime.v1.TableName\022\022\n\nor_replace\030\005 \001(\010\022\034" +
      "\n\024create_if_not_exists\030\006 \001(\010\022.\n\014expire_a" +
      "fter\030\007 \001(\0132\030.greptime.v1.ExpireAfter\022\017\n\007" +
      "comment\030\010 \001(\t\022\013\n\003sql\030\t \001(\t\022B\n\014flow_optio" +
      "ns\030\n \003(\0132,.greptime.v1.CreateFlowExpr.Fl" +
      "owOptionsEntry\0322\n\020FlowOptionsEntry\022\013\n\003ke" +
      "y\030\001 \001(\t\022\r\n\005value\030\002 \001(\t:\0028\001\"u\n\014DropFlowEx" +
      "pr\022\024\n\014catalog_name\030\001 \001(\t\022\021\n\tflow_name\030\002 " +
      "\001(\t\022$\n\007flow_id\030\003 \001(\0132\023.greptime.v1.FlowI" +
      "d\022\026\n\016drop_if_exists\030\005 \001(\010\"\376\001\n\016CreateView" +
      "Expr\022\024\n\014catalog_name\030\001 \001(\t\022\023\n\013schema_nam" +
      "e\030\002 \001(\t\022\021\n\tview_name\030\003 \001(\t\022\024\n\014logical_pl" +
      "an\030\004 \001(\014\022\034\n\024create_if_not_exists\030\005 \001(\010\022\022" +
      "\n\nor_replace\030\006 \001(\010\022+\n\013table_names\030\007 \003(\0132" +
      "\026.greptime.v1.TableName\022\017\n\007columns\030\010 \003(\t" +
      "\022\024\n\014plan_columns\030\t \003(\t\022\022\n\ndefinition\030\n \001" +
      "(\t\"\213\001\n\014DropViewExpr\022\024\n\014catalog_name\030\001 \001(" +
      "\t\022\023\n\013schema_name\030\002 \001(\t\022\021\n\tview_name\030\003 \001(" +
      "\t\022%\n\007view_id\030\004 \001(\0132\024.greptime.v1.TableId" +
      "\022\026\n\016drop_if_exists\030\005 \001(\010\"\207\003\n\017CreateTable" +
      "Expr\022\024\n\014catalog_name\030\001 \001(\t\022\023\n\013schema_nam" +
      "e\030\002 \001(\t\022\022\n\ntable_name\030\003 \001(\t\022\014\n\004desc\030\004 \001(" +
      "\t\022+\n\013column_defs\030\005 \003(\0132\026.greptime.v1.Col" +
      "umnDef\022\022\n\ntime_index\030\006 \001(\t\022\024\n\014primary_ke" +
      "ys\030\007 \003(\t\022\034\n\024create_if_not_exists\030\010 \001(\010\022E" +
      "\n\rtable_options\030\t \003(\0132..greptime.v1.Crea" +
      "teTableExpr.TableOptionsEntry\022&\n\010table_i" +
      "d\030\n \001(\0132\024.greptime.v1.TableId\022\016\n\006engine\030" +
      "\014 \001(\t\0323\n\021TableOptionsEntry\022\013\n\003key\030\001 \001(\t\022" +
      "\r\n\005value\030\002 \001(\t:\0028\001\"\200\004\n\016AlterTableExpr\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\022.\n\013add_columns\030\004 \001(" +
      "\0132\027.greptime.v1.AddColumnsH\000\0220\n\014drop_col" +
      "umns\030\005 \001(\0132\030.greptime.v1.DropColumnsH\000\0220" +
      "\n\014rename_table\030\006 \001(\0132\030.greptime.v1.Renam" +
      "eTableH\000\022=\n\023modify_column_types\030\007 \001(\0132\036." +
      "greptime.v1.ModifyColumnTypesH\000\0229\n\021set_t" +
      "able_options\030\010 \001(\0132\034.greptime.v1.SetTabl" +
      "eOptionsH\000\022=\n\023unset_table_options\030\013 \001(\0132" +
      "\036.greptime.v1.UnsetTableOptionsH\000\022*\n\tset" +
      "_index\030\014 \001(\0132\025.greptime.v1.SetIndexH\000\022.\n" +
      "\013unset_index\030\r \001(\0132\027.greptime.v1.UnsetIn" +
      "dexH\000B\006\n\004kind\"\237\001\n\010SetIndex\022,\n\010fulltext\030\001" +
      " \001(\0132\030.greptime.v1.SetFulltextH\000\022,\n\010inve" +
      "rted\030\002 \001(\0132\030.greptime.v1.SetInvertedH\000\022," +
      "\n\010skipping\030\003 \001(\0132\030.greptime.v1.SetSkippi" +
      "ngH\000B\t\n\007options\"\247\001\n\nUnsetIndex\022.\n\010fullte" +
      "xt\030\001 \001(\0132\032.greptime.v1.UnsetFulltextH\000\022." +
      "\n\010inverted\030\002 \001(\0132\032.greptime.v1.UnsetInve" +
      "rtedH\000\022.\n\010skipping\030\003 \001(\0132\032.greptime.v1.U" +
      "nsetSkippingH\000B\t\n\007options\"\216\001\n\rDropTableE" +
      "xpr\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\022&\n\010table_id\030\004" +
      " \001(\0132\024.greptime.v1.TableId\022\026\n\016drop_if_ex" +
      "ists\030\005 \001(\010\"\314\001\n\022CreateDatabaseExpr\022\024\n\014cat" +
      "alog_name\030\001 \001(\t\022\023\n\013schema_name\030\002 \001(\t\022\034\n\024" +
      "create_if_not_exists\030\003 \001(\010\022=\n\007options\030\004 " +
      "\003(\0132,.greptime.v1.CreateDatabaseExpr.Opt" +
      "ionsEntry\032.\n\014OptionsEntry\022\013\n\003key\030\001 \001(\t\022\r" +
      "\n\005value\030\002 \001(\t:\0028\001\"z\n\021TruncateTableExpr\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\022&\n\010table_id\030\004 \001(\0132" +
      "\024.greptime.v1.TableId\"U\n\020DropDatabaseExp" +
      "r\022\024\n\014catalog_name\030\001 \001(\t\022\023\n\013schema_name\030\002" +
      " \001(\t\022\026\n\016drop_if_exists\030\003 \001(\010\"9\n\nAddColum" +
      "ns\022+\n\013add_columns\030\001 \003(\0132\026.greptime.v1.Ad" +
      "dColumn\"<\n\013DropColumns\022-\n\014drop_columns\030\001" +
      " \003(\0132\027.greptime.v1.DropColumn\"O\n\021ModifyC" +
      "olumnTypes\022:\n\023modify_column_types\030\001 \003(\0132" +
      "\035.greptime.v1.ModifyColumnType\"%\n\013Rename" +
      "Table\022\026\n\016new_table_name\030\001 \001(\t\"\204\001\n\tAddCol" +
      "umn\022*\n\ncolumn_def\030\001 \001(\0132\026.greptime.v1.Co" +
      "lumnDef\0220\n\010location\030\003 \001(\0132\036.greptime.v1." +
      "AddColumnLocation\022\031\n\021add_if_not_exists\030\004" +
      " \001(\010\"\236\001\n\020ModifyColumnType\022\023\n\013column_name" +
      "\030\001 \001(\t\0220\n\013target_type\030\002 \001(\0162\033.greptime.v" +
      "1.ColumnDataType\022C\n\025target_type_extensio" +
      "n\030\003 \001(\0132$.greptime.v1.ColumnDataTypeExte" +
      "nsion\"$\n\006Option\022\013\n\003key\030\001 \001(\t\022\r\n\005value\030\002 " +
      "\001(\t\"=\n\017SetTableOptions\022*\n\rtable_options\030" +
      "\001 \003(\0132\023.greptime.v1.Option\"!\n\021UnsetTable" +
      "Options\022\014\n\004keys\030\001 \003(\t\"\032\n\nDropColumn\022\014\n\004n" +
      "ame\030\001 \001(\t\"\025\n\007TableId\022\n\n\002id\030\001 \001(\r\"\024\n\006Flow" +
      "Id\022\n\n\002id\030\001 \001(\r\"\254\002\n\tColumnDef\022\014\n\004name\030\001 \001" +
      "(\t\022.\n\tdata_type\030\002 \001(\0162\033.greptime.v1.Colu" +
      "mnDataType\022\023\n\013is_nullable\030\003 \001(\010\022\032\n\022defau" +
      "lt_constraint\030\004 \001(\014\0220\n\rsemantic_type\030\005 \001" +
      "(\0162\031.greptime.v1.SemanticType\022\017\n\007comment" +
      "\030\006 \001(\t\022@\n\022datatype_extension\030\007 \001(\0132$.gre" +
      "ptime.v1.ColumnDataTypeExtension\022+\n\007opti" +
      "ons\030\010 \001(\0132\032.greptime.v1.ColumnOptions\"\230\001" +
      "\n\021AddColumnLocation\022B\n\rlocation_type\030\001 \001" +
      "(\0162+.greptime.v1.AddColumnLocation.Locat" +
      "ionType\022\031\n\021after_column_name\030\002 \001(\t\"$\n\014Lo" +
      "cationType\022\t\n\005FIRST\020\000\022\t\n\005AFTER\020\001\"\242\001\n\013Set" +
      "Fulltext\022\023\n\013column_name\030\001 \001(\t\022\016\n\006enable\030" +
      "\002 \001(\010\022\'\n\010analyzer\030\003 \001(\0162\025.greptime.v1.An" +
      "alyzer\022\026\n\016case_sensitive\030\004 \001(\010\022-\n\007backen" +
      "d\030\005 \001(\0162\034.greptime.v1.FulltextBackend\"$\n" +
      "\rUnsetFulltext\022\023\n\013column_name\030\001 \001(\t\"\"\n\013S" +
      "etInverted\022\023\n\013column_name\030\001 \001(\t\"$\n\rUnset" +
      "Inverted\022\023\n\013column_name\030\001 \001(\t\"\204\001\n\013SetSki" +
      "pping\022\023\n\013column_name\030\001 \001(\t\022\016\n\006enable\030\002 \001" +
      "(\010\022\023\n\013granularity\030\003 \001(\004\022;\n\023skipping_inde" +
      "x_type\030\004 \001(\0162\036.greptime.v1.SkippingIndex" +
      "Type\"$\n\rUnsetSkipping\022\023\n\013column_name\030\001 \001" +
      "(\t\"\314\001\n\021AlterDatabaseExpr\022\024\n\014catalog_name" +
      "\030\001 \001(\t\022\023\n\013schema_name\030\002 \001(\t\022?\n\024set_datab" +
      "ase_options\030\003 \001(\0132\037.greptime.v1.SetDatab" +
      "aseOptionsH\000\022C\n\026unset_database_options\030\004" +
      " \001(\0132!.greptime.v1.UnsetDatabaseOptionsH" +
      "\000B\006\n\004kind\"G\n\022SetDatabaseOptions\0221\n\024set_d" +
      "atabase_options\030\001 \003(\0132\023.greptime.v1.Opti" +
      "on\"$\n\024UnsetDatabaseOptions\022\014\n\004keys\030\001 \003(\t" +
      "*$\n\010Analyzer\022\013\n\007ENGLISH\020\000\022\013\n\007CHINESE\020\001*)" +
      "\n\017FulltextBackend\022\013\n\007TANTIVY\020\000\022\t\n\005BLOOM\020" +
      "\001*%\n\021SkippingIndexType\022\020\n\014BLOOM_FILTER\020\000" +
      "BL\n\016io.greptime.v1B\003DdlZ5github.com/Grep" +
      "timeTeam/greptime-proto/go/greptime/v1b\006" +
      "proto3"
    };
    descriptor = com.google.protobuf.Descriptors.FileDescriptor
      .internalBuildGeneratedFileFrom(descriptorData,
        new com.google.protobuf.Descriptors.FileDescriptor[] {
          io.greptime.v1.Common.getDescriptor(),
        });
    internal_static_greptime_v1_DdlRequest_descriptor =
      getDescriptor().getMessageTypes().get(0);
    internal_static_greptime_v1_DdlRequest_fieldAccessorTable = new
      com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(
        internal_static_greptime_v1_DdlRequest_descriptor,
        new java.lang.String[] { "CreateDatabase", "CreateTable", "AlterTable", "DropTable", "TruncateTable", "CreateFlow", "DropFlow", "CreateView", "DropView", "AlterDatabase", "Expr", });
    internal_static_greptime_v1_CreateFlowExpr_descriptor =
      getDescriptor().getMessageTypes().get(1);
    internal_static_greptime_v1_CreateFlowExpr_fieldAccessorTable = new
      com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(
        internal_static_greptime_v1_CreateFlowExpr_descriptor,
        new java.lang.String[] { "CatalogName", "FlowName", "SourceTableNames", "SinkTableName", "OrReplace", "CreateIfNotExists", "ExpireAfter", "Comment", "Sql", "FlowOptions", });
    internal_static_greptime_v1_CreateFlowExpr_FlowOptionsEntry_descriptor =
      internal_static_greptime_v1_CreateFlowExpr_descriptor.getNestedTypes().get(0);
    internal_static_greptime_v1_CreateFlowExpr_FlowOptionsEntry_fieldAccessorTable = new
      com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(
        internal_static_greptime_v1_CreateFlowExpr_FlowOptionsEntry_descriptor,
        new java.lang.String[] { "Key", "Value", });
    internal_static_greptime_v1_DropFlowExpr_descriptor =
      getDescriptor().getMessageTypes().get(2);
    internal_static_greptime_v1_DropFlowExpr_fieldAccessorTable = new
      com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(
        internal_static_greptime_v1_DropFlowExpr_descriptor,
        new java.lang.String[] { "CatalogName", "FlowName", "FlowId", "DropIfExists", });
    internal_static_greptime_v1_CreateViewExpr_descriptor =
      getDescriptor().getMessageTypes().get(3);
    internal_static_greptime_v1_CreateViewExpr_fieldAccessorTable = new
      com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(
        internal_static_greptime_v1_CreateViewExpr_descriptor,
        new java.lang.String[] { "CatalogName", "SchemaName", "ViewName", "LogicalPlan", "CreateIfNotExists", "OrReplace", "TableNames", "Columns", "PlanColumns", "Definition", });
    internal_static_greptime_v1_DropViewExpr_descriptor =
      getDescriptor().getMessageTypes().get(4);
    internal_static_greptime_v1_DropViewExpr_fieldAccessorTable = new
      com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(
        internal_static_greptime_v1_DropViewExpr_descriptor,
        new java.lang.String[] { "CatalogName", "SchemaName", "ViewName", "ViewId", "DropIfExists", });
    internal_static_greptime_v1_CreateTableExpr_descriptor =
      getDescriptor().getMessageTypes().get(5);
    internal_static_greptime_v1_CreateTableExpr_fieldAccessorTable = new
      com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(
        internal_static_greptime_v1_CreateTableExpr_descriptor,
        new java.lang.String[] { "CatalogName", "SchemaName", "TableName", "Desc", "ColumnDefs", "TimeIndex", "PrimaryKeys", "CreateIfNotExists", "TableOptions", "TableId", "Engine", });
    internal_static_greptime_v1_CreateTableExpr_TableOptionsEntry_descriptor =
      internal_static_greptime_v1_CreateTableExpr_descriptor.getNestedTypes().get(0);
    internal_static_greptime_v1_CreateTableExpr_TableOptionsEntry_fieldAccessorTable = new
      com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(
        internal_static_greptime_v1_CreateTableExpr_TableOptionsEntry_descriptor,
        new java.lang.String[] { "Key", "Value", });
    internal_static_greptime_v1_AlterTableExpr_descriptor =
      getDescriptor().getMessageTypes().get(6);
    internal_static_greptime_v1_AlterTableExpr_fieldAccessorTable = new
      com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(
        internal_static_greptime_v1_AlterTableExpr_descriptor,
        new java.lang.String[] { "CatalogName", "SchemaName", "TableName", "AddColumns", "DropColumns", "RenameTable", "ModifyColumnTypes", "SetTableOptions", "UnsetTableOptions", "SetIndex", "UnsetIndex", "Kind", });
    internal_static_greptime_v1_SetIndex_descriptor =
      getDescriptor().getMessageTypes().get(7);
    internal_static_greptime_v1_SetIndex_fieldAccessorTable = new
      com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(
        internal_static_greptime_v1_SetIndex_descriptor,
        new java.lang.String[] { "Fulltext", "Inverted", "Skipping", "Options", });
    internal_static_greptime_v1_UnsetIndex_descriptor =
      getDescriptor().getMessageTypes().get(8);
    internal_static_greptime_v1_UnsetIndex_fieldAccessorTable = new
      com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(
        internal_static_greptime_v1_UnsetIndex_descriptor,
        new java.lang.String[] { "Fulltext", "Inverted", "Skipping", "Options", });
    internal_static_greptime_v1_DropTableExpr_descriptor =
      getDescriptor().getMessageTypes().get(9);
    internal_static_greptime_v1_DropTableExpr_fieldAccessorTable = new
      com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(
        internal_static_greptime_v1_DropTableExpr_descriptor,
        new java.lang.String[] { "CatalogName", "SchemaName", "TableName", "TableId", "DropIfExists", });
    internal_static_greptime_v1_CreateDatabaseExpr_descriptor =
      getDescriptor().getMessageTypes().get(10);
    internal_static_greptime_v1_CreateDatabaseExpr_fieldAccessorTable = new
      com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(
        internal_static_greptime_v1_CreateDatabaseExpr_descriptor,
        new java.lang.String[] { "CatalogName", "SchemaName", "CreateIfNotExists", "Options", });
    internal_static_greptime_v1_CreateDatabaseExpr_OptionsEntry_descriptor =
      internal_static_greptime_v1_CreateDatabaseExpr_descriptor.getNestedTypes().get(0);
    internal_static_greptime_v1_CreateDatabaseExpr_OptionsEntry_fieldAccessorTable = new
      com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(
        internal_static_greptime_v1_CreateDatabaseExpr_OptionsEntry_descriptor,
        new java.lang.String[] { "Key", "Value", });
    internal_static_greptime_v1_TruncateTableExpr_descriptor =
      getDescriptor().getMessageTypes().get(11);
    internal_static_greptime_v1_TruncateTableExpr_fieldAccessorTable = new
      com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(
        internal_static_greptime_v1_TruncateTableExpr_descriptor,
        new java.lang.String[] { "CatalogName", "SchemaName", "TableName", "TableId", });
    internal_static_greptime_v1_DropDatabaseExpr_descriptor =
      getDescriptor().getMessageTypes().get(12);
    internal_static_greptime_v1_DropDatabaseExpr_fieldAccessorTable = new
      com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(
        internal_static_greptime_v1_DropDatabaseExpr_descriptor,
        new java.lang.String[] { "CatalogName", "SchemaName", "DropIfExists", });
    internal_static_greptime_v1_AddColumns_descriptor =
      getDescriptor().getMessageTypes().get(13);
    internal_static_greptime_v1_AddColumns_fieldAccessorTable = new
      com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(
        internal_static_greptime_v1_AddColumns_descriptor,
        new java.lang.String[] { "AddColumns", });
    internal_static_greptime_v1_DropColumns_descriptor =
      getDescriptor().getMessageTypes().get(14);
    internal_static_greptime_v1_DropColumns_fieldAccessorTable = new
      com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(
        internal_static_greptime_v1_DropColumns_descriptor,
        new java.lang.String[] { "DropColumns", });
    internal_static_greptime_v1_ModifyColumnTypes_descriptor =
      getDescriptor().getMessageTypes().get(15);
    internal_static_greptime_v1_ModifyColumnTypes_fieldAccessorTable = new
      com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(
        internal_static_greptime_v1_ModifyColumnTypes_descriptor,
        new java.lang.String[] { "ModifyColumnTypes", });
    internal_static_greptime_v1_RenameTable_descriptor =
      getDescriptor().getMessageTypes().get(16);
    internal_static_greptime_v1_RenameTable_fieldAccessorTable = new
      com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(
        internal_static_greptime_v1_RenameTable_descriptor,
        new java.lang.String[] { "NewTableName", });
    internal_static_greptime_v1_AddColumn_descriptor =
      getDescriptor().getMessageTypes().get(17);
    internal_static_greptime_v1_AddColumn_fieldAccessorTable = new
      com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(
        internal_static_greptime_v1_AddColumn_descriptor,
        new java.lang.String[] { "ColumnDef", "Location", "AddIfNotExists", });
    internal_static_greptime_v1_ModifyColumnType_descriptor =
      getDescriptor().getMessageTypes().get(18);
    internal_static_greptime_v1_ModifyColumnType_fieldAccessorTable = new
      com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(
        internal_static_greptime_v1_ModifyColumnType_descriptor,
        new java.lang.String[] { "ColumnName", "TargetType", "TargetTypeExtension", });
    internal_static_greptime_v1_Option_descriptor =
      getDescriptor().getMessageTypes().get(19);
    internal_static_greptime_v1_Option_fieldAccessorTable = new
      com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(
        internal_static_greptime_v1_Option_descriptor,
        new java.lang.String[] { "Key", "Value", });
    internal_static_greptime_v1_SetTableOptions_descriptor =
      getDescriptor().getMessageTypes().get(20);
    internal_static_greptime_v1_SetTableOptions_fieldAccessorTable = new
      com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(
        internal_static_greptime_v1_SetTableOptions_descriptor,
        new java.lang.String[] { "TableOptions", });
    internal_static_greptime_v1_UnsetTableOptions_descriptor =
      getDescriptor().getMessageTypes().get(21);
    internal_static_greptime_v1_UnsetTableOptions_fieldAccessorTable = new
      com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(
        internal_static_greptime_v1_UnsetTableOptions_descriptor,
        new java.lang.String[] { "Keys", });
    internal_static_greptime_v1_DropColumn_descriptor =
      getDescriptor().getMessageTypes().get(22);
    internal_static_greptime_v1_DropColumn_fieldAccessorTable = new
      com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(
        internal_static_greptime_v1_DropColumn_descriptor,
        new java.lang.String[] { "Name", });
    internal_static_greptime_v1_TableId_descriptor =
      getDescriptor().getMessageTypes().get(23);
    internal_static_greptime_v1_TableId_fieldAccessorTable = new
      com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(
        internal_static_greptime_v1_TableId_descriptor,
        new java.lang.String[] { "Id", });
    internal_static_greptime_v1_FlowId_descriptor =
      getDescriptor().getMessageTypes().get(24);
    internal_static_greptime_v1_FlowId_fieldAccessorTable = new
      com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(
        internal_static_greptime_v1_FlowId_descriptor,
        new java.lang.String[] { "Id", });
    internal_static_greptime_v1_ColumnDef_descriptor =
      getDescriptor().getMessageTypes().get(25);
    internal_static_greptime_v1_ColumnDef_fieldAccessorTable = new
      com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(
        internal_static_greptime_v1_ColumnDef_descriptor,
        new java.lang.String[] { "Name", "DataType", "IsNullable", "DefaultConstraint", "SemanticType", "Comment", "DatatypeExtension", "Options", });
    internal_static_greptime_v1_AddColumnLocation_descriptor =
      getDescriptor().getMessageTypes().get(26);
    internal_static_greptime_v1_AddColumnLocation_fieldAccessorTable = new
      com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(
        internal_static_greptime_v1_AddColumnLocation_descriptor,
        new java.lang.String[] { "LocationType", "AfterColumnName", });
    internal_static_greptime_v1_SetFulltext_descriptor =
      getDescriptor().getMessageTypes().get(27);
    internal_static_greptime_v1_SetFulltext_fieldAccessorTable = new
      com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(
        internal_static_greptime_v1_SetFulltext_descriptor,
        new java.lang.String[] { "ColumnName", "Enable", "Analyzer", "CaseSensitive", "Backend", });
    internal_static_greptime_v1_UnsetFulltext_descriptor =
      getDescriptor().getMessageTypes().get(28);
    internal_static_greptime_v1_UnsetFulltext_fieldAccessorTable = new
      com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(
        internal_static_greptime_v1_UnsetFulltext_descriptor,
        new java.lang.String[] { "ColumnName", });
    internal_static_greptime_v1_SetInverted_descriptor =
      getDescriptor().getMessageTypes().get(29);
    internal_static_greptime_v1_SetInverted_fieldAccessorTable = new
      com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(
        internal_static_greptime_v1_SetInverted_descriptor,
        new java.lang.String[] { "ColumnName", });
    internal_static_greptime_v1_UnsetInverted_descriptor =
      getDescriptor().getMessageTypes().get(30);
    internal_static_greptime_v1_UnsetInverted_fieldAccessorTable = new
      com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(
        internal_static_greptime_v1_UnsetInverted_descriptor,
        new java.lang.String[] { "ColumnName", });
    internal_static_greptime_v1_SetSkipping_descriptor =
      getDescriptor().getMessageTypes().get(31);
    internal_static_greptime_v1_SetSkipping_fieldAccessorTable = new
      com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(
        internal_static_greptime_v1_SetSkipping_descriptor,
        new java.lang.String[] { "ColumnName", "Enable", "Granularity", "SkippingIndexType", });
    internal_static_greptime_v1_UnsetSkipping_descriptor =
      getDescriptor().getMessageTypes().get(32);
    internal_static_greptime_v1_UnsetSkipping_fieldAccessorTable = new
      com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(
        internal_static_greptime_v1_UnsetSkipping_descriptor,
        new java.lang.String[] { "ColumnName", });
    internal_static_greptime_v1_AlterDatabaseExpr_descriptor =
      getDescriptor().getMessageTypes().get(33);
    internal_static_greptime_v1_AlterDatabaseExpr_fieldAccessorTable = new
      com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(
        internal_static_greptime_v1_AlterDatabaseExpr_descriptor,
        new java.lang.String[] { "CatalogName", "SchemaName", "SetDatabaseOptions", "UnsetDatabaseOptions", "Kind", });
    internal_static_greptime_v1_SetDatabaseOptions_descriptor =
      getDescriptor().getMessageTypes().get(34);
    internal_static_greptime_v1_SetDatabaseOptions_fieldAccessorTable = new
      com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(
        internal_static_greptime_v1_SetDatabaseOptions_descriptor,
        new java.lang.String[] { "SetDatabaseOptions", });
    internal_static_greptime_v1_UnsetDatabaseOptions_descriptor =
      getDescriptor().getMessageTypes().get(35);
    internal_static_greptime_v1_UnsetDatabaseOptions_fieldAccessorTable = new
      com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(
        internal_static_greptime_v1_UnsetDatabaseOptions_descriptor,
        new java.lang.String[] { "Keys", });
    io.greptime.v1.Common.getDescriptor();
  }

  // @@protoc_insertion_point(outer_class_scope)
}
