// 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);
  }
  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.AlterExpr alter = 3;</code>
     * @return Whether the alter field is set.
     */
    boolean hasAlter();
    /**
     * <code>.greptime.v1.AlterExpr alter = 3;</code>
     * @return The alter.
     */
    io.greptime.v1.Ddl.AlterExpr getAlter();
    /**
     * <code>.greptime.v1.AlterExpr alter = 3;</code>
     */
    io.greptime.v1.Ddl.AlterExprOrBuilder getAlterOrBuilder();

    /**
     * <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.CreateFlowTaskExpr create_flow_task = 8;</code>
     * @return Whether the createFlowTask field is set.
     */
    boolean hasCreateFlowTask();
    /**
     * <code>.greptime.v1.CreateFlowTaskExpr create_flow_task = 8;</code>
     * @return The createFlowTask.
     */
    io.greptime.v1.Ddl.CreateFlowTaskExpr getCreateFlowTask();
    /**
     * <code>.greptime.v1.CreateFlowTaskExpr create_flow_task = 8;</code>
     */
    io.greptime.v1.Ddl.CreateFlowTaskExprOrBuilder getCreateFlowTaskOrBuilder();

    /**
     * <code>.greptime.v1.DropFlowTaskExpr drop_flow_task = 9;</code>
     * @return Whether the dropFlowTask field is set.
     */
    boolean hasDropFlowTask();
    /**
     * <code>.greptime.v1.DropFlowTaskExpr drop_flow_task = 9;</code>
     * @return The dropFlowTask.
     */
    io.greptime.v1.Ddl.DropFlowTaskExpr getDropFlowTask();
    /**
     * <code>.greptime.v1.DropFlowTaskExpr drop_flow_task = 9;</code>
     */
    io.greptime.v1.Ddl.DropFlowTaskExprOrBuilder getDropFlowTaskOrBuilder();

    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.AlterExpr.Builder subBuilder = null;
              if (exprCase_ == 3) {
                subBuilder = ((io.greptime.v1.Ddl.AlterExpr) expr_).toBuilder();
              }
              expr_ =
                  input.readMessage(io.greptime.v1.Ddl.AlterExpr.parser(), extensionRegistry);
              if (subBuilder != null) {
                subBuilder.mergeFrom((io.greptime.v1.Ddl.AlterExpr) 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.CreateFlowTaskExpr.Builder subBuilder = null;
              if (exprCase_ == 8) {
                subBuilder = ((io.greptime.v1.Ddl.CreateFlowTaskExpr) expr_).toBuilder();
              }
              expr_ =
                  input.readMessage(io.greptime.v1.Ddl.CreateFlowTaskExpr.parser(), extensionRegistry);
              if (subBuilder != null) {
                subBuilder.mergeFrom((io.greptime.v1.Ddl.CreateFlowTaskExpr) expr_);
                expr_ = subBuilder.buildPartial();
              }
              exprCase_ = 8;
              break;
            }
            case 74: {
              io.greptime.v1.Ddl.DropFlowTaskExpr.Builder subBuilder = null;
              if (exprCase_ == 9) {
                subBuilder = ((io.greptime.v1.Ddl.DropFlowTaskExpr) expr_).toBuilder();
              }
              expr_ =
                  input.readMessage(io.greptime.v1.Ddl.DropFlowTaskExpr.parser(), extensionRegistry);
              if (subBuilder != null) {
                subBuilder.mergeFrom((io.greptime.v1.Ddl.DropFlowTaskExpr) expr_);
                expr_ = subBuilder.buildPartial();
              }
              exprCase_ = 9;
              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(3),
      DROP_TABLE(4),
      TRUNCATE_TABLE(7),
      CREATE_FLOW_TASK(8),
      DROP_FLOW_TASK(9),
      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;
          case 4: return DROP_TABLE;
          case 7: return TRUNCATE_TABLE;
          case 8: return CREATE_FLOW_TASK;
          case 9: return DROP_FLOW_TASK;
          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_FIELD_NUMBER = 3;
    /**
     * <code>.greptime.v1.AlterExpr alter = 3;</code>
     * @return Whether the alter field is set.
     */
    @java.lang.Override
    public boolean hasAlter() {
      return exprCase_ == 3;
    }
    /**
     * <code>.greptime.v1.AlterExpr alter = 3;</code>
     * @return The alter.
     */
    @java.lang.Override
    public io.greptime.v1.Ddl.AlterExpr getAlter() {
      if (exprCase_ == 3) {
         return (io.greptime.v1.Ddl.AlterExpr) expr_;
      }
      return io.greptime.v1.Ddl.AlterExpr.getDefaultInstance();
    }
    /**
     * <code>.greptime.v1.AlterExpr alter = 3;</code>
     */
    @java.lang.Override
    public io.greptime.v1.Ddl.AlterExprOrBuilder getAlterOrBuilder() {
      if (exprCase_ == 3) {
         return (io.greptime.v1.Ddl.AlterExpr) expr_;
      }
      return io.greptime.v1.Ddl.AlterExpr.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_TASK_FIELD_NUMBER = 8;
    /**
     * <code>.greptime.v1.CreateFlowTaskExpr create_flow_task = 8;</code>
     * @return Whether the createFlowTask field is set.
     */
    @java.lang.Override
    public boolean hasCreateFlowTask() {
      return exprCase_ == 8;
    }
    /**
     * <code>.greptime.v1.CreateFlowTaskExpr create_flow_task = 8;</code>
     * @return The createFlowTask.
     */
    @java.lang.Override
    public io.greptime.v1.Ddl.CreateFlowTaskExpr getCreateFlowTask() {
      if (exprCase_ == 8) {
         return (io.greptime.v1.Ddl.CreateFlowTaskExpr) expr_;
      }
      return io.greptime.v1.Ddl.CreateFlowTaskExpr.getDefaultInstance();
    }
    /**
     * <code>.greptime.v1.CreateFlowTaskExpr create_flow_task = 8;</code>
     */
    @java.lang.Override
    public io.greptime.v1.Ddl.CreateFlowTaskExprOrBuilder getCreateFlowTaskOrBuilder() {
      if (exprCase_ == 8) {
         return (io.greptime.v1.Ddl.CreateFlowTaskExpr) expr_;
      }
      return io.greptime.v1.Ddl.CreateFlowTaskExpr.getDefaultInstance();
    }

    public static final int DROP_FLOW_TASK_FIELD_NUMBER = 9;
    /**
     * <code>.greptime.v1.DropFlowTaskExpr drop_flow_task = 9;</code>
     * @return Whether the dropFlowTask field is set.
     */
    @java.lang.Override
    public boolean hasDropFlowTask() {
      return exprCase_ == 9;
    }
    /**
     * <code>.greptime.v1.DropFlowTaskExpr drop_flow_task = 9;</code>
     * @return The dropFlowTask.
     */
    @java.lang.Override
    public io.greptime.v1.Ddl.DropFlowTaskExpr getDropFlowTask() {
      if (exprCase_ == 9) {
         return (io.greptime.v1.Ddl.DropFlowTaskExpr) expr_;
      }
      return io.greptime.v1.Ddl.DropFlowTaskExpr.getDefaultInstance();
    }
    /**
     * <code>.greptime.v1.DropFlowTaskExpr drop_flow_task = 9;</code>
     */
    @java.lang.Override
    public io.greptime.v1.Ddl.DropFlowTaskExprOrBuilder getDropFlowTaskOrBuilder() {
      if (exprCase_ == 9) {
         return (io.greptime.v1.Ddl.DropFlowTaskExpr) expr_;
      }
      return io.greptime.v1.Ddl.DropFlowTaskExpr.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.AlterExpr) 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.CreateFlowTaskExpr) expr_);
      }
      if (exprCase_ == 9) {
        output.writeMessage(9, (io.greptime.v1.Ddl.DropFlowTaskExpr) 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.AlterExpr) 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.CreateFlowTaskExpr) expr_);
      }
      if (exprCase_ == 9) {
        size += com.google.protobuf.CodedOutputStream
          .computeMessageSize(9, (io.greptime.v1.Ddl.DropFlowTaskExpr) 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 (!getAlter()
              .equals(other.getAlter())) 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 (!getCreateFlowTask()
              .equals(other.getCreateFlowTask())) return false;
          break;
        case 9:
          if (!getDropFlowTask()
              .equals(other.getDropFlowTask())) 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_FIELD_NUMBER;
          hash = (53 * hash) + getAlter().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_TASK_FIELD_NUMBER;
          hash = (53 * hash) + getCreateFlowTask().hashCode();
          break;
        case 9:
          hash = (37 * hash) + DROP_FLOW_TASK_FIELD_NUMBER;
          hash = (53 * hash) + getDropFlowTask().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 (alterBuilder_ == null) {
            result.expr_ = expr_;
          } else {
            result.expr_ = alterBuilder_.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 (createFlowTaskBuilder_ == null) {
            result.expr_ = expr_;
          } else {
            result.expr_ = createFlowTaskBuilder_.build();
          }
        }
        if (exprCase_ == 9) {
          if (dropFlowTaskBuilder_ == null) {
            result.expr_ = expr_;
          } else {
            result.expr_ = dropFlowTaskBuilder_.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: {
            mergeAlter(other.getAlter());
            break;
          }
          case DROP_TABLE: {
            mergeDropTable(other.getDropTable());
            break;
          }
          case TRUNCATE_TABLE: {
            mergeTruncateTable(other.getTruncateTable());
            break;
          }
          case CREATE_FLOW_TASK: {
            mergeCreateFlowTask(other.getCreateFlowTask());
            break;
          }
          case DROP_FLOW_TASK: {
            mergeDropFlowTask(other.getDropFlowTask());
            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.AlterExpr, io.greptime.v1.Ddl.AlterExpr.Builder, io.greptime.v1.Ddl.AlterExprOrBuilder> alterBuilder_;
      /**
       * <code>.greptime.v1.AlterExpr alter = 3;</code>
       * @return Whether the alter field is set.
       */
      @java.lang.Override
      public boolean hasAlter() {
        return exprCase_ == 3;
      }
      /**
       * <code>.greptime.v1.AlterExpr alter = 3;</code>
       * @return The alter.
       */
      @java.lang.Override
      public io.greptime.v1.Ddl.AlterExpr getAlter() {
        if (alterBuilder_ == null) {
          if (exprCase_ == 3) {
            return (io.greptime.v1.Ddl.AlterExpr) expr_;
          }
          return io.greptime.v1.Ddl.AlterExpr.getDefaultInstance();
        } else {
          if (exprCase_ == 3) {
            return alterBuilder_.getMessage();
          }
          return io.greptime.v1.Ddl.AlterExpr.getDefaultInstance();
        }
      }
      /**
       * <code>.greptime.v1.AlterExpr alter = 3;</code>
       */
      public Builder setAlter(io.greptime.v1.Ddl.AlterExpr value) {
        if (alterBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          expr_ = value;
          onChanged();
        } else {
          alterBuilder_.setMessage(value);
        }
        exprCase_ = 3;
        return this;
      }
      /**
       * <code>.greptime.v1.AlterExpr alter = 3;</code>
       */
      public Builder setAlter(
          io.greptime.v1.Ddl.AlterExpr.Builder builderForValue) {
        if (alterBuilder_ == null) {
          expr_ = builderForValue.build();
          onChanged();
        } else {
          alterBuilder_.setMessage(builderForValue.build());
        }
        exprCase_ = 3;
        return this;
      }
      /**
       * <code>.greptime.v1.AlterExpr alter = 3;</code>
       */
      public Builder mergeAlter(io.greptime.v1.Ddl.AlterExpr value) {
        if (alterBuilder_ == null) {
          if (exprCase_ == 3 &&
              expr_ != io.greptime.v1.Ddl.AlterExpr.getDefaultInstance()) {
            expr_ = io.greptime.v1.Ddl.AlterExpr.newBuilder((io.greptime.v1.Ddl.AlterExpr) expr_)
                .mergeFrom(value).buildPartial();
          } else {
            expr_ = value;
          }
          onChanged();
        } else {
          if (exprCase_ == 3) {
            alterBuilder_.mergeFrom(value);
          } else {
            alterBuilder_.setMessage(value);
          }
        }
        exprCase_ = 3;
        return this;
      }
      /**
       * <code>.greptime.v1.AlterExpr alter = 3;</code>
       */
      public Builder clearAlter() {
        if (alterBuilder_ == null) {
          if (exprCase_ == 3) {
            exprCase_ = 0;
            expr_ = null;
            onChanged();
          }
        } else {
          if (exprCase_ == 3) {
            exprCase_ = 0;
            expr_ = null;
          }
          alterBuilder_.clear();
        }
        return this;
      }
      /**
       * <code>.greptime.v1.AlterExpr alter = 3;</code>
       */
      public io.greptime.v1.Ddl.AlterExpr.Builder getAlterBuilder() {
        return getAlterFieldBuilder().getBuilder();
      }
      /**
       * <code>.greptime.v1.AlterExpr alter = 3;</code>
       */
      @java.lang.Override
      public io.greptime.v1.Ddl.AlterExprOrBuilder getAlterOrBuilder() {
        if ((exprCase_ == 3) && (alterBuilder_ != null)) {
          return alterBuilder_.getMessageOrBuilder();
        } else {
          if (exprCase_ == 3) {
            return (io.greptime.v1.Ddl.AlterExpr) expr_;
          }
          return io.greptime.v1.Ddl.AlterExpr.getDefaultInstance();
        }
      }
      /**
       * <code>.greptime.v1.AlterExpr alter = 3;</code>
       */
      private com.google.protobuf.SingleFieldBuilderV3<
          io.greptime.v1.Ddl.AlterExpr, io.greptime.v1.Ddl.AlterExpr.Builder, io.greptime.v1.Ddl.AlterExprOrBuilder> 
          getAlterFieldBuilder() {
        if (alterBuilder_ == null) {
          if (!(exprCase_ == 3)) {
            expr_ = io.greptime.v1.Ddl.AlterExpr.getDefaultInstance();
          }
          alterBuilder_ = new com.google.protobuf.SingleFieldBuilderV3<
              io.greptime.v1.Ddl.AlterExpr, io.greptime.v1.Ddl.AlterExpr.Builder, io.greptime.v1.Ddl.AlterExprOrBuilder>(
                  (io.greptime.v1.Ddl.AlterExpr) expr_,
                  getParentForChildren(),
                  isClean());
          expr_ = null;
        }
        exprCase_ = 3;
        onChanged();;
        return alterBuilder_;
      }

      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.CreateFlowTaskExpr, io.greptime.v1.Ddl.CreateFlowTaskExpr.Builder, io.greptime.v1.Ddl.CreateFlowTaskExprOrBuilder> createFlowTaskBuilder_;
      /**
       * <code>.greptime.v1.CreateFlowTaskExpr create_flow_task = 8;</code>
       * @return Whether the createFlowTask field is set.
       */
      @java.lang.Override
      public boolean hasCreateFlowTask() {
        return exprCase_ == 8;
      }
      /**
       * <code>.greptime.v1.CreateFlowTaskExpr create_flow_task = 8;</code>
       * @return The createFlowTask.
       */
      @java.lang.Override
      public io.greptime.v1.Ddl.CreateFlowTaskExpr getCreateFlowTask() {
        if (createFlowTaskBuilder_ == null) {
          if (exprCase_ == 8) {
            return (io.greptime.v1.Ddl.CreateFlowTaskExpr) expr_;
          }
          return io.greptime.v1.Ddl.CreateFlowTaskExpr.getDefaultInstance();
        } else {
          if (exprCase_ == 8) {
            return createFlowTaskBuilder_.getMessage();
          }
          return io.greptime.v1.Ddl.CreateFlowTaskExpr.getDefaultInstance();
        }
      }
      /**
       * <code>.greptime.v1.CreateFlowTaskExpr create_flow_task = 8;</code>
       */
      public Builder setCreateFlowTask(io.greptime.v1.Ddl.CreateFlowTaskExpr value) {
        if (createFlowTaskBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          expr_ = value;
          onChanged();
        } else {
          createFlowTaskBuilder_.setMessage(value);
        }
        exprCase_ = 8;
        return this;
      }
      /**
       * <code>.greptime.v1.CreateFlowTaskExpr create_flow_task = 8;</code>
       */
      public Builder setCreateFlowTask(
          io.greptime.v1.Ddl.CreateFlowTaskExpr.Builder builderForValue) {
        if (createFlowTaskBuilder_ == null) {
          expr_ = builderForValue.build();
          onChanged();
        } else {
          createFlowTaskBuilder_.setMessage(builderForValue.build());
        }
        exprCase_ = 8;
        return this;
      }
      /**
       * <code>.greptime.v1.CreateFlowTaskExpr create_flow_task = 8;</code>
       */
      public Builder mergeCreateFlowTask(io.greptime.v1.Ddl.CreateFlowTaskExpr value) {
        if (createFlowTaskBuilder_ == null) {
          if (exprCase_ == 8 &&
              expr_ != io.greptime.v1.Ddl.CreateFlowTaskExpr.getDefaultInstance()) {
            expr_ = io.greptime.v1.Ddl.CreateFlowTaskExpr.newBuilder((io.greptime.v1.Ddl.CreateFlowTaskExpr) expr_)
                .mergeFrom(value).buildPartial();
          } else {
            expr_ = value;
          }
          onChanged();
        } else {
          if (exprCase_ == 8) {
            createFlowTaskBuilder_.mergeFrom(value);
          } else {
            createFlowTaskBuilder_.setMessage(value);
          }
        }
        exprCase_ = 8;
        return this;
      }
      /**
       * <code>.greptime.v1.CreateFlowTaskExpr create_flow_task = 8;</code>
       */
      public Builder clearCreateFlowTask() {
        if (createFlowTaskBuilder_ == null) {
          if (exprCase_ == 8) {
            exprCase_ = 0;
            expr_ = null;
            onChanged();
          }
        } else {
          if (exprCase_ == 8) {
            exprCase_ = 0;
            expr_ = null;
          }
          createFlowTaskBuilder_.clear();
        }
        return this;
      }
      /**
       * <code>.greptime.v1.CreateFlowTaskExpr create_flow_task = 8;</code>
       */
      public io.greptime.v1.Ddl.CreateFlowTaskExpr.Builder getCreateFlowTaskBuilder() {
        return getCreateFlowTaskFieldBuilder().getBuilder();
      }
      /**
       * <code>.greptime.v1.CreateFlowTaskExpr create_flow_task = 8;</code>
       */
      @java.lang.Override
      public io.greptime.v1.Ddl.CreateFlowTaskExprOrBuilder getCreateFlowTaskOrBuilder() {
        if ((exprCase_ == 8) && (createFlowTaskBuilder_ != null)) {
          return createFlowTaskBuilder_.getMessageOrBuilder();
        } else {
          if (exprCase_ == 8) {
            return (io.greptime.v1.Ddl.CreateFlowTaskExpr) expr_;
          }
          return io.greptime.v1.Ddl.CreateFlowTaskExpr.getDefaultInstance();
        }
      }
      /**
       * <code>.greptime.v1.CreateFlowTaskExpr create_flow_task = 8;</code>
       */
      private com.google.protobuf.SingleFieldBuilderV3<
          io.greptime.v1.Ddl.CreateFlowTaskExpr, io.greptime.v1.Ddl.CreateFlowTaskExpr.Builder, io.greptime.v1.Ddl.CreateFlowTaskExprOrBuilder> 
          getCreateFlowTaskFieldBuilder() {
        if (createFlowTaskBuilder_ == null) {
          if (!(exprCase_ == 8)) {
            expr_ = io.greptime.v1.Ddl.CreateFlowTaskExpr.getDefaultInstance();
          }
          createFlowTaskBuilder_ = new com.google.protobuf.SingleFieldBuilderV3<
              io.greptime.v1.Ddl.CreateFlowTaskExpr, io.greptime.v1.Ddl.CreateFlowTaskExpr.Builder, io.greptime.v1.Ddl.CreateFlowTaskExprOrBuilder>(
                  (io.greptime.v1.Ddl.CreateFlowTaskExpr) expr_,
                  getParentForChildren(),
                  isClean());
          expr_ = null;
        }
        exprCase_ = 8;
        onChanged();;
        return createFlowTaskBuilder_;
      }

      private com.google.protobuf.SingleFieldBuilderV3<
          io.greptime.v1.Ddl.DropFlowTaskExpr, io.greptime.v1.Ddl.DropFlowTaskExpr.Builder, io.greptime.v1.Ddl.DropFlowTaskExprOrBuilder> dropFlowTaskBuilder_;
      /**
       * <code>.greptime.v1.DropFlowTaskExpr drop_flow_task = 9;</code>
       * @return Whether the dropFlowTask field is set.
       */
      @java.lang.Override
      public boolean hasDropFlowTask() {
        return exprCase_ == 9;
      }
      /**
       * <code>.greptime.v1.DropFlowTaskExpr drop_flow_task = 9;</code>
       * @return The dropFlowTask.
       */
      @java.lang.Override
      public io.greptime.v1.Ddl.DropFlowTaskExpr getDropFlowTask() {
        if (dropFlowTaskBuilder_ == null) {
          if (exprCase_ == 9) {
            return (io.greptime.v1.Ddl.DropFlowTaskExpr) expr_;
          }
          return io.greptime.v1.Ddl.DropFlowTaskExpr.getDefaultInstance();
        } else {
          if (exprCase_ == 9) {
            return dropFlowTaskBuilder_.getMessage();
          }
          return io.greptime.v1.Ddl.DropFlowTaskExpr.getDefaultInstance();
        }
      }
      /**
       * <code>.greptime.v1.DropFlowTaskExpr drop_flow_task = 9;</code>
       */
      public Builder setDropFlowTask(io.greptime.v1.Ddl.DropFlowTaskExpr value) {
        if (dropFlowTaskBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          expr_ = value;
          onChanged();
        } else {
          dropFlowTaskBuilder_.setMessage(value);
        }
        exprCase_ = 9;
        return this;
      }
      /**
       * <code>.greptime.v1.DropFlowTaskExpr drop_flow_task = 9;</code>
       */
      public Builder setDropFlowTask(
          io.greptime.v1.Ddl.DropFlowTaskExpr.Builder builderForValue) {
        if (dropFlowTaskBuilder_ == null) {
          expr_ = builderForValue.build();
          onChanged();
        } else {
          dropFlowTaskBuilder_.setMessage(builderForValue.build());
        }
        exprCase_ = 9;
        return this;
      }
      /**
       * <code>.greptime.v1.DropFlowTaskExpr drop_flow_task = 9;</code>
       */
      public Builder mergeDropFlowTask(io.greptime.v1.Ddl.DropFlowTaskExpr value) {
        if (dropFlowTaskBuilder_ == null) {
          if (exprCase_ == 9 &&
              expr_ != io.greptime.v1.Ddl.DropFlowTaskExpr.getDefaultInstance()) {
            expr_ = io.greptime.v1.Ddl.DropFlowTaskExpr.newBuilder((io.greptime.v1.Ddl.DropFlowTaskExpr) expr_)
                .mergeFrom(value).buildPartial();
          } else {
            expr_ = value;
          }
          onChanged();
        } else {
          if (exprCase_ == 9) {
            dropFlowTaskBuilder_.mergeFrom(value);
          } else {
            dropFlowTaskBuilder_.setMessage(value);
          }
        }
        exprCase_ = 9;
        return this;
      }
      /**
       * <code>.greptime.v1.DropFlowTaskExpr drop_flow_task = 9;</code>
       */
      public Builder clearDropFlowTask() {
        if (dropFlowTaskBuilder_ == null) {
          if (exprCase_ == 9) {
            exprCase_ = 0;
            expr_ = null;
            onChanged();
          }
        } else {
          if (exprCase_ == 9) {
            exprCase_ = 0;
            expr_ = null;
          }
          dropFlowTaskBuilder_.clear();
        }
        return this;
      }
      /**
       * <code>.greptime.v1.DropFlowTaskExpr drop_flow_task = 9;</code>
       */
      public io.greptime.v1.Ddl.DropFlowTaskExpr.Builder getDropFlowTaskBuilder() {
        return getDropFlowTaskFieldBuilder().getBuilder();
      }
      /**
       * <code>.greptime.v1.DropFlowTaskExpr drop_flow_task = 9;</code>
       */
      @java.lang.Override
      public io.greptime.v1.Ddl.DropFlowTaskExprOrBuilder getDropFlowTaskOrBuilder() {
        if ((exprCase_ == 9) && (dropFlowTaskBuilder_ != null)) {
          return dropFlowTaskBuilder_.getMessageOrBuilder();
        } else {
          if (exprCase_ == 9) {
            return (io.greptime.v1.Ddl.DropFlowTaskExpr) expr_;
          }
          return io.greptime.v1.Ddl.DropFlowTaskExpr.getDefaultInstance();
        }
      }
      /**
       * <code>.greptime.v1.DropFlowTaskExpr drop_flow_task = 9;</code>
       */
      private com.google.protobuf.SingleFieldBuilderV3<
          io.greptime.v1.Ddl.DropFlowTaskExpr, io.greptime.v1.Ddl.DropFlowTaskExpr.Builder, io.greptime.v1.Ddl.DropFlowTaskExprOrBuilder> 
          getDropFlowTaskFieldBuilder() {
        if (dropFlowTaskBuilder_ == null) {
          if (!(exprCase_ == 9)) {
            expr_ = io.greptime.v1.Ddl.DropFlowTaskExpr.getDefaultInstance();
          }
          dropFlowTaskBuilder_ = new com.google.protobuf.SingleFieldBuilderV3<
              io.greptime.v1.Ddl.DropFlowTaskExpr, io.greptime.v1.Ddl.DropFlowTaskExpr.Builder, io.greptime.v1.Ddl.DropFlowTaskExprOrBuilder>(
                  (io.greptime.v1.Ddl.DropFlowTaskExpr) expr_,
                  getParentForChildren(),
                  isClean());
          expr_ = null;
        }
        exprCase_ = 9;
        onChanged();;
        return dropFlowTaskBuilder_;
      }
      @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 CreateFlowTaskExprOrBuilder extends
      // @@protoc_insertion_point(interface_extends:greptime.v1.CreateFlowTaskExpr)
      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 task_name = 2;</code>
     * @return The taskName.
     */
    java.lang.String getTaskName();
    /**
     * <code>string task_name = 2;</code>
     * @return The bytes for taskName.
     */
    com.google.protobuf.ByteString
        getTaskNameBytes();

    /**
     * <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();

    /**
     * <code>string expire_when = 7;</code>
     * @return The expireWhen.
     */
    java.lang.String getExpireWhen();
    /**
     * <code>string expire_when = 7;</code>
     * @return The bytes for expireWhen.
     */
    com.google.protobuf.ByteString
        getExpireWhenBytes();

    /**
     * <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; task_options = 10;</code>
     */
    int getTaskOptionsCount();
    /**
     * <code>map&lt;string, string&gt; task_options = 10;</code>
     */
    boolean containsTaskOptions(
        java.lang.String key);
    /**
     * Use {@link #getTaskOptionsMap()} instead.
     */
    @java.lang.Deprecated
    java.util.Map<java.lang.String, java.lang.String>
    getTaskOptions();
    /**
     * <code>map&lt;string, string&gt; task_options = 10;</code>
     */
    java.util.Map<java.lang.String, java.lang.String>
    getTaskOptionsMap();
    /**
     * <code>map&lt;string, string&gt; task_options = 10;</code>
     */

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

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

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

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

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

              expireWhen_ = s;
              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)) {
                taskOptions_ = com.google.protobuf.MapField.newMapField(
                    TaskOptionsDefaultEntryHolder.defaultEntry);
                mutable_bitField0_ |= 0x00000002;
              }
              com.google.protobuf.MapEntry<java.lang.String, java.lang.String>
              taskOptions__ = input.readMessage(
                  TaskOptionsDefaultEntryHolder.defaultEntry.getParserForType(), extensionRegistry);
              taskOptions_.getMutableMap().put(
                  taskOptions__.getKey(), taskOptions__.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_CreateFlowTaskExpr_descriptor;
    }

    @SuppressWarnings({"rawtypes"})
    @java.lang.Override
    protected com.google.protobuf.MapField internalGetMapField(
        int number) {
      switch (number) {
        case 10:
          return internalGetTaskOptions();
        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_CreateFlowTaskExpr_fieldAccessorTable
          .ensureFieldAccessorsInitialized(
              io.greptime.v1.Ddl.CreateFlowTaskExpr.class, io.greptime.v1.Ddl.CreateFlowTaskExpr.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 TASK_NAME_FIELD_NUMBER = 2;
    private volatile java.lang.Object taskName_;
    /**
     * <code>string task_name = 2;</code>
     * @return The taskName.
     */
    @java.lang.Override
    public java.lang.String getTaskName() {
      java.lang.Object ref = taskName_;
      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();
        taskName_ = s;
        return s;
      }
    }
    /**
     * <code>string task_name = 2;</code>
     * @return The bytes for taskName.
     */
    @java.lang.Override
    public com.google.protobuf.ByteString
        getTaskNameBytes() {
      java.lang.Object ref = taskName_;
      if (ref instanceof java.lang.String) {
        com.google.protobuf.ByteString b = 
            com.google.protobuf.ByteString.copyFromUtf8(
                (java.lang.String) ref);
        taskName_ = 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_WHEN_FIELD_NUMBER = 7;
    private volatile java.lang.Object expireWhen_;
    /**
     * <code>string expire_when = 7;</code>
     * @return The expireWhen.
     */
    @java.lang.Override
    public java.lang.String getExpireWhen() {
      java.lang.Object ref = expireWhen_;
      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();
        expireWhen_ = s;
        return s;
      }
    }
    /**
     * <code>string expire_when = 7;</code>
     * @return The bytes for expireWhen.
     */
    @java.lang.Override
    public com.google.protobuf.ByteString
        getExpireWhenBytes() {
      java.lang.Object ref = expireWhen_;
      if (ref instanceof java.lang.String) {
        com.google.protobuf.ByteString b = 
            com.google.protobuf.ByteString.copyFromUtf8(
                (java.lang.String) ref);
        expireWhen_ = b;
        return b;
      } else {
        return (com.google.protobuf.ByteString) ref;
      }
    }

    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 TASK_OPTIONS_FIELD_NUMBER = 10;
    private static final class TaskOptionsDefaultEntryHolder {
      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_CreateFlowTaskExpr_TaskOptionsEntry_descriptor, 
                  com.google.protobuf.WireFormat.FieldType.STRING,
                  "",
                  com.google.protobuf.WireFormat.FieldType.STRING,
                  "");
    }
    private com.google.protobuf.MapField<
        java.lang.String, java.lang.String> taskOptions_;
    private com.google.protobuf.MapField<java.lang.String, java.lang.String>
    internalGetTaskOptions() {
      if (taskOptions_ == null) {
        return com.google.protobuf.MapField.emptyMapField(
            TaskOptionsDefaultEntryHolder.defaultEntry);
      }
      return taskOptions_;
    }

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

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

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

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

    public java.lang.String getTaskOptionsOrThrow(
        java.lang.String key) {
      if (key == null) { throw new NullPointerException("map key"); }
      java.util.Map<java.lang.String, java.lang.String> map =
          internalGetTaskOptions().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(taskName_)) {
        com.google.protobuf.GeneratedMessageV3.writeString(output, 2, taskName_);
      }
      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 (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(expireWhen_)) {
        com.google.protobuf.GeneratedMessageV3.writeString(output, 7, expireWhen_);
      }
      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,
          internalGetTaskOptions(),
          TaskOptionsDefaultEntryHolder.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(taskName_)) {
        size += com.google.protobuf.GeneratedMessageV3.computeStringSize(2, taskName_);
      }
      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 (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(expireWhen_)) {
        size += com.google.protobuf.GeneratedMessageV3.computeStringSize(7, expireWhen_);
      }
      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
           : internalGetTaskOptions().getMap().entrySet()) {
        com.google.protobuf.MapEntry<java.lang.String, java.lang.String>
        taskOptions__ = TaskOptionsDefaultEntryHolder.defaultEntry.newBuilderForType()
            .setKey(entry.getKey())
            .setValue(entry.getValue())
            .build();
        size += com.google.protobuf.CodedOutputStream
            .computeMessageSize(10, taskOptions__);
      }
      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.CreateFlowTaskExpr)) {
        return super.equals(obj);
      }
      io.greptime.v1.Ddl.CreateFlowTaskExpr other = (io.greptime.v1.Ddl.CreateFlowTaskExpr) obj;

      if (!getCatalogName()
          .equals(other.getCatalogName())) return false;
      if (!getTaskName()
          .equals(other.getTaskName())) 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 (!getExpireWhen()
          .equals(other.getExpireWhen())) return false;
      if (!getComment()
          .equals(other.getComment())) return false;
      if (!getSql()
          .equals(other.getSql())) return false;
      if (!internalGetTaskOptions().equals(
          other.internalGetTaskOptions())) 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) + TASK_NAME_FIELD_NUMBER;
      hash = (53 * hash) + getTaskName().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());
      hash = (37 * hash) + EXPIRE_WHEN_FIELD_NUMBER;
      hash = (53 * hash) + getExpireWhen().hashCode();
      hash = (37 * hash) + COMMENT_FIELD_NUMBER;
      hash = (53 * hash) + getComment().hashCode();
      hash = (37 * hash) + SQL_FIELD_NUMBER;
      hash = (53 * hash) + getSql().hashCode();
      if (!internalGetTaskOptions().getMap().isEmpty()) {
        hash = (37 * hash) + TASK_OPTIONS_FIELD_NUMBER;
        hash = (53 * hash) + internalGetTaskOptions().hashCode();
      }
      hash = (29 * hash) + unknownFields.hashCode();
      memoizedHashCode = hash;
      return hash;
    }

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

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

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

        taskName_ = "";

        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;

        expireWhen_ = "";

        comment_ = "";

        sql_ = "";

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

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

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

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

      @java.lang.Override
      public io.greptime.v1.Ddl.CreateFlowTaskExpr buildPartial() {
        io.greptime.v1.Ddl.CreateFlowTaskExpr result = new io.greptime.v1.Ddl.CreateFlowTaskExpr(this);
        int from_bitField0_ = bitField0_;
        result.catalogName_ = catalogName_;
        result.taskName_ = taskName_;
        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_;
        result.expireWhen_ = expireWhen_;
        result.comment_ = comment_;
        result.sql_ = sql_;
        result.taskOptions_ = internalGetTaskOptions();
        result.taskOptions_.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.CreateFlowTaskExpr) {
          return mergeFrom((io.greptime.v1.Ddl.CreateFlowTaskExpr)other);
        } else {
          super.mergeFrom(other);
          return this;
        }
      }

      public Builder mergeFrom(io.greptime.v1.Ddl.CreateFlowTaskExpr other) {
        if (other == io.greptime.v1.Ddl.CreateFlowTaskExpr.getDefaultInstance()) return this;
        if (!other.getCatalogName().isEmpty()) {
          catalogName_ = other.catalogName_;
          onChanged();
        }
        if (!other.getTaskName().isEmpty()) {
          taskName_ = other.taskName_;
          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.getExpireWhen().isEmpty()) {
          expireWhen_ = other.expireWhen_;
          onChanged();
        }
        if (!other.getComment().isEmpty()) {
          comment_ = other.comment_;
          onChanged();
        }
        if (!other.getSql().isEmpty()) {
          sql_ = other.sql_;
          onChanged();
        }
        internalGetMutableTaskOptions().mergeFrom(
            other.internalGetTaskOptions());
        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.CreateFlowTaskExpr parsedMessage = null;
        try {
          parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry);
        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
          parsedMessage = (io.greptime.v1.Ddl.CreateFlowTaskExpr) 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 taskName_ = "";
      /**
       * <code>string task_name = 2;</code>
       * @return The taskName.
       */
      public java.lang.String getTaskName() {
        java.lang.Object ref = taskName_;
        if (!(ref instanceof java.lang.String)) {
          com.google.protobuf.ByteString bs =
              (com.google.protobuf.ByteString) ref;
          java.lang.String s = bs.toStringUtf8();
          taskName_ = s;
          return s;
        } else {
          return (java.lang.String) ref;
        }
      }
      /**
       * <code>string task_name = 2;</code>
       * @return The bytes for taskName.
       */
      public com.google.protobuf.ByteString
          getTaskNameBytes() {
        java.lang.Object ref = taskName_;
        if (ref instanceof String) {
          com.google.protobuf.ByteString b = 
              com.google.protobuf.ByteString.copyFromUtf8(
                  (java.lang.String) ref);
          taskName_ = b;
          return b;
        } else {
          return (com.google.protobuf.ByteString) ref;
        }
      }
      /**
       * <code>string task_name = 2;</code>
       * @param value The taskName to set.
       * @return This builder for chaining.
       */
      public Builder setTaskName(
          java.lang.String value) {
        if (value == null) {
    throw new NullPointerException();
  }
  
        taskName_ = value;
        onChanged();
        return this;
      }
      /**
       * <code>string task_name = 2;</code>
       * @return This builder for chaining.
       */
      public Builder clearTaskName() {
        
        taskName_ = getDefaultInstance().getTaskName();
        onChanged();
        return this;
      }
      /**
       * <code>string task_name = 2;</code>
       * @param value The bytes for taskName to set.
       * @return This builder for chaining.
       */
      public Builder setTaskNameBytes(
          com.google.protobuf.ByteString value) {
        if (value == null) {
    throw new NullPointerException();
  }
  checkByteStringIsUtf8(value);
        
        taskName_ = 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 java.lang.Object expireWhen_ = "";
      /**
       * <code>string expire_when = 7;</code>
       * @return The expireWhen.
       */
      public java.lang.String getExpireWhen() {
        java.lang.Object ref = expireWhen_;
        if (!(ref instanceof java.lang.String)) {
          com.google.protobuf.ByteString bs =
              (com.google.protobuf.ByteString) ref;
          java.lang.String s = bs.toStringUtf8();
          expireWhen_ = s;
          return s;
        } else {
          return (java.lang.String) ref;
        }
      }
      /**
       * <code>string expire_when = 7;</code>
       * @return The bytes for expireWhen.
       */
      public com.google.protobuf.ByteString
          getExpireWhenBytes() {
        java.lang.Object ref = expireWhen_;
        if (ref instanceof String) {
          com.google.protobuf.ByteString b = 
              com.google.protobuf.ByteString.copyFromUtf8(
                  (java.lang.String) ref);
          expireWhen_ = b;
          return b;
        } else {
          return (com.google.protobuf.ByteString) ref;
        }
      }
      /**
       * <code>string expire_when = 7;</code>
       * @param value The expireWhen to set.
       * @return This builder for chaining.
       */
      public Builder setExpireWhen(
          java.lang.String value) {
        if (value == null) {
    throw new NullPointerException();
  }
  
        expireWhen_ = value;
        onChanged();
        return this;
      }
      /**
       * <code>string expire_when = 7;</code>
       * @return This builder for chaining.
       */
      public Builder clearExpireWhen() {
        
        expireWhen_ = getDefaultInstance().getExpireWhen();
        onChanged();
        return this;
      }
      /**
       * <code>string expire_when = 7;</code>
       * @param value The bytes for expireWhen to set.
       * @return This builder for chaining.
       */
      public Builder setExpireWhenBytes(
          com.google.protobuf.ByteString value) {
        if (value == null) {
    throw new NullPointerException();
  }
  checkByteStringIsUtf8(value);
        
        expireWhen_ = value;
        onChanged();
        return this;
      }

      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> taskOptions_;
      private com.google.protobuf.MapField<java.lang.String, java.lang.String>
      internalGetTaskOptions() {
        if (taskOptions_ == null) {
          return com.google.protobuf.MapField.emptyMapField(
              TaskOptionsDefaultEntryHolder.defaultEntry);
        }
        return taskOptions_;
      }
      private com.google.protobuf.MapField<java.lang.String, java.lang.String>
      internalGetMutableTaskOptions() {
        onChanged();;
        if (taskOptions_ == null) {
          taskOptions_ = com.google.protobuf.MapField.newMapField(
              TaskOptionsDefaultEntryHolder.defaultEntry);
        }
        if (!taskOptions_.isMutable()) {
          taskOptions_ = taskOptions_.copy();
        }
        return taskOptions_;
      }

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

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

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

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

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

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

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

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

      public Builder putAllTaskOptions(
          java.util.Map<java.lang.String, java.lang.String> values) {
        internalGetMutableTaskOptions().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.CreateFlowTaskExpr)
    }

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

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

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

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

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

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

  }

  public interface DropFlowTaskExprOrBuilder extends
      // @@protoc_insertion_point(interface_extends:greptime.v1.DropFlowTaskExpr)
      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 task_name = 2;</code>
     * @return The taskName.
     */
    java.lang.String getTaskName();
    /**
     * <code>string task_name = 2;</code>
     * @return The bytes for taskName.
     */
    com.google.protobuf.ByteString
        getTaskNameBytes();
  }
  /**
   * <pre>
   * Remove a flow task.
   * </pre>
   *
   * Protobuf type {@code greptime.v1.DropFlowTaskExpr}
   */
  public static final class DropFlowTaskExpr extends
      com.google.protobuf.GeneratedMessageV3 implements
      // @@protoc_insertion_point(message_implements:greptime.v1.DropFlowTaskExpr)
      DropFlowTaskExprOrBuilder {
  private static final long serialVersionUID = 0L;
    // Use DropFlowTaskExpr.newBuilder() to construct.
    private DropFlowTaskExpr(com.google.protobuf.GeneratedMessageV3.Builder<?> builder) {
      super(builder);
    }
    private DropFlowTaskExpr() {
      catalogName_ = "";
      taskName_ = "";
    }

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

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

              taskName_ = 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_DropFlowTaskExpr_descriptor;
    }

    @java.lang.Override
    protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
        internalGetFieldAccessorTable() {
      return io.greptime.v1.Ddl.internal_static_greptime_v1_DropFlowTaskExpr_fieldAccessorTable
          .ensureFieldAccessorsInitialized(
              io.greptime.v1.Ddl.DropFlowTaskExpr.class, io.greptime.v1.Ddl.DropFlowTaskExpr.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 TASK_NAME_FIELD_NUMBER = 2;
    private volatile java.lang.Object taskName_;
    /**
     * <code>string task_name = 2;</code>
     * @return The taskName.
     */
    @java.lang.Override
    public java.lang.String getTaskName() {
      java.lang.Object ref = taskName_;
      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();
        taskName_ = s;
        return s;
      }
    }
    /**
     * <code>string task_name = 2;</code>
     * @return The bytes for taskName.
     */
    @java.lang.Override
    public com.google.protobuf.ByteString
        getTaskNameBytes() {
      java.lang.Object ref = taskName_;
      if (ref instanceof java.lang.String) {
        com.google.protobuf.ByteString b = 
            com.google.protobuf.ByteString.copyFromUtf8(
                (java.lang.String) ref);
        taskName_ = 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(taskName_)) {
        com.google.protobuf.GeneratedMessageV3.writeString(output, 2, taskName_);
      }
      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(taskName_)) {
        size += com.google.protobuf.GeneratedMessageV3.computeStringSize(2, taskName_);
      }
      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.DropFlowTaskExpr)) {
        return super.equals(obj);
      }
      io.greptime.v1.Ddl.DropFlowTaskExpr other = (io.greptime.v1.Ddl.DropFlowTaskExpr) obj;

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

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

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

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

        taskName_ = "";

        return this;
      }

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

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

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

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

      public Builder mergeFrom(io.greptime.v1.Ddl.DropFlowTaskExpr other) {
        if (other == io.greptime.v1.Ddl.DropFlowTaskExpr.getDefaultInstance()) return this;
        if (!other.getCatalogName().isEmpty()) {
          catalogName_ = other.catalogName_;
          onChanged();
        }
        if (!other.getTaskName().isEmpty()) {
          taskName_ = other.taskName_;
          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.DropFlowTaskExpr parsedMessage = null;
        try {
          parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry);
        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
          parsedMessage = (io.greptime.v1.Ddl.DropFlowTaskExpr) 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 taskName_ = "";
      /**
       * <code>string task_name = 2;</code>
       * @return The taskName.
       */
      public java.lang.String getTaskName() {
        java.lang.Object ref = taskName_;
        if (!(ref instanceof java.lang.String)) {
          com.google.protobuf.ByteString bs =
              (com.google.protobuf.ByteString) ref;
          java.lang.String s = bs.toStringUtf8();
          taskName_ = s;
          return s;
        } else {
          return (java.lang.String) ref;
        }
      }
      /**
       * <code>string task_name = 2;</code>
       * @return The bytes for taskName.
       */
      public com.google.protobuf.ByteString
          getTaskNameBytes() {
        java.lang.Object ref = taskName_;
        if (ref instanceof String) {
          com.google.protobuf.ByteString b = 
              com.google.protobuf.ByteString.copyFromUtf8(
                  (java.lang.String) ref);
          taskName_ = b;
          return b;
        } else {
          return (com.google.protobuf.ByteString) ref;
        }
      }
      /**
       * <code>string task_name = 2;</code>
       * @param value The taskName to set.
       * @return This builder for chaining.
       */
      public Builder setTaskName(
          java.lang.String value) {
        if (value == null) {
    throw new NullPointerException();
  }
  
        taskName_ = value;
        onChanged();
        return this;
      }
      /**
       * <code>string task_name = 2;</code>
       * @return This builder for chaining.
       */
      public Builder clearTaskName() {
        
        taskName_ = getDefaultInstance().getTaskName();
        onChanged();
        return this;
      }
      /**
       * <code>string task_name = 2;</code>
       * @param value The bytes for taskName to set.
       * @return This builder for chaining.
       */
      public Builder setTaskNameBytes(
          com.google.protobuf.ByteString value) {
        if (value == null) {
    throw new NullPointerException();
  }
  checkByteStringIsUtf8(value);
        
        taskName_ = 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.DropFlowTaskExpr)
    }

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

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

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

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

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

    @java.lang.Override
    public io.greptime.v1.Ddl.DropFlowTaskExpr 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 AlterExprOrBuilder extends
      // @@protoc_insertion_point(interface_extends:greptime.v1.AlterExpr)
      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.ChangeColumnTypes change_column_types = 7;</code>
     * @return Whether the changeColumnTypes field is set.
     */
    boolean hasChangeColumnTypes();
    /**
     * <code>.greptime.v1.ChangeColumnTypes change_column_types = 7;</code>
     * @return The changeColumnTypes.
     */
    io.greptime.v1.Ddl.ChangeColumnTypes getChangeColumnTypes();
    /**
     * <code>.greptime.v1.ChangeColumnTypes change_column_types = 7;</code>
     */
    io.greptime.v1.Ddl.ChangeColumnTypesOrBuilder getChangeColumnTypesOrBuilder();

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

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

    @java.lang.Override
    public final com.google.protobuf.UnknownFieldSet
    getUnknownFields() {
      return this.unknownFields;
    }
    private AlterExpr(
        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.ChangeColumnTypes.Builder subBuilder = null;
              if (kindCase_ == 7) {
                subBuilder = ((io.greptime.v1.Ddl.ChangeColumnTypes) kind_).toBuilder();
              }
              kind_ =
                  input.readMessage(io.greptime.v1.Ddl.ChangeColumnTypes.parser(), extensionRegistry);
              if (subBuilder != null) {
                subBuilder.mergeFrom((io.greptime.v1.Ddl.ChangeColumnTypes) kind_);
                kind_ = subBuilder.buildPartial();
              }
              kindCase_ = 7;
              break;
            }
            default: {
              if (!parseUnknownField(
                  input, unknownFields, extensionRegistry, tag)) {
                done = true;
              }
              break;
            }
          }
        }
      } catch (com.google.protobuf.InvalidProtocolBufferException e) {
        throw e.setUnfinishedMessage(this);
      } catch (com.google.protobuf.UninitializedMessageException e) {
        throw e.asInvalidProtocolBufferException().setUnfinishedMessage(this);
      } catch (java.io.IOException e) {
        throw new com.google.protobuf.InvalidProtocolBufferException(
            e).setUnfinishedMessage(this);
      } finally {
        this.unknownFields = unknownFields.build();
        makeExtensionsImmutable();
      }
    }
    public static final com.google.protobuf.Descriptors.Descriptor
        getDescriptor() {
      return io.greptime.v1.Ddl.internal_static_greptime_v1_AlterExpr_descriptor;
    }

    @java.lang.Override
    protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
        internalGetFieldAccessorTable() {
      return io.greptime.v1.Ddl.internal_static_greptime_v1_AlterExpr_fieldAccessorTable
          .ensureFieldAccessorsInitialized(
              io.greptime.v1.Ddl.AlterExpr.class, io.greptime.v1.Ddl.AlterExpr.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),
      CHANGE_COLUMN_TYPES(7),
      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 CHANGE_COLUMN_TYPES;
          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 CHANGE_COLUMN_TYPES_FIELD_NUMBER = 7;
    /**
     * <code>.greptime.v1.ChangeColumnTypes change_column_types = 7;</code>
     * @return Whether the changeColumnTypes field is set.
     */
    @java.lang.Override
    public boolean hasChangeColumnTypes() {
      return kindCase_ == 7;
    }
    /**
     * <code>.greptime.v1.ChangeColumnTypes change_column_types = 7;</code>
     * @return The changeColumnTypes.
     */
    @java.lang.Override
    public io.greptime.v1.Ddl.ChangeColumnTypes getChangeColumnTypes() {
      if (kindCase_ == 7) {
         return (io.greptime.v1.Ddl.ChangeColumnTypes) kind_;
      }
      return io.greptime.v1.Ddl.ChangeColumnTypes.getDefaultInstance();
    }
    /**
     * <code>.greptime.v1.ChangeColumnTypes change_column_types = 7;</code>
     */
    @java.lang.Override
    public io.greptime.v1.Ddl.ChangeColumnTypesOrBuilder getChangeColumnTypesOrBuilder() {
      if (kindCase_ == 7) {
         return (io.greptime.v1.Ddl.ChangeColumnTypes) kind_;
      }
      return io.greptime.v1.Ddl.ChangeColumnTypes.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.ChangeColumnTypes) 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.ChangeColumnTypes) 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.AlterExpr)) {
        return super.equals(obj);
      }
      io.greptime.v1.Ddl.AlterExpr other = (io.greptime.v1.Ddl.AlterExpr) 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 (!getChangeColumnTypes()
              .equals(other.getChangeColumnTypes())) 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) + CHANGE_COLUMN_TYPES_FIELD_NUMBER;
          hash = (53 * hash) + getChangeColumnTypes().hashCode();
          break;
        case 0:
        default:
      }
      hash = (29 * hash) + unknownFields.hashCode();
      memoizedHashCode = hash;
      return hash;
    }

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

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

      // Construct using io.greptime.v1.Ddl.AlterExpr.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_AlterExpr_descriptor;
      }

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

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

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

      public Builder mergeFrom(io.greptime.v1.Ddl.AlterExpr other) {
        if (other == io.greptime.v1.Ddl.AlterExpr.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 CHANGE_COLUMN_TYPES: {
            mergeChangeColumnTypes(other.getChangeColumnTypes());
            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.AlterExpr parsedMessage = null;
        try {
          parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry);
        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
          parsedMessage = (io.greptime.v1.Ddl.AlterExpr) 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.ChangeColumnTypes, io.greptime.v1.Ddl.ChangeColumnTypes.Builder, io.greptime.v1.Ddl.ChangeColumnTypesOrBuilder> changeColumnTypesBuilder_;
      /**
       * <code>.greptime.v1.ChangeColumnTypes change_column_types = 7;</code>
       * @return Whether the changeColumnTypes field is set.
       */
      @java.lang.Override
      public boolean hasChangeColumnTypes() {
        return kindCase_ == 7;
      }
      /**
       * <code>.greptime.v1.ChangeColumnTypes change_column_types = 7;</code>
       * @return The changeColumnTypes.
       */
      @java.lang.Override
      public io.greptime.v1.Ddl.ChangeColumnTypes getChangeColumnTypes() {
        if (changeColumnTypesBuilder_ == null) {
          if (kindCase_ == 7) {
            return (io.greptime.v1.Ddl.ChangeColumnTypes) kind_;
          }
          return io.greptime.v1.Ddl.ChangeColumnTypes.getDefaultInstance();
        } else {
          if (kindCase_ == 7) {
            return changeColumnTypesBuilder_.getMessage();
          }
          return io.greptime.v1.Ddl.ChangeColumnTypes.getDefaultInstance();
        }
      }
      /**
       * <code>.greptime.v1.ChangeColumnTypes change_column_types = 7;</code>
       */
      public Builder setChangeColumnTypes(io.greptime.v1.Ddl.ChangeColumnTypes value) {
        if (changeColumnTypesBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          kind_ = value;
          onChanged();
        } else {
          changeColumnTypesBuilder_.setMessage(value);
        }
        kindCase_ = 7;
        return this;
      }
      /**
       * <code>.greptime.v1.ChangeColumnTypes change_column_types = 7;</code>
       */
      public Builder setChangeColumnTypes(
          io.greptime.v1.Ddl.ChangeColumnTypes.Builder builderForValue) {
        if (changeColumnTypesBuilder_ == null) {
          kind_ = builderForValue.build();
          onChanged();
        } else {
          changeColumnTypesBuilder_.setMessage(builderForValue.build());
        }
        kindCase_ = 7;
        return this;
      }
      /**
       * <code>.greptime.v1.ChangeColumnTypes change_column_types = 7;</code>
       */
      public Builder mergeChangeColumnTypes(io.greptime.v1.Ddl.ChangeColumnTypes value) {
        if (changeColumnTypesBuilder_ == null) {
          if (kindCase_ == 7 &&
              kind_ != io.greptime.v1.Ddl.ChangeColumnTypes.getDefaultInstance()) {
            kind_ = io.greptime.v1.Ddl.ChangeColumnTypes.newBuilder((io.greptime.v1.Ddl.ChangeColumnTypes) kind_)
                .mergeFrom(value).buildPartial();
          } else {
            kind_ = value;
          }
          onChanged();
        } else {
          if (kindCase_ == 7) {
            changeColumnTypesBuilder_.mergeFrom(value);
          } else {
            changeColumnTypesBuilder_.setMessage(value);
          }
        }
        kindCase_ = 7;
        return this;
      }
      /**
       * <code>.greptime.v1.ChangeColumnTypes change_column_types = 7;</code>
       */
      public Builder clearChangeColumnTypes() {
        if (changeColumnTypesBuilder_ == null) {
          if (kindCase_ == 7) {
            kindCase_ = 0;
            kind_ = null;
            onChanged();
          }
        } else {
          if (kindCase_ == 7) {
            kindCase_ = 0;
            kind_ = null;
          }
          changeColumnTypesBuilder_.clear();
        }
        return this;
      }
      /**
       * <code>.greptime.v1.ChangeColumnTypes change_column_types = 7;</code>
       */
      public io.greptime.v1.Ddl.ChangeColumnTypes.Builder getChangeColumnTypesBuilder() {
        return getChangeColumnTypesFieldBuilder().getBuilder();
      }
      /**
       * <code>.greptime.v1.ChangeColumnTypes change_column_types = 7;</code>
       */
      @java.lang.Override
      public io.greptime.v1.Ddl.ChangeColumnTypesOrBuilder getChangeColumnTypesOrBuilder() {
        if ((kindCase_ == 7) && (changeColumnTypesBuilder_ != null)) {
          return changeColumnTypesBuilder_.getMessageOrBuilder();
        } else {
          if (kindCase_ == 7) {
            return (io.greptime.v1.Ddl.ChangeColumnTypes) kind_;
          }
          return io.greptime.v1.Ddl.ChangeColumnTypes.getDefaultInstance();
        }
      }
      /**
       * <code>.greptime.v1.ChangeColumnTypes change_column_types = 7;</code>
       */
      private com.google.protobuf.SingleFieldBuilderV3<
          io.greptime.v1.Ddl.ChangeColumnTypes, io.greptime.v1.Ddl.ChangeColumnTypes.Builder, io.greptime.v1.Ddl.ChangeColumnTypesOrBuilder> 
          getChangeColumnTypesFieldBuilder() {
        if (changeColumnTypesBuilder_ == null) {
          if (!(kindCase_ == 7)) {
            kind_ = io.greptime.v1.Ddl.ChangeColumnTypes.getDefaultInstance();
          }
          changeColumnTypesBuilder_ = new com.google.protobuf.SingleFieldBuilderV3<
              io.greptime.v1.Ddl.ChangeColumnTypes, io.greptime.v1.Ddl.ChangeColumnTypes.Builder, io.greptime.v1.Ddl.ChangeColumnTypesOrBuilder>(
                  (io.greptime.v1.Ddl.ChangeColumnTypes) kind_,
                  getParentForChildren(),
                  isClean());
          kind_ = null;
        }
        kindCase_ = 7;
        onChanged();;
        return changeColumnTypesBuilder_;
      }
      @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.AlterExpr)
    }

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

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

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

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

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

    @java.lang.Override
    public io.greptime.v1.Ddl.AlterExpr 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 ChangeColumnTypesOrBuilder extends
      // @@protoc_insertion_point(interface_extends:greptime.v1.ChangeColumnTypes)
      com.google.protobuf.MessageOrBuilder {

    /**
     * <code>repeated .greptime.v1.ChangeColumnType change_column_types = 1;</code>
     */
    java.util.List<io.greptime.v1.Ddl.ChangeColumnType> 
        getChangeColumnTypesList();
    /**
     * <code>repeated .greptime.v1.ChangeColumnType change_column_types = 1;</code>
     */
    io.greptime.v1.Ddl.ChangeColumnType getChangeColumnTypes(int index);
    /**
     * <code>repeated .greptime.v1.ChangeColumnType change_column_types = 1;</code>
     */
    int getChangeColumnTypesCount();
    /**
     * <code>repeated .greptime.v1.ChangeColumnType change_column_types = 1;</code>
     */
    java.util.List<? extends io.greptime.v1.Ddl.ChangeColumnTypeOrBuilder> 
        getChangeColumnTypesOrBuilderList();
    /**
     * <code>repeated .greptime.v1.ChangeColumnType change_column_types = 1;</code>
     */
    io.greptime.v1.Ddl.ChangeColumnTypeOrBuilder getChangeColumnTypesOrBuilder(
        int index);
  }
  /**
   * Protobuf type {@code greptime.v1.ChangeColumnTypes}
   */
  public static final class ChangeColumnTypes extends
      com.google.protobuf.GeneratedMessageV3 implements
      // @@protoc_insertion_point(message_implements:greptime.v1.ChangeColumnTypes)
      ChangeColumnTypesOrBuilder {
  private static final long serialVersionUID = 0L;
    // Use ChangeColumnTypes.newBuilder() to construct.
    private ChangeColumnTypes(com.google.protobuf.GeneratedMessageV3.Builder<?> builder) {
      super(builder);
    }
    private ChangeColumnTypes() {
      changeColumnTypes_ = java.util.Collections.emptyList();
    }

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

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

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

    public static final int CHANGE_COLUMN_TYPES_FIELD_NUMBER = 1;
    private java.util.List<io.greptime.v1.Ddl.ChangeColumnType> changeColumnTypes_;
    /**
     * <code>repeated .greptime.v1.ChangeColumnType change_column_types = 1;</code>
     */
    @java.lang.Override
    public java.util.List<io.greptime.v1.Ddl.ChangeColumnType> getChangeColumnTypesList() {
      return changeColumnTypes_;
    }
    /**
     * <code>repeated .greptime.v1.ChangeColumnType change_column_types = 1;</code>
     */
    @java.lang.Override
    public java.util.List<? extends io.greptime.v1.Ddl.ChangeColumnTypeOrBuilder> 
        getChangeColumnTypesOrBuilderList() {
      return changeColumnTypes_;
    }
    /**
     * <code>repeated .greptime.v1.ChangeColumnType change_column_types = 1;</code>
     */
    @java.lang.Override
    public int getChangeColumnTypesCount() {
      return changeColumnTypes_.size();
    }
    /**
     * <code>repeated .greptime.v1.ChangeColumnType change_column_types = 1;</code>
     */
    @java.lang.Override
    public io.greptime.v1.Ddl.ChangeColumnType getChangeColumnTypes(int index) {
      return changeColumnTypes_.get(index);
    }
    /**
     * <code>repeated .greptime.v1.ChangeColumnType change_column_types = 1;</code>
     */
    @java.lang.Override
    public io.greptime.v1.Ddl.ChangeColumnTypeOrBuilder getChangeColumnTypesOrBuilder(
        int index) {
      return changeColumnTypes_.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 < changeColumnTypes_.size(); i++) {
        output.writeMessage(1, changeColumnTypes_.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 < changeColumnTypes_.size(); i++) {
        size += com.google.protobuf.CodedOutputStream
          .computeMessageSize(1, changeColumnTypes_.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.ChangeColumnTypes)) {
        return super.equals(obj);
      }
      io.greptime.v1.Ddl.ChangeColumnTypes other = (io.greptime.v1.Ddl.ChangeColumnTypes) obj;

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

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

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

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

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

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

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

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

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

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

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

      private com.google.protobuf.RepeatedFieldBuilderV3<
          io.greptime.v1.Ddl.ChangeColumnType, io.greptime.v1.Ddl.ChangeColumnType.Builder, io.greptime.v1.Ddl.ChangeColumnTypeOrBuilder> changeColumnTypesBuilder_;

      /**
       * <code>repeated .greptime.v1.ChangeColumnType change_column_types = 1;</code>
       */
      public java.util.List<io.greptime.v1.Ddl.ChangeColumnType> getChangeColumnTypesList() {
        if (changeColumnTypesBuilder_ == null) {
          return java.util.Collections.unmodifiableList(changeColumnTypes_);
        } else {
          return changeColumnTypesBuilder_.getMessageList();
        }
      }
      /**
       * <code>repeated .greptime.v1.ChangeColumnType change_column_types = 1;</code>
       */
      public int getChangeColumnTypesCount() {
        if (changeColumnTypesBuilder_ == null) {
          return changeColumnTypes_.size();
        } else {
          return changeColumnTypesBuilder_.getCount();
        }
      }
      /**
       * <code>repeated .greptime.v1.ChangeColumnType change_column_types = 1;</code>
       */
      public io.greptime.v1.Ddl.ChangeColumnType getChangeColumnTypes(int index) {
        if (changeColumnTypesBuilder_ == null) {
          return changeColumnTypes_.get(index);
        } else {
          return changeColumnTypesBuilder_.getMessage(index);
        }
      }
      /**
       * <code>repeated .greptime.v1.ChangeColumnType change_column_types = 1;</code>
       */
      public Builder setChangeColumnTypes(
          int index, io.greptime.v1.Ddl.ChangeColumnType value) {
        if (changeColumnTypesBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          ensureChangeColumnTypesIsMutable();
          changeColumnTypes_.set(index, value);
          onChanged();
        } else {
          changeColumnTypesBuilder_.setMessage(index, value);
        }
        return this;
      }
      /**
       * <code>repeated .greptime.v1.ChangeColumnType change_column_types = 1;</code>
       */
      public Builder setChangeColumnTypes(
          int index, io.greptime.v1.Ddl.ChangeColumnType.Builder builderForValue) {
        if (changeColumnTypesBuilder_ == null) {
          ensureChangeColumnTypesIsMutable();
          changeColumnTypes_.set(index, builderForValue.build());
          onChanged();
        } else {
          changeColumnTypesBuilder_.setMessage(index, builderForValue.build());
        }
        return this;
      }
      /**
       * <code>repeated .greptime.v1.ChangeColumnType change_column_types = 1;</code>
       */
      public Builder addChangeColumnTypes(io.greptime.v1.Ddl.ChangeColumnType value) {
        if (changeColumnTypesBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          ensureChangeColumnTypesIsMutable();
          changeColumnTypes_.add(value);
          onChanged();
        } else {
          changeColumnTypesBuilder_.addMessage(value);
        }
        return this;
      }
      /**
       * <code>repeated .greptime.v1.ChangeColumnType change_column_types = 1;</code>
       */
      public Builder addChangeColumnTypes(
          int index, io.greptime.v1.Ddl.ChangeColumnType value) {
        if (changeColumnTypesBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          ensureChangeColumnTypesIsMutable();
          changeColumnTypes_.add(index, value);
          onChanged();
        } else {
          changeColumnTypesBuilder_.addMessage(index, value);
        }
        return this;
      }
      /**
       * <code>repeated .greptime.v1.ChangeColumnType change_column_types = 1;</code>
       */
      public Builder addChangeColumnTypes(
          io.greptime.v1.Ddl.ChangeColumnType.Builder builderForValue) {
        if (changeColumnTypesBuilder_ == null) {
          ensureChangeColumnTypesIsMutable();
          changeColumnTypes_.add(builderForValue.build());
          onChanged();
        } else {
          changeColumnTypesBuilder_.addMessage(builderForValue.build());
        }
        return this;
      }
      /**
       * <code>repeated .greptime.v1.ChangeColumnType change_column_types = 1;</code>
       */
      public Builder addChangeColumnTypes(
          int index, io.greptime.v1.Ddl.ChangeColumnType.Builder builderForValue) {
        if (changeColumnTypesBuilder_ == null) {
          ensureChangeColumnTypesIsMutable();
          changeColumnTypes_.add(index, builderForValue.build());
          onChanged();
        } else {
          changeColumnTypesBuilder_.addMessage(index, builderForValue.build());
        }
        return this;
      }
      /**
       * <code>repeated .greptime.v1.ChangeColumnType change_column_types = 1;</code>
       */
      public Builder addAllChangeColumnTypes(
          java.lang.Iterable<? extends io.greptime.v1.Ddl.ChangeColumnType> values) {
        if (changeColumnTypesBuilder_ == null) {
          ensureChangeColumnTypesIsMutable();
          com.google.protobuf.AbstractMessageLite.Builder.addAll(
              values, changeColumnTypes_);
          onChanged();
        } else {
          changeColumnTypesBuilder_.addAllMessages(values);
        }
        return this;
      }
      /**
       * <code>repeated .greptime.v1.ChangeColumnType change_column_types = 1;</code>
       */
      public Builder clearChangeColumnTypes() {
        if (changeColumnTypesBuilder_ == null) {
          changeColumnTypes_ = java.util.Collections.emptyList();
          bitField0_ = (bitField0_ & ~0x00000001);
          onChanged();
        } else {
          changeColumnTypesBuilder_.clear();
        }
        return this;
      }
      /**
       * <code>repeated .greptime.v1.ChangeColumnType change_column_types = 1;</code>
       */
      public Builder removeChangeColumnTypes(int index) {
        if (changeColumnTypesBuilder_ == null) {
          ensureChangeColumnTypesIsMutable();
          changeColumnTypes_.remove(index);
          onChanged();
        } else {
          changeColumnTypesBuilder_.remove(index);
        }
        return this;
      }
      /**
       * <code>repeated .greptime.v1.ChangeColumnType change_column_types = 1;</code>
       */
      public io.greptime.v1.Ddl.ChangeColumnType.Builder getChangeColumnTypesBuilder(
          int index) {
        return getChangeColumnTypesFieldBuilder().getBuilder(index);
      }
      /**
       * <code>repeated .greptime.v1.ChangeColumnType change_column_types = 1;</code>
       */
      public io.greptime.v1.Ddl.ChangeColumnTypeOrBuilder getChangeColumnTypesOrBuilder(
          int index) {
        if (changeColumnTypesBuilder_ == null) {
          return changeColumnTypes_.get(index);  } else {
          return changeColumnTypesBuilder_.getMessageOrBuilder(index);
        }
      }
      /**
       * <code>repeated .greptime.v1.ChangeColumnType change_column_types = 1;</code>
       */
      public java.util.List<? extends io.greptime.v1.Ddl.ChangeColumnTypeOrBuilder> 
           getChangeColumnTypesOrBuilderList() {
        if (changeColumnTypesBuilder_ != null) {
          return changeColumnTypesBuilder_.getMessageOrBuilderList();
        } else {
          return java.util.Collections.unmodifiableList(changeColumnTypes_);
        }
      }
      /**
       * <code>repeated .greptime.v1.ChangeColumnType change_column_types = 1;</code>
       */
      public io.greptime.v1.Ddl.ChangeColumnType.Builder addChangeColumnTypesBuilder() {
        return getChangeColumnTypesFieldBuilder().addBuilder(
            io.greptime.v1.Ddl.ChangeColumnType.getDefaultInstance());
      }
      /**
       * <code>repeated .greptime.v1.ChangeColumnType change_column_types = 1;</code>
       */
      public io.greptime.v1.Ddl.ChangeColumnType.Builder addChangeColumnTypesBuilder(
          int index) {
        return getChangeColumnTypesFieldBuilder().addBuilder(
            index, io.greptime.v1.Ddl.ChangeColumnType.getDefaultInstance());
      }
      /**
       * <code>repeated .greptime.v1.ChangeColumnType change_column_types = 1;</code>
       */
      public java.util.List<io.greptime.v1.Ddl.ChangeColumnType.Builder> 
           getChangeColumnTypesBuilderList() {
        return getChangeColumnTypesFieldBuilder().getBuilderList();
      }
      private com.google.protobuf.RepeatedFieldBuilderV3<
          io.greptime.v1.Ddl.ChangeColumnType, io.greptime.v1.Ddl.ChangeColumnType.Builder, io.greptime.v1.Ddl.ChangeColumnTypeOrBuilder> 
          getChangeColumnTypesFieldBuilder() {
        if (changeColumnTypesBuilder_ == null) {
          changeColumnTypesBuilder_ = new com.google.protobuf.RepeatedFieldBuilderV3<
              io.greptime.v1.Ddl.ChangeColumnType, io.greptime.v1.Ddl.ChangeColumnType.Builder, io.greptime.v1.Ddl.ChangeColumnTypeOrBuilder>(
                  changeColumnTypes_,
                  ((bitField0_ & 0x00000001) != 0),
                  getParentForChildren(),
                  isClean());
          changeColumnTypes_ = null;
        }
        return changeColumnTypesBuilder_;
      }
      @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.ChangeColumnTypes)
    }

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

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

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

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

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

    @java.lang.Override
    public io.greptime.v1.Ddl.ChangeColumnTypes 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();
  }
  /**
   * 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;
            }
            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();
    }

    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());
      }
      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());
      }
      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 (!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 = (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;
        }
        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();
        }
        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());
        }
        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_;
      }
      @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 ChangeColumnTypeOrBuilder extends
      // @@protoc_insertion_point(interface_extends:greptime.v1.ChangeColumnType)
      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.ChangeColumnType}
   */
  public static final class ChangeColumnType extends
      com.google.protobuf.GeneratedMessageV3 implements
      // @@protoc_insertion_point(message_implements:greptime.v1.ChangeColumnType)
      ChangeColumnTypeOrBuilder {
  private static final long serialVersionUID = 0L;
    // Use ChangeColumnType.newBuilder() to construct.
    private ChangeColumnType(com.google.protobuf.GeneratedMessageV3.Builder<?> builder) {
      super(builder);
    }
    private ChangeColumnType() {
      columnName_ = "";
      targetType_ = 0;
    }

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

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

    @java.lang.Override
    protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
        internalGetFieldAccessorTable() {
      return io.greptime.v1.Ddl.internal_static_greptime_v1_ChangeColumnType_fieldAccessorTable
          .ensureFieldAccessorsInitialized(
              io.greptime.v1.Ddl.ChangeColumnType.class, io.greptime.v1.Ddl.ChangeColumnType.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.ChangeColumnType)) {
        return super.equals(obj);
      }
      io.greptime.v1.Ddl.ChangeColumnType other = (io.greptime.v1.Ddl.ChangeColumnType) 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.ChangeColumnType parseFrom(
        java.nio.ByteBuffer data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static io.greptime.v1.Ddl.ChangeColumnType 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.ChangeColumnType parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static io.greptime.v1.Ddl.ChangeColumnType 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.ChangeColumnType parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static io.greptime.v1.Ddl.ChangeColumnType parseFrom(
        byte[] data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static io.greptime.v1.Ddl.ChangeColumnType parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input);
    }
    public static io.greptime.v1.Ddl.ChangeColumnType 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.ChangeColumnType parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseDelimitedWithIOException(PARSER, input);
    }
    public static io.greptime.v1.Ddl.ChangeColumnType 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.ChangeColumnType parseFrom(
        com.google.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input);
    }
    public static io.greptime.v1.Ddl.ChangeColumnType 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.ChangeColumnType 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.ChangeColumnType}
     */
    public static final class Builder extends
        com.google.protobuf.GeneratedMessageV3.Builder<Builder> implements
        // @@protoc_insertion_point(builder_implements:greptime.v1.ChangeColumnType)
        io.greptime.v1.Ddl.ChangeColumnTypeOrBuilder {
      public static final com.google.protobuf.Descriptors.Descriptor
          getDescriptor() {
        return io.greptime.v1.Ddl.internal_static_greptime_v1_ChangeColumnType_descriptor;
      }

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

      // Construct using io.greptime.v1.Ddl.ChangeColumnType.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_ChangeColumnType_descriptor;
      }

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

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

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

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

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

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

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

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

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

    @java.lang.Override
    public io.greptime.v1.Ddl.ChangeColumnType 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 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();
  }
  /**
   * 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;
            }
            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();
    }

    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());
      }
      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());
      }
      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 (!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();
      }
      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;
        }
        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();
        }
        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());
        }
        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_;
      }
      @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;
    }

  }

  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_CreateFlowTaskExpr_descriptor;
  private static final 
    com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
      internal_static_greptime_v1_CreateFlowTaskExpr_fieldAccessorTable;
  private static final com.google.protobuf.Descriptors.Descriptor
    internal_static_greptime_v1_CreateFlowTaskExpr_TaskOptionsEntry_descriptor;
  private static final 
    com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
      internal_static_greptime_v1_CreateFlowTaskExpr_TaskOptionsEntry_fieldAccessorTable;
  private static final com.google.protobuf.Descriptors.Descriptor
    internal_static_greptime_v1_DropFlowTaskExpr_descriptor;
  private static final 
    com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
      internal_static_greptime_v1_DropFlowTaskExpr_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_AlterExpr_descriptor;
  private static final 
    com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
      internal_static_greptime_v1_AlterExpr_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_ChangeColumnTypes_descriptor;
  private static final 
    com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
      internal_static_greptime_v1_ChangeColumnTypes_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_ChangeColumnType_descriptor;
  private static final 
    com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
      internal_static_greptime_v1_ChangeColumnType_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_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;

  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\"\221\003\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\022\'\n\005alter" +
      "\030\003 \001(\0132\026.greptime.v1.AlterExprH\000\0220\n\ndrop" +
      "_table\030\004 \001(\0132\032.greptime.v1.DropTableExpr" +
      "H\000\0228\n\016truncate_table\030\007 \001(\0132\036.greptime.v1" +
      ".TruncateTableExprH\000\022;\n\020create_flow_task" +
      "\030\010 \001(\0132\037.greptime.v1.CreateFlowTaskExprH" +
      "\000\0227\n\016drop_flow_task\030\t \001(\0132\035.greptime.v1." +
      "DropFlowTaskExprH\000B\006\n\004expr\"\203\003\n\022CreateFlo" +
      "wTaskExpr\022\024\n\014catalog_name\030\001 \001(\t\022\021\n\ttask_" +
      "name\030\002 \001(\t\0222\n\022source_table_names\030\003 \003(\0132\026" +
      ".greptime.v1.TableName\022/\n\017sink_table_nam" +
      "e\030\004 \001(\0132\026.greptime.v1.TableName\022\022\n\nor_re" +
      "place\030\005 \001(\010\022\034\n\024create_if_not_exists\030\006 \001(" +
      "\010\022\023\n\013expire_when\030\007 \001(\t\022\017\n\007comment\030\010 \001(\t\022" +
      "\013\n\003sql\030\t \001(\t\022F\n\014task_options\030\n \003(\01320.gre" +
      "ptime.v1.CreateFlowTaskExpr.TaskOptionsE" +
      "ntry\0322\n\020TaskOptionsEntry\022\013\n\003key\030\001 \001(\t\022\r\n" +
      "\005value\030\002 \001(\t:\0028\001\";\n\020DropFlowTaskExpr\022\024\n\014" +
      "catalog_name\030\001 \001(\t\022\021\n\ttask_name\030\002 \001(\t\"\207\003" +
      "\n\017CreateTableExpr\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\014\n\004desc\030\004 \001(\t\022+\n\013column_defs\030\005 \003(\0132\026.gr" +
      "eptime.v1.ColumnDef\022\022\n\ntime_index\030\006 \001(\t\022" +
      "\024\n\014primary_keys\030\007 \003(\t\022\034\n\024create_if_not_e" +
      "xists\030\010 \001(\010\022E\n\rtable_options\030\t \003(\0132..gre" +
      "ptime.v1.CreateTableExpr.TableOptionsEnt" +
      "ry\022&\n\010table_id\030\n \001(\0132\024.greptime.v1.Table" +
      "Id\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\"\245\002\n\tAlte" +
      "rExpr\022\024\n\014catalog_name\030\001 \001(\t\022\023\n\013schema_na" +
      "me\030\002 \001(\t\022\022\n\ntable_name\030\003 \001(\t\022.\n\013add_colu" +
      "mns\030\004 \001(\0132\027.greptime.v1.AddColumnsH\000\0220\n\014" +
      "drop_columns\030\005 \001(\0132\030.greptime.v1.DropCol" +
      "umnsH\000\0220\n\014rename_table\030\006 \001(\0132\030.greptime." +
      "v1.RenameTableH\000\022=\n\023change_column_types\030" +
      "\007 \001(\0132\036.greptime.v1.ChangeColumnTypesH\000B" +
      "\006\n\004kind\"\216\001\n\rDropTableExpr\022\024\n\014catalog_nam" +
      "e\030\001 \001(\t\022\023\n\013schema_name\030\002 \001(\t\022\022\n\ntable_na" +
      "me\030\003 \001(\t\022&\n\010table_id\030\004 \001(\0132\024.greptime.v1" +
      ".TableId\022\026\n\016drop_if_exists\030\005 \001(\010\"\314\001\n\022Cre" +
      "ateDatabaseExpr\022\024\n\014catalog_name\030\001 \001(\t\022\023\n" +
      "\013schema_name\030\002 \001(\t\022\034\n\024create_if_not_exis" +
      "ts\030\003 \001(\010\022=\n\007options\030\004 \003(\0132,.greptime.v1." +
      "CreateDatabaseExpr.OptionsEntry\032.\n\014Optio" +
      "nsEntry\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.Tabl" +
      "eId\"U\n\020DropDatabaseExpr\022\024\n\014catalog_name\030" +
      "\001 \001(\t\022\023\n\013schema_name\030\002 \001(\t\022\026\n\016drop_if_ex" +
      "ists\030\003 \001(\010\"9\n\nAddColumns\022+\n\013add_columns\030" +
      "\001 \003(\0132\026.greptime.v1.AddColumn\"<\n\013DropCol" +
      "umns\022-\n\014drop_columns\030\001 \003(\0132\027.greptime.v1" +
      ".DropColumn\"O\n\021ChangeColumnTypes\022:\n\023chan" +
      "ge_column_types\030\001 \003(\0132\035.greptime.v1.Chan" +
      "geColumnType\"%\n\013RenameTable\022\026\n\016new_table" +
      "_name\030\001 \001(\t\"i\n\tAddColumn\022*\n\ncolumn_def\030\001" +
      " \001(\0132\026.greptime.v1.ColumnDef\0220\n\010location" +
      "\030\003 \001(\0132\036.greptime.v1.AddColumnLocation\"\236" +
      "\001\n\020ChangeColumnType\022\023\n\013column_name\030\001 \001(\t" +
      "\0220\n\013target_type\030\002 \001(\0162\033.greptime.v1.Colu" +
      "mnDataType\022C\n\025target_type_extension\030\003 \001(" +
      "\0132$.greptime.v1.ColumnDataTypeExtension\"" +
      "\032\n\nDropColumn\022\014\n\004name\030\001 \001(\t\"\025\n\007TableId\022\n" +
      "\n\002id\030\001 \001(\r\"\377\001\n\tColumnDef\022\014\n\004name\030\001 \001(\t\022." +
      "\n\tdata_type\030\002 \001(\0162\033.greptime.v1.ColumnDa" +
      "taType\022\023\n\013is_nullable\030\003 \001(\010\022\032\n\022default_c" +
      "onstraint\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$.greptim" +
      "e.v1.ColumnDataTypeExtension\"\230\001\n\021AddColu" +
      "mnLocation\022B\n\rlocation_type\030\001 \001(\0162+.grep" +
      "time.v1.AddColumnLocation.LocationType\022\031" +
      "\n\021after_column_name\030\002 \001(\t\"$\n\014LocationTyp" +
      "e\022\t\n\005FIRST\020\000\022\t\n\005AFTER\020\001BL\n\016io.greptime.v" +
      "1B\003DdlZ5github.com/GreptimeTeam/greptime" +
      "-proto/go/greptime/v1b\006proto3"
    };
    descriptor = com.google.protobuf.Descriptors.FileDescriptor
      .internalBuildGeneratedFileFrom(descriptorData,
        new com.google.protobuf.Descriptors.FileDescriptor[] {
          io.greptime.v1.Common.getDescriptor(),
        });
    internal_static_greptime_v1_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", "Alter", "DropTable", "TruncateTable", "CreateFlowTask", "DropFlowTask", "Expr", });
    internal_static_greptime_v1_CreateFlowTaskExpr_descriptor =
      getDescriptor().getMessageTypes().get(1);
    internal_static_greptime_v1_CreateFlowTaskExpr_fieldAccessorTable = new
      com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(
        internal_static_greptime_v1_CreateFlowTaskExpr_descriptor,
        new java.lang.String[] { "CatalogName", "TaskName", "SourceTableNames", "SinkTableName", "OrReplace", "CreateIfNotExists", "ExpireWhen", "Comment", "Sql", "TaskOptions", });
    internal_static_greptime_v1_CreateFlowTaskExpr_TaskOptionsEntry_descriptor =
      internal_static_greptime_v1_CreateFlowTaskExpr_descriptor.getNestedTypes().get(0);
    internal_static_greptime_v1_CreateFlowTaskExpr_TaskOptionsEntry_fieldAccessorTable = new
      com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(
        internal_static_greptime_v1_CreateFlowTaskExpr_TaskOptionsEntry_descriptor,
        new java.lang.String[] { "Key", "Value", });
    internal_static_greptime_v1_DropFlowTaskExpr_descriptor =
      getDescriptor().getMessageTypes().get(2);
    internal_static_greptime_v1_DropFlowTaskExpr_fieldAccessorTable = new
      com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(
        internal_static_greptime_v1_DropFlowTaskExpr_descriptor,
        new java.lang.String[] { "CatalogName", "TaskName", });
    internal_static_greptime_v1_CreateTableExpr_descriptor =
      getDescriptor().getMessageTypes().get(3);
    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_AlterExpr_descriptor =
      getDescriptor().getMessageTypes().get(4);
    internal_static_greptime_v1_AlterExpr_fieldAccessorTable = new
      com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(
        internal_static_greptime_v1_AlterExpr_descriptor,
        new java.lang.String[] { "CatalogName", "SchemaName", "TableName", "AddColumns", "DropColumns", "RenameTable", "ChangeColumnTypes", "Kind", });
    internal_static_greptime_v1_DropTableExpr_descriptor =
      getDescriptor().getMessageTypes().get(5);
    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(6);
    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(7);
    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(8);
    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(9);
    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(10);
    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_ChangeColumnTypes_descriptor =
      getDescriptor().getMessageTypes().get(11);
    internal_static_greptime_v1_ChangeColumnTypes_fieldAccessorTable = new
      com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(
        internal_static_greptime_v1_ChangeColumnTypes_descriptor,
        new java.lang.String[] { "ChangeColumnTypes", });
    internal_static_greptime_v1_RenameTable_descriptor =
      getDescriptor().getMessageTypes().get(12);
    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(13);
    internal_static_greptime_v1_AddColumn_fieldAccessorTable = new
      com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(
        internal_static_greptime_v1_AddColumn_descriptor,
        new java.lang.String[] { "ColumnDef", "Location", });
    internal_static_greptime_v1_ChangeColumnType_descriptor =
      getDescriptor().getMessageTypes().get(14);
    internal_static_greptime_v1_ChangeColumnType_fieldAccessorTable = new
      com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(
        internal_static_greptime_v1_ChangeColumnType_descriptor,
        new java.lang.String[] { "ColumnName", "TargetType", "TargetTypeExtension", });
    internal_static_greptime_v1_DropColumn_descriptor =
      getDescriptor().getMessageTypes().get(15);
    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(16);
    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_ColumnDef_descriptor =
      getDescriptor().getMessageTypes().get(17);
    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", });
    internal_static_greptime_v1_AddColumnLocation_descriptor =
      getDescriptor().getMessageTypes().get(18);
    internal_static_greptime_v1_AddColumnLocation_fieldAccessorTable = new
      com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(
        internal_static_greptime_v1_AddColumnLocation_descriptor,
        new java.lang.String[] { "LocationType", "AfterColumnName", });
    io.greptime.v1.Common.getDescriptor();
  }

  // @@protoc_insertion_point(outer_class_scope)
}
