content: // Generated by the protocol buffer compiler.  DO NOT EDIT!
  // source: Batch.proto
  
  package com.alibaba.otter.node.etl.model.protobuf;
  
  public final class BatchProto {
    private BatchProto() {}
    public static void registerAllExtensions(
        com.google.protobuf.ExtensionRegistry registry) {
    }
    public interface IdentityOrBuilder extends
        // @@protoc_insertion_point(interface_extends:com.alibaba.otter.node.etl.model.protobuf.Identity)
        com.google.protobuf.MessageOrBuilder {
  
      /**
       * <code>optional int64 channelId = 1;</code>
       *
       * <pre>
       **通道标示*
       * </pre>
       */
      boolean hasChannelId();
      /**
       * <code>optional int64 channelId = 1;</code>
       *
       * <pre>
       **通道标示*
       * </pre>
       */
      long getChannelId();
  
      /**
       * <code>optional int64 pipelineId = 2;</code>
       */
      boolean hasPipelineId();
      /**
       * <code>optional int64 pipelineId = 2;</code>
       */
      long getPipelineId();
  
      /**
       * <code>optional int64 processId = 3;</code>
       */
      boolean hasProcessId();
      /**
       * <code>optional int64 processId = 3;</code>
       */
      long getProcessId();
    }
    /**
     * Protobuf type {@code com.alibaba.otter.node.etl.model.protobuf.Identity}
     *
     * <pre>
     **同步数据表示对象*
     * </pre>
     */
    public static final class Identity extends
        com.google.protobuf.GeneratedMessage implements
        // @@protoc_insertion_point(message_implements:com.alibaba.otter.node.etl.model.protobuf.Identity)
        IdentityOrBuilder {
      // Use Identity.newBuilder() to construct.
      private Identity(com.google.protobuf.GeneratedMessage.Builder<?> builder) {
        super(builder);
        this.unknownFields = builder.getUnknownFields();
      }
      private Identity(boolean noInit) { this.unknownFields = com.google.protobuf.UnknownFieldSet.getDefaultInstance(); }
  
      private static final Identity defaultInstance;
      public static Identity getDefaultInstance() {
        return defaultInstance;
      }
  
      public Identity getDefaultInstanceForType() {
        return defaultInstance;
      }
  
      private final com.google.protobuf.UnknownFieldSet unknownFields;
      @java.lang.Override
      public final com.google.protobuf.UnknownFieldSet
          getUnknownFields() {
        return this.unknownFields;
      }
      private Identity(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws com.google.protobuf.InvalidProtocolBufferException {
        initFields();
        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;
              default: {
                if (!parseUnknownField(input, unknownFields,
                                       extensionRegistry, tag)) {
                  done = true;
                }
                break;
              }
              case 8: {
                bitField0_ |= 0x00000001;
                channelId_ = input.readInt64();
                break;
              }
              case 16: {
                bitField0_ |= 0x00000002;
                pipelineId_ = input.readInt64();
                break;
              }
              case 24: {
                bitField0_ |= 0x00000004;
                processId_ = input.readInt64();
                break;
              }
            }
          }
        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
          throw e.setUnfinishedMessage(this);
        } catch (java.io.IOException e) {
          throw new com.google.protobuf.InvalidProtocolBufferException(
              e.getMessage()).setUnfinishedMessage(this);
        } finally {
          this.unknownFields = unknownFields.build();
          makeExtensionsImmutable();
        }
      }
      public static final com.google.protobuf.Descriptors.Descriptor
          getDescriptor() {
        return com.alibaba.otter.node.etl.model.protobuf.BatchProto.internal_static_com_alibaba_otter_node_etl_model_protobuf_Identity_descriptor;
      }
  
      protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return com.alibaba.otter.node.etl.model.protobuf.BatchProto.internal_static_com_alibaba_otter_node_etl_model_protobuf_Identity_fieldAccessorTable
            .ensureFieldAccessorsInitialized(
                com.alibaba.otter.node.etl.model.protobuf.BatchProto.Identity.class, com.alibaba.otter.node.etl.model.protobuf.BatchProto.Identity.Builder.class);
      }
  
      public static com.google.protobuf.Parser<Identity> PARSER =
          new com.google.protobuf.AbstractParser<Identity>() {
        public Identity parsePartialFrom(
            com.google.protobuf.CodedInputStream input,
            com.google.protobuf.ExtensionRegistryLite extensionRegistry)
            throws com.google.protobuf.InvalidProtocolBufferException {
          return new Identity(input, extensionRegistry);
        }
      };
  
      @java.lang.Override
      public com.google.protobuf.Parser<Identity> getParserForType() {
        return PARSER;
      }
  
      private int bitField0_;
      public static final int CHANNELID_FIELD_NUMBER = 1;
      private long channelId_;
      /**
       * <code>optional int64 channelId = 1;</code>
       *
       * <pre>
       **通道标示*
       * </pre>
       */
      public boolean hasChannelId() {
        return ((bitField0_ & 0x00000001) == 0x00000001);
      }
      /**
       * <code>optional int64 channelId = 1;</code>
       *
       * <pre>
       **通道标示*
       * </pre>
       */
      public long getChannelId() {
        return channelId_;
      }
  
      public static final int PIPELINEID_FIELD_NUMBER = 2;
      private long pipelineId_;
      /**
       * <code>optional int64 pipelineId = 2;</code>
       */
      public boolean hasPipelineId() {
        return ((bitField0_ & 0x00000002) == 0x00000002);
      }
      /**
       * <code>optional int64 pipelineId = 2;</code>
       */
      public long getPipelineId() {
        return pipelineId_;
      }
  
      public static final int PROCESSID_FIELD_NUMBER = 3;
      private long processId_;
      /**
       * <code>optional int64 processId = 3;</code>
       */
      public boolean hasProcessId() {
        return ((bitField0_ & 0x00000004) == 0x00000004);
      }
      /**
       * <code>optional int64 processId = 3;</code>
       */
      public long getProcessId() {
        return processId_;
      }
  
      private void initFields() {
        channelId_ = 0L;
        pipelineId_ = 0L;
        processId_ = 0L;
      }
      private byte memoizedIsInitialized = -1;
      public final boolean isInitialized() {
        byte isInitialized = memoizedIsInitialized;
        if (isInitialized == 1) return true;
        if (isInitialized == 0) return false;
  
        memoizedIsInitialized = 1;
        return true;
      }
  
      public void writeTo(com.google.protobuf.CodedOutputStream output)
                          throws java.io.IOException {
        getSerializedSize();
        if (((bitField0_ & 0x00000001) == 0x00000001)) {
          output.writeInt64(1, channelId_);
        }
        if (((bitField0_ & 0x00000002) == 0x00000002)) {
          output.writeInt64(2, pipelineId_);
        }
        if (((bitField0_ & 0x00000004) == 0x00000004)) {
          output.writeInt64(3, processId_);
        }
        getUnknownFields().writeTo(output);
      }
  
      private int memoizedSerializedSize = -1;
      public int getSerializedSize() {
        int size = memoizedSerializedSize;
        if (size != -1) return size;
  
        size = 0;
        if (((bitField0_ & 0x00000001) == 0x00000001)) {
          size += com.google.protobuf.CodedOutputStream
            .computeInt64Size(1, channelId_);
        }
        if (((bitField0_ & 0x00000002) == 0x00000002)) {
          size += com.google.protobuf.CodedOutputStream
            .computeInt64Size(2, pipelineId_);
        }
        if (((bitField0_ & 0x00000004) == 0x00000004)) {
          size += com.google.protobuf.CodedOutputStream
            .computeInt64Size(3, processId_);
        }
        size += getUnknownFields().getSerializedSize();
        memoizedSerializedSize = size;
        return size;
      }
  
      private static final long serialVersionUID = 0L;
      @java.lang.Override
      protected java.lang.Object writeReplace()
          throws java.io.ObjectStreamException {
        return super.writeReplace();
      }
  
      public static com.alibaba.otter.node.etl.model.protobuf.BatchProto.Identity parseFrom(
          com.google.protobuf.ByteString data)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return PARSER.parseFrom(data);
      }
      public static com.alibaba.otter.node.etl.model.protobuf.BatchProto.Identity parseFrom(
          com.google.protobuf.ByteString data,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return PARSER.parseFrom(data, extensionRegistry);
      }
      public static com.alibaba.otter.node.etl.model.protobuf.BatchProto.Identity parseFrom(byte[] data)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return PARSER.parseFrom(data);
      }
      public static com.alibaba.otter.node.etl.model.protobuf.BatchProto.Identity parseFrom(
          byte[] data,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return PARSER.parseFrom(data, extensionRegistry);
      }
      public static com.alibaba.otter.node.etl.model.protobuf.BatchProto.Identity parseFrom(java.io.InputStream input)
          throws java.io.IOException {
        return PARSER.parseFrom(input);
      }
      public static com.alibaba.otter.node.etl.model.protobuf.BatchProto.Identity parseFrom(
          java.io.InputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        return PARSER.parseFrom(input, extensionRegistry);
      }
      public static com.alibaba.otter.node.etl.model.protobuf.BatchProto.Identity parseDelimitedFrom(java.io.InputStream input)
          throws java.io.IOException {
        return PARSER.parseDelimitedFrom(input);
      }
      public static com.alibaba.otter.node.etl.model.protobuf.BatchProto.Identity parseDelimitedFrom(
          java.io.InputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        return PARSER.parseDelimitedFrom(input, extensionRegistry);
      }
      public static com.alibaba.otter.node.etl.model.protobuf.BatchProto.Identity parseFrom(
          com.google.protobuf.CodedInputStream input)
          throws java.io.IOException {
        return PARSER.parseFrom(input);
      }
      public static com.alibaba.otter.node.etl.model.protobuf.BatchProto.Identity parseFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        return PARSER.parseFrom(input, extensionRegistry);
      }
  
      public static Builder newBuilder() { return Builder.create(); }
      public Builder newBuilderForType() { return newBuilder(); }
      public static Builder newBuilder(com.alibaba.otter.node.etl.model.protobuf.BatchProto.Identity prototype) {
        return newBuilder().mergeFrom(prototype);
      }
      public Builder toBuilder() { return newBuilder(this); }
  
      @java.lang.Override
      protected Builder newBuilderForType(
          com.google.protobuf.GeneratedMessage.BuilderParent parent) {
        Builder builder = new Builder(parent);
        return builder;
      }
      /**
       * Protobuf type {@code com.alibaba.otter.node.etl.model.protobuf.Identity}
       *
       * <pre>
       **同步数据表示对象*
       * </pre>
       */
      public static final class Builder extends
          com.google.protobuf.GeneratedMessage.Builder<Builder> implements
          // @@protoc_insertion_point(builder_implements:com.alibaba.otter.node.etl.model.protobuf.Identity)
          com.alibaba.otter.node.etl.model.protobuf.BatchProto.IdentityOrBuilder {
        public static final com.google.protobuf.Descriptors.Descriptor
            getDescriptor() {
          return com.alibaba.otter.node.etl.model.protobuf.BatchProto.internal_static_com_alibaba_otter_node_etl_model_protobuf_Identity_descriptor;
        }
  
        protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
            internalGetFieldAccessorTable() {
          return com.alibaba.otter.node.etl.model.protobuf.BatchProto.internal_static_com_alibaba_otter_node_etl_model_protobuf_Identity_fieldAccessorTable
              .ensureFieldAccessorsInitialized(
                  com.alibaba.otter.node.etl.model.protobuf.BatchProto.Identity.class, com.alibaba.otter.node.etl.model.protobuf.BatchProto.Identity.Builder.class);
        }
  
        // Construct using com.alibaba.otter.node.etl.model.protobuf.BatchProto.Identity.newBuilder()
        private Builder() {
          maybeForceBuilderInitialization();
        }
  
        private Builder(
            com.google.protobuf.GeneratedMessage.BuilderParent parent) {
          super(parent);
          maybeForceBuilderInitialization();
        }
        private void maybeForceBuilderInitialization() {
          if (com.google.protobuf.GeneratedMessage.alwaysUseFieldBuilders) {
          }
        }
        private static Builder create() {
          return new Builder();
        }
  
        public Builder clear() {
          super.clear();
          channelId_ = 0L;
          bitField0_ = (bitField0_ & ~0x00000001);
          pipelineId_ = 0L;
          bitField0_ = (bitField0_ & ~0x00000002);
          processId_ = 0L;
          bitField0_ = (bitField0_ & ~0x00000004);
          return this;
        }
  
        public Builder clone() {
          return create().mergeFrom(buildPartial());
        }
  
        public com.google.protobuf.Descriptors.Descriptor
            getDescriptorForType() {
          return com.alibaba.otter.node.etl.model.protobuf.BatchProto.internal_static_com_alibaba_otter_node_etl_model_protobuf_Identity_descriptor;
        }
  
        public com.alibaba.otter.node.etl.model.protobuf.BatchProto.Identity getDefaultInstanceForType() {
          return com.alibaba.otter.node.etl.model.protobuf.BatchProto.Identity.getDefaultInstance();
        }
  
        public com.alibaba.otter.node.etl.model.protobuf.BatchProto.Identity build() {
          com.alibaba.otter.node.etl.model.protobuf.BatchProto.Identity result = buildPartial();
          if (!result.isInitialized()) {
            throw newUninitializedMessageException(result);
          }
          return result;
        }
  
        public com.alibaba.otter.node.etl.model.protobuf.BatchProto.Identity buildPartial() {
          com.alibaba.otter.node.etl.model.protobuf.BatchProto.Identity result = new com.alibaba.otter.node.etl.model.protobuf.BatchProto.Identity(this);
          int from_bitField0_ = bitField0_;
          int to_bitField0_ = 0;
          if (((from_bitField0_ & 0x00000001) == 0x00000001)) {
            to_bitField0_ |= 0x00000001;
          }
          result.channelId_ = channelId_;
          if (((from_bitField0_ & 0x00000002) == 0x00000002)) {
            to_bitField0_ |= 0x00000002;
          }
          result.pipelineId_ = pipelineId_;
          if (((from_bitField0_ & 0x00000004) == 0x00000004)) {
            to_bitField0_ |= 0x00000004;
          }
          result.processId_ = processId_;
          result.bitField0_ = to_bitField0_;
          onBuilt();
          return result;
        }
  
        public Builder mergeFrom(com.google.protobuf.Message other) {
          if (other instanceof com.alibaba.otter.node.etl.model.protobuf.BatchProto.Identity) {
            return mergeFrom((com.alibaba.otter.node.etl.model.protobuf.BatchProto.Identity)other);
          } else {
            super.mergeFrom(other);
            return this;
          }
        }
  
        public Builder mergeFrom(com.alibaba.otter.node.etl.model.protobuf.BatchProto.Identity other) {
          if (other == com.alibaba.otter.node.etl.model.protobuf.BatchProto.Identity.getDefaultInstance()) return this;
          if (other.hasChannelId()) {
            setChannelId(other.getChannelId());
          }
          if (other.hasPipelineId()) {
            setPipelineId(other.getPipelineId());
          }
          if (other.hasProcessId()) {
            setProcessId(other.getProcessId());
          }
          this.mergeUnknownFields(other.getUnknownFields());
          return this;
        }
  
        public final boolean isInitialized() {
          return true;
        }
  
        public Builder mergeFrom(
            com.google.protobuf.CodedInputStream input,
            com.google.protobuf.ExtensionRegistryLite extensionRegistry)
            throws java.io.IOException {
          com.alibaba.otter.node.etl.model.protobuf.BatchProto.Identity parsedMessage = null;
          try {
            parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry);
          } catch (com.google.protobuf.InvalidProtocolBufferException e) {
            parsedMessage = (com.alibaba.otter.node.etl.model.protobuf.BatchProto.Identity) e.getUnfinishedMessage();
            throw e;
          } finally {
            if (parsedMessage != null) {
              mergeFrom(parsedMessage);
            }
          }
          return this;
        }
        private int bitField0_;
  
        private long channelId_ ;
        /**
         * <code>optional int64 channelId = 1;</code>
         *
         * <pre>
         **通道标示*
         * </pre>
         */
        public boolean hasChannelId() {
          return ((bitField0_ & 0x00000001) == 0x00000001);
        }
        /**
         * <code>optional int64 channelId = 1;</code>
         *
         * <pre>
         **通道标示*
         * </pre>
         */
        public long getChannelId() {
          return channelId_;
        }
        /**
         * <code>optional int64 channelId = 1;</code>
         *
         * <pre>
         **通道标示*
         * </pre>
         */
        public Builder setChannelId(long value) {
          bitField0_ |= 0x00000001;
          channelId_ = value;
          onChanged();
          return this;
        }
        /**
         * <code>optional int64 channelId = 1;</code>
         *
         * <pre>
         **通道标示*
         * </pre>
         */
        public Builder clearChannelId() {
          bitField0_ = (bitField0_ & ~0x00000001);
          channelId_ = 0L;
          onChanged();
          return this;
        }
  
        private long pipelineId_ ;
        /**
         * <code>optional int64 pipelineId = 2;</code>
         */
        public boolean hasPipelineId() {
          return ((bitField0_ & 0x00000002) == 0x00000002);
        }
        /**
         * <code>optional int64 pipelineId = 2;</code>
         */
        public long getPipelineId() {
          return pipelineId_;
        }
        /**
         * <code>optional int64 pipelineId = 2;</code>
         */
        public Builder setPipelineId(long value) {
          bitField0_ |= 0x00000002;
          pipelineId_ = value;
          onChanged();
          return this;
        }
        /**
         * <code>optional int64 pipelineId = 2;</code>
         */
        public Builder clearPipelineId() {
          bitField0_ = (bitField0_ & ~0x00000002);
          pipelineId_ = 0L;
          onChanged();
          return this;
        }
  
        private long processId_ ;
        /**
         * <code>optional int64 processId = 3;</code>
         */
        public boolean hasProcessId() {
          return ((bitField0_ & 0x00000004) == 0x00000004);
        }
        /**
         * <code>optional int64 processId = 3;</code>
         */
        public long getProcessId() {
          return processId_;
        }
        /**
         * <code>optional int64 processId = 3;</code>
         */
        public Builder setProcessId(long value) {
          bitField0_ |= 0x00000004;
          processId_ = value;
          onChanged();
          return this;
        }
        /**
         * <code>optional int64 processId = 3;</code>
         */
        public Builder clearProcessId() {
          bitField0_ = (bitField0_ & ~0x00000004);
          processId_ = 0L;
          onChanged();
          return this;
        }
  
        // @@protoc_insertion_point(builder_scope:com.alibaba.otter.node.etl.model.protobuf.Identity)
      }
  
      static {
        defaultInstance = new Identity(true);
        defaultInstance.initFields();
      }
  
      // @@protoc_insertion_point(class_scope:com.alibaba.otter.node.etl.model.protobuf.Identity)
    }
  
    public interface RowBatchOrBuilder extends
        // @@protoc_insertion_point(interface_extends:com.alibaba.otter.node.etl.model.protobuf.RowBatch)
        com.google.protobuf.MessageOrBuilder {
  
      /**
       * <code>optional .com.alibaba.otter.node.etl.model.protobuf.Identity identity = 1;</code>
       */
      boolean hasIdentity();
      /**
       * <code>optional .com.alibaba.otter.node.etl.model.protobuf.Identity identity = 1;</code>
       */
      com.alibaba.otter.node.etl.model.protobuf.BatchProto.Identity getIdentity();
      /**
       * <code>optional .com.alibaba.otter.node.etl.model.protobuf.Identity identity = 1;</code>
       */
      com.alibaba.otter.node.etl.model.protobuf.BatchProto.IdentityOrBuilder getIdentityOrBuilder();
  
      /**
       * <code>repeated .com.alibaba.otter.node.etl.model.protobuf.RowData rows = 2;</code>
       *
       * <pre>
       **每个batch里面的所有变更数据*
       * </pre>
       */
      java.util.List<com.alibaba.otter.node.etl.model.protobuf.BatchProto.RowData> 
          getRowsList();
      /**
       * <code>repeated .com.alibaba.otter.node.etl.model.protobuf.RowData rows = 2;</code>
       *
       * <pre>
       **每个batch里面的所有变更数据*
       * </pre>
       */
      com.alibaba.otter.node.etl.model.protobuf.BatchProto.RowData getRows(int index);
      /**
       * <code>repeated .com.alibaba.otter.node.etl.model.protobuf.RowData rows = 2;</code>
       *
       * <pre>
       **每个batch里面的所有变更数据*
       * </pre>
       */
      int getRowsCount();
      /**
       * <code>repeated .com.alibaba.otter.node.etl.model.protobuf.RowData rows = 2;</code>
       *
       * <pre>
       **每个batch里面的所有变更数据*
       * </pre>
       */
      java.util.List<? extends com.alibaba.otter.node.etl.model.protobuf.BatchProto.RowDataOrBuilder> 
          getRowsOrBuilderList();
      /**
       * <code>repeated .com.alibaba.otter.node.etl.model.protobuf.RowData rows = 2;</code>
       *
       * <pre>
       **每个batch里面的所有变更数据*
       * </pre>
       */
      com.alibaba.otter.node.etl.model.protobuf.BatchProto.RowDataOrBuilder getRowsOrBuilder(
          int index);
    }
    /**
     * Protobuf type {@code com.alibaba.otter.node.etl.model.protobuf.RowBatch}
     *
     * <pre>
     **数据包*
     * </pre>
     */
    public static final class RowBatch extends
        com.google.protobuf.GeneratedMessage implements
        // @@protoc_insertion_point(message_implements:com.alibaba.otter.node.etl.model.protobuf.RowBatch)
        RowBatchOrBuilder {
      // Use RowBatch.newBuilder() to construct.
      private RowBatch(com.google.protobuf.GeneratedMessage.Builder<?> builder) {
        super(builder);
        this.unknownFields = builder.getUnknownFields();
      }
      private RowBatch(boolean noInit) { this.unknownFields = com.google.protobuf.UnknownFieldSet.getDefaultInstance(); }
  
      private static final RowBatch defaultInstance;
      public static RowBatch getDefaultInstance() {
        return defaultInstance;
      }
  
      public RowBatch getDefaultInstanceForType() {
        return defaultInstance;
      }
  
      private final com.google.protobuf.UnknownFieldSet unknownFields;
      @java.lang.Override
      public final com.google.protobuf.UnknownFieldSet
          getUnknownFields() {
        return this.unknownFields;
      }
      private RowBatch(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws com.google.protobuf.InvalidProtocolBufferException {
        initFields();
        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;
              default: {
                if (!parseUnknownField(input, unknownFields,
                                       extensionRegistry, tag)) {
                  done = true;
                }
                break;
              }
              case 10: {
                com.alibaba.otter.node.etl.model.protobuf.BatchProto.Identity.Builder subBuilder = null;
                if (((bitField0_ & 0x00000001) == 0x00000001)) {
                  subBuilder = identity_.toBuilder();
                }
                identity_ = input.readMessage(com.alibaba.otter.node.etl.model.protobuf.BatchProto.Identity.PARSER, extensionRegistry);
                if (subBuilder != null) {
                  subBuilder.mergeFrom(identity_);
                  identity_ = subBuilder.buildPartial();
                }
                bitField0_ |= 0x00000001;
                break;
              }
              case 18: {
                if (!((mutable_bitField0_ & 0x00000002) == 0x00000002)) {
                  rows_ = new java.util.ArrayList<com.alibaba.otter.node.etl.model.protobuf.BatchProto.RowData>();
                  mutable_bitField0_ |= 0x00000002;
                }
                rows_.add(input.readMessage(com.alibaba.otter.node.etl.model.protobuf.BatchProto.RowData.PARSER, extensionRegistry));
                break;
              }
            }
          }
        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
          throw e.setUnfinishedMessage(this);
        } catch (java.io.IOException e) {
          throw new com.google.protobuf.InvalidProtocolBufferException(
              e.getMessage()).setUnfinishedMessage(this);
        } finally {
          if (((mutable_bitField0_ & 0x00000002) == 0x00000002)) {
            rows_ = java.util.Collections.unmodifiableList(rows_);
          }
          this.unknownFields = unknownFields.build();
          makeExtensionsImmutable();
        }
      }
      public static final com.google.protobuf.Descriptors.Descriptor
          getDescriptor() {
        return com.alibaba.otter.node.etl.model.protobuf.BatchProto.internal_static_com_alibaba_otter_node_etl_model_protobuf_RowBatch_descriptor;
      }
  
      protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return com.alibaba.otter.node.etl.model.protobuf.BatchProto.internal_static_com_alibaba_otter_node_etl_model_protobuf_RowBatch_fieldAccessorTable
            .ensureFieldAccessorsInitialized(
                com.alibaba.otter.node.etl.model.protobuf.BatchProto.RowBatch.class, com.alibaba.otter.node.etl.model.protobuf.BatchProto.RowBatch.Builder.class);
      }
  
      public static com.google.protobuf.Parser<RowBatch> PARSER =
          new com.google.protobuf.AbstractParser<RowBatch>() {
        public RowBatch parsePartialFrom(
            com.google.protobuf.CodedInputStream input,
            com.google.protobuf.ExtensionRegistryLite extensionRegistry)
            throws com.google.protobuf.InvalidProtocolBufferException {
          return new RowBatch(input, extensionRegistry);
        }
      };
  
      @java.lang.Override
      public com.google.protobuf.Parser<RowBatch> getParserForType() {
        return PARSER;
      }
  
      private int bitField0_;
      public static final int IDENTITY_FIELD_NUMBER = 1;
      private com.alibaba.otter.node.etl.model.protobuf.BatchProto.Identity identity_;
      /**
       * <code>optional .com.alibaba.otter.node.etl.model.protobuf.Identity identity = 1;</code>
       */
      public boolean hasIdentity() {
        return ((bitField0_ & 0x00000001) == 0x00000001);
      }
      /**
       * <code>optional .com.alibaba.otter.node.etl.model.protobuf.Identity identity = 1;</code>
       */
      public com.alibaba.otter.node.etl.model.protobuf.BatchProto.Identity getIdentity() {
        return identity_;
      }
      /**
       * <code>optional .com.alibaba.otter.node.etl.model.protobuf.Identity identity = 1;</code>
       */
      public com.alibaba.otter.node.etl.model.protobuf.BatchProto.IdentityOrBuilder getIdentityOrBuilder() {
        return identity_;
      }
  
      public static final int ROWS_FIELD_NUMBER = 2;
      private java.util.List<com.alibaba.otter.node.etl.model.protobuf.BatchProto.RowData> rows_;
      /**
       * <code>repeated .com.alibaba.otter.node.etl.model.protobuf.RowData rows = 2;</code>
       *
       * <pre>
       **每个batch里面的所有变更数据*
       * </pre>
       */
      public java.util.List<com.alibaba.otter.node.etl.model.protobuf.BatchProto.RowData> getRowsList() {
        return rows_;
      }
      /**
       * <code>repeated .com.alibaba.otter.node.etl.model.protobuf.RowData rows = 2;</code>
       *
       * <pre>
       **每个batch里面的所有变更数据*
       * </pre>
       */
      public java.util.List<? extends com.alibaba.otter.node.etl.model.protobuf.BatchProto.RowDataOrBuilder> 
          getRowsOrBuilderList() {
        return rows_;
      }
      /**
       * <code>repeated .com.alibaba.otter.node.etl.model.protobuf.RowData rows = 2;</code>
       *
       * <pre>
       **每个batch里面的所有变更数据*
       * </pre>
       */
      public int getRowsCount() {
        return rows_.size();
      }
      /**
       * <code>repeated .com.alibaba.otter.node.etl.model.protobuf.RowData rows = 2;</code>
       *
       * <pre>
       **每个batch里面的所有变更数据*
       * </pre>
       */
      public com.alibaba.otter.node.etl.model.protobuf.BatchProto.RowData getRows(int index) {
        return rows_.get(index);
      }
      /**
       * <code>repeated .com.alibaba.otter.node.etl.model.protobuf.RowData rows = 2;</code>
       *
       * <pre>
       **每个batch里面的所有变更数据*
       * </pre>
       */
      public com.alibaba.otter.node.etl.model.protobuf.BatchProto.RowDataOrBuilder getRowsOrBuilder(
          int index) {
        return rows_.get(index);
      }
  
      private void initFields() {
        identity_ = com.alibaba.otter.node.etl.model.protobuf.BatchProto.Identity.getDefaultInstance();
        rows_ = java.util.Collections.emptyList();
      }
      private byte memoizedIsInitialized = -1;
      public final boolean isInitialized() {
        byte isInitialized = memoizedIsInitialized;
        if (isInitialized == 1) return true;
        if (isInitialized == 0) return false;
  
        memoizedIsInitialized = 1;
        return true;
      }
  
      public void writeTo(com.google.protobuf.CodedOutputStream output)
                          throws java.io.IOException {
        getSerializedSize();
        if (((bitField0_ & 0x00000001) == 0x00000001)) {
          output.writeMessage(1, identity_);
        }
        for (int i = 0; i < rows_.size(); i++) {
          output.writeMessage(2, rows_.get(i));
        }
        getUnknownFields().writeTo(output);
      }
  
      private int memoizedSerializedSize = -1;
      public int getSerializedSize() {
        int size = memoizedSerializedSize;
        if (size != -1) return size;
  
        size = 0;
        if (((bitField0_ & 0x00000001) == 0x00000001)) {
          size += com.google.protobuf.CodedOutputStream
            .computeMessageSize(1, identity_);
        }
        for (int i = 0; i < rows_.size(); i++) {
          size += com.google.protobuf.CodedOutputStream
            .computeMessageSize(2, rows_.get(i));
        }
        size += getUnknownFields().getSerializedSize();
        memoizedSerializedSize = size;
        return size;
      }
  
      private static final long serialVersionUID = 0L;
      @java.lang.Override
      protected java.lang.Object writeReplace()
          throws java.io.ObjectStreamException {
        return super.writeReplace();
      }
  
      public static com.alibaba.otter.node.etl.model.protobuf.BatchProto.RowBatch parseFrom(
          com.google.protobuf.ByteString data)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return PARSER.parseFrom(data);
      }
      public static com.alibaba.otter.node.etl.model.protobuf.BatchProto.RowBatch parseFrom(
          com.google.protobuf.ByteString data,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return PARSER.parseFrom(data, extensionRegistry);
      }
      public static com.alibaba.otter.node.etl.model.protobuf.BatchProto.RowBatch parseFrom(byte[] data)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return PARSER.parseFrom(data);
      }
      public static com.alibaba.otter.node.etl.model.protobuf.BatchProto.RowBatch parseFrom(
          byte[] data,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return PARSER.parseFrom(data, extensionRegistry);
      }
      public static com.alibaba.otter.node.etl.model.protobuf.BatchProto.RowBatch parseFrom(java.io.InputStream input)
          throws java.io.IOException {
        return PARSER.parseFrom(input);
      }
      public static com.alibaba.otter.node.etl.model.protobuf.BatchProto.RowBatch parseFrom(
          java.io.InputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        return PARSER.parseFrom(input, extensionRegistry);
      }
      public static com.alibaba.otter.node.etl.model.protobuf.BatchProto.RowBatch parseDelimitedFrom(java.io.InputStream input)
          throws java.io.IOException {
        return PARSER.parseDelimitedFrom(input);
      }
      public static com.alibaba.otter.node.etl.model.protobuf.BatchProto.RowBatch parseDelimitedFrom(
          java.io.InputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        return PARSER.parseDelimitedFrom(input, extensionRegistry);
      }
      public static com.alibaba.otter.node.etl.model.protobuf.BatchProto.RowBatch parseFrom(
          com.google.protobuf.CodedInputStream input)
          throws java.io.IOException {
        return PARSER.parseFrom(input);
      }
      public static com.alibaba.otter.node.etl.model.protobuf.BatchProto.RowBatch parseFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        return PARSER.parseFrom(input, extensionRegistry);
      }
  
      public static Builder newBuilder() { return Builder.create(); }
      public Builder newBuilderForType() { return newBuilder(); }
      public static Builder newBuilder(com.alibaba.otter.node.etl.model.protobuf.BatchProto.RowBatch prototype) {
        return newBuilder().mergeFrom(prototype);
      }
      public Builder toBuilder() { return newBuilder(this); }
  
      @java.lang.Override
      protected Builder newBuilderForType(
          com.google.protobuf.GeneratedMessage.BuilderParent parent) {
        Builder builder = new Builder(parent);
        return builder;
      }
      /**
       * Protobuf type {@code com.alibaba.otter.node.etl.model.protobuf.RowBatch}
       *
       * <pre>
       **数据包*
       * </pre>
       */
      public static final class Builder extends
          com.google.protobuf.GeneratedMessage.Builder<Builder> implements
          // @@protoc_insertion_point(builder_implements:com.alibaba.otter.node.etl.model.protobuf.RowBatch)
          com.alibaba.otter.node.etl.model.protobuf.BatchProto.RowBatchOrBuilder {
        public static final com.google.protobuf.Descriptors.Descriptor
            getDescriptor() {
          return com.alibaba.otter.node.etl.model.protobuf.BatchProto.internal_static_com_alibaba_otter_node_etl_model_protobuf_RowBatch_descriptor;
        }
  
        protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
            internalGetFieldAccessorTable() {
          return com.alibaba.otter.node.etl.model.protobuf.BatchProto.internal_static_com_alibaba_otter_node_etl_model_protobuf_RowBatch_fieldAccessorTable
              .ensureFieldAccessorsInitialized(
                  com.alibaba.otter.node.etl.model.protobuf.BatchProto.RowBatch.class, com.alibaba.otter.node.etl.model.protobuf.BatchProto.RowBatch.Builder.class);
        }
  
        // Construct using com.alibaba.otter.node.etl.model.protobuf.BatchProto.RowBatch.newBuilder()
        private Builder() {
          maybeForceBuilderInitialization();
        }
  
        private Builder(
            com.google.protobuf.GeneratedMessage.BuilderParent parent) {
          super(parent);
          maybeForceBuilderInitialization();
        }
        private void maybeForceBuilderInitialization() {
          if (com.google.protobuf.GeneratedMessage.alwaysUseFieldBuilders) {
            getIdentityFieldBuilder();
            getRowsFieldBuilder();
          }
        }
        private static Builder create() {
          return new Builder();
        }
  
        public Builder clear() {
          super.clear();
          if (identityBuilder_ == null) {
            identity_ = com.alibaba.otter.node.etl.model.protobuf.BatchProto.Identity.getDefaultInstance();
          } else {
            identityBuilder_.clear();
          }
          bitField0_ = (bitField0_ & ~0x00000001);
          if (rowsBuilder_ == null) {
            rows_ = java.util.Collections.emptyList();
            bitField0_ = (bitField0_ & ~0x00000002);
          } else {
            rowsBuilder_.clear();
          }
          return this;
        }
  
        public Builder clone() {
          return create().mergeFrom(buildPartial());
        }
  
        public com.google.protobuf.Descriptors.Descriptor
            getDescriptorForType() {
          return com.alibaba.otter.node.etl.model.protobuf.BatchProto.internal_static_com_alibaba_otter_node_etl_model_protobuf_RowBatch_descriptor;
        }
  
        public com.alibaba.otter.node.etl.model.protobuf.BatchProto.RowBatch getDefaultInstanceForType() {
          return com.alibaba.otter.node.etl.model.protobuf.BatchProto.RowBatch.getDefaultInstance();
        }
  
        public com.alibaba.otter.node.etl.model.protobuf.BatchProto.RowBatch build() {
          com.alibaba.otter.node.etl.model.protobuf.BatchProto.RowBatch result = buildPartial();
          if (!result.isInitialized()) {
            throw newUninitializedMessageException(result);
          }
          return result;
        }
  
        public com.alibaba.otter.node.etl.model.protobuf.BatchProto.RowBatch buildPartial() {
          com.alibaba.otter.node.etl.model.protobuf.BatchProto.RowBatch result = new com.alibaba.otter.node.etl.model.protobuf.BatchProto.RowBatch(this);
          int from_bitField0_ = bitField0_;
          int to_bitField0_ = 0;
          if (((from_bitField0_ & 0x00000001) == 0x00000001)) {
            to_bitField0_ |= 0x00000001;
          }
          if (identityBuilder_ == null) {
            result.identity_ = identity_;
          } else {
            result.identity_ = identityBuilder_.build();
          }
          if (rowsBuilder_ == null) {
            if (((bitField0_ & 0x00000002) == 0x00000002)) {
              rows_ = java.util.Collections.unmodifiableList(rows_);
              bitField0_ = (bitField0_ & ~0x00000002);
            }
            result.rows_ = rows_;
          } else {
            result.rows_ = rowsBuilder_.build();
          }
          result.bitField0_ = to_bitField0_;
          onBuilt();
          return result;
        }
  
        public Builder mergeFrom(com.google.protobuf.Message other) {
          if (other instanceof com.alibaba.otter.node.etl.model.protobuf.BatchProto.RowBatch) {
            return mergeFrom((com.alibaba.otter.node.etl.model.protobuf.BatchProto.RowBatch)other);
          } else {
            super.mergeFrom(other);
            return this;
          }
        }
  
        public Builder mergeFrom(com.alibaba.otter.node.etl.model.protobuf.BatchProto.RowBatch other) {
          if (other == com.alibaba.otter.node.etl.model.protobuf.BatchProto.RowBatch.getDefaultInstance()) return this;
          if (other.hasIdentity()) {
            mergeIdentity(other.getIdentity());
          }
          if (rowsBuilder_ == null) {
            if (!other.rows_.isEmpty()) {
              if (rows_.isEmpty()) {
                rows_ = other.rows_;
                bitField0_ = (bitField0_ & ~0x00000002);
              } else {
                ensureRowsIsMutable();
                rows_.addAll(other.rows_);
              }
              onChanged();
            }
          } else {
            if (!other.rows_.isEmpty()) {
              if (rowsBuilder_.isEmpty()) {
                rowsBuilder_.dispose();
                rowsBuilder_ = null;
                rows_ = other.rows_;
                bitField0_ = (bitField0_ & ~0x00000002);
                rowsBuilder_ = 
                  com.google.protobuf.GeneratedMessage.alwaysUseFieldBuilders ?
                     getRowsFieldBuilder() : null;
              } else {
                rowsBuilder_.addAllMessages(other.rows_);
              }
            }
          }
          this.mergeUnknownFields(other.getUnknownFields());
          return this;
        }
  
        public final boolean isInitialized() {
          return true;
        }
  
        public Builder mergeFrom(
            com.google.protobuf.CodedInputStream input,
            com.google.protobuf.ExtensionRegistryLite extensionRegistry)
            throws java.io.IOException {
          com.alibaba.otter.node.etl.model.protobuf.BatchProto.RowBatch parsedMessage = null;
          try {
            parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry);
          } catch (com.google.protobuf.InvalidProtocolBufferException e) {
            parsedMessage = (com.alibaba.otter.node.etl.model.protobuf.BatchProto.RowBatch) e.getUnfinishedMessage();
            throw e;
          } finally {
            if (parsedMessage != null) {
              mergeFrom(parsedMessage);
            }
          }
          return this;
        }
        private int bitField0_;
  
        private com.alibaba.otter.node.etl.model.protobuf.BatchProto.Identity identity_ = com.alibaba.otter.node.etl.model.protobuf.BatchProto.Identity.getDefaultInstance();
        private com.google.protobuf.SingleFieldBuilder<
            com.alibaba.otter.node.etl.model.protobuf.BatchProto.Identity, com.alibaba.otter.node.etl.model.protobuf.BatchProto.Identity.Builder, com.alibaba.otter.node.etl.model.protobuf.BatchProto.IdentityOrBuilder> identityBuilder_;
        /**
         * <code>optional .com.alibaba.otter.node.etl.model.protobuf.Identity identity = 1;</code>
         */
        public boolean hasIdentity() {
          return ((bitField0_ & 0x00000001) == 0x00000001);
        }
        /**
         * <code>optional .com.alibaba.otter.node.etl.model.protobuf.Identity identity = 1;</code>
         */
        public com.alibaba.otter.node.etl.model.protobuf.BatchProto.Identity getIdentity() {
          if (identityBuilder_ == null) {
            return identity_;
          } else {
            return identityBuilder_.getMessage();
          }
        }
        /**
         * <code>optional .com.alibaba.otter.node.etl.model.protobuf.Identity identity = 1;</code>
         */
        public Builder setIdentity(com.alibaba.otter.node.etl.model.protobuf.BatchProto.Identity value) {
          if (identityBuilder_ == null) {
            if (value == null) {
              throw new NullPointerException();
            }
            identity_ = value;
            onChanged();
          } else {
            identityBuilder_.setMessage(value);
          }
          bitField0_ |= 0x00000001;
          return this;
        }
        /**
         * <code>optional .com.alibaba.otter.node.etl.model.protobuf.Identity identity = 1;</code>
         */
        public Builder setIdentity(
            com.alibaba.otter.node.etl.model.protobuf.BatchProto.Identity.Builder builderForValue) {
          if (identityBuilder_ == null) {
            identity_ = builderForValue.build();
            onChanged();
          } else {
            identityBuilder_.setMessage(builderForValue.build());
          }
          bitField0_ |= 0x00000001;
          return this;
        }
        /**
         * <code>optional .com.alibaba.otter.node.etl.model.protobuf.Identity identity = 1;</code>
         */
        public Builder mergeIdentity(com.alibaba.otter.node.etl.model.protobuf.BatchProto.Identity value) {
          if (identityBuilder_ == null) {
            if (((bitField0_ & 0x00000001) == 0x00000001) &&
                identity_ != com.alibaba.otter.node.etl.model.protobuf.BatchProto.Identity.getDefaultInstance()) {
              identity_ =
                com.alibaba.otter.node.etl.model.protobuf.BatchProto.Identity.newBuilder(identity_).mergeFrom(value).buildPartial();
            } else {
              identity_ = value;
            }
            onChanged();
          } else {
            identityBuilder_.mergeFrom(value);
          }
          bitField0_ |= 0x00000001;
          return this;
        }
        /**
         * <code>optional .com.alibaba.otter.node.etl.model.protobuf.Identity identity = 1;</code>
         */
        public Builder clearIdentity() {
          if (identityBuilder_ == null) {
            identity_ = com.alibaba.otter.node.etl.model.protobuf.BatchProto.Identity.getDefaultInstance();
            onChanged();
          } else {
            identityBuilder_.clear();
          }
          bitField0_ = (bitField0_ & ~0x00000001);
          return this;
        }
        /**
         * <code>optional .com.alibaba.otter.node.etl.model.protobuf.Identity identity = 1;</code>
         */
        public com.alibaba.otter.node.etl.model.protobuf.BatchProto.Identity.Builder getIdentityBuilder() {
          bitField0_ |= 0x00000001;
          onChanged();
          return getIdentityFieldBuilder().getBuilder();
        }
        /**
         * <code>optional .com.alibaba.otter.node.etl.model.protobuf.Identity identity = 1;</code>
         */
        public com.alibaba.otter.node.etl.model.protobuf.BatchProto.IdentityOrBuilder getIdentityOrBuilder() {
          if (identityBuilder_ != null) {
            return identityBuilder_.getMessageOrBuilder();
          } else {
            return identity_;
          }
        }
        /**
         * <code>optional .com.alibaba.otter.node.etl.model.protobuf.Identity identity = 1;</code>
         */
        private com.google.protobuf.SingleFieldBuilder<
            com.alibaba.otter.node.etl.model.protobuf.BatchProto.Identity, com.alibaba.otter.node.etl.model.protobuf.BatchProto.Identity.Builder, com.alibaba.otter.node.etl.model.protobuf.BatchProto.IdentityOrBuilder> 
            getIdentityFieldBuilder() {
          if (identityBuilder_ == null) {
            identityBuilder_ = new com.google.protobuf.SingleFieldBuilder<
                com.alibaba.otter.node.etl.model.protobuf.BatchProto.Identity, com.alibaba.otter.node.etl.model.protobuf.BatchProto.Identity.Builder, com.alibaba.otter.node.etl.model.protobuf.BatchProto.IdentityOrBuilder>(
                    getIdentity(),
                    getParentForChildren(),
                    isClean());
            identity_ = null;
          }
          return identityBuilder_;
        }
  
        private java.util.List<com.alibaba.otter.node.etl.model.protobuf.BatchProto.RowData> rows_ =
          java.util.Collections.emptyList();
        private void ensureRowsIsMutable() {
          if (!((bitField0_ & 0x00000002) == 0x00000002)) {
            rows_ = new java.util.ArrayList<com.alibaba.otter.node.etl.model.protobuf.BatchProto.RowData>(rows_);
            bitField0_ |= 0x00000002;
           }
        }
  
        private com.google.protobuf.RepeatedFieldBuilder<
            com.alibaba.otter.node.etl.model.protobuf.BatchProto.RowData, com.alibaba.otter.node.etl.model.protobuf.BatchProto.RowData.Builder, com.alibaba.otter.node.etl.model.protobuf.BatchProto.RowDataOrBuilder> rowsBuilder_;
  
        /**
         * <code>repeated .com.alibaba.otter.node.etl.model.protobuf.RowData rows = 2;</code>
         *
         * <pre>
         **每个batch里面的所有变更数据*
         * </pre>
         */
        public java.util.List<com.alibaba.otter.node.etl.model.protobuf.BatchProto.RowData> getRowsList() {
          if (rowsBuilder_ == null) {
            return java.util.Collections.unmodifiableList(rows_);
          } else {
            return rowsBuilder_.getMessageList();
          }
        }
        /**
         * <code>repeated .com.alibaba.otter.node.etl.model.protobuf.RowData rows = 2;</code>
         *
         * <pre>
         **每个batch里面的所有变更数据*
         * </pre>
         */
        public int getRowsCount() {
          if (rowsBuilder_ == null) {
            return rows_.size();
          } else {
            return rowsBuilder_.getCount();
          }
        }
        /**
         * <code>repeated .com.alibaba.otter.node.etl.model.protobuf.RowData rows = 2;</code>
         *
         * <pre>
         **每个batch里面的所有变更数据*
         * </pre>
         */
        public com.alibaba.otter.node.etl.model.protobuf.BatchProto.RowData getRows(int index) {
          if (rowsBuilder_ == null) {
            return rows_.get(index);
          } else {
            return rowsBuilder_.getMessage(index);
          }
        }
        /**
         * <code>repeated .com.alibaba.otter.node.etl.model.protobuf.RowData rows = 2;</code>
         *
         * <pre>
         **每个batch里面的所有变更数据*
         * </pre>
         */
        public Builder setRows(
            int index, com.alibaba.otter.node.etl.model.protobuf.BatchProto.RowData value) {
          if (rowsBuilder_ == null) {
            if (value == null) {
              throw new NullPointerException();
            }
            ensureRowsIsMutable();
            rows_.set(index, value);
            onChanged();
          } else {
            rowsBuilder_.setMessage(index, value);
          }
          return this;
        }
        /**
         * <code>repeated .com.alibaba.otter.node.etl.model.protobuf.RowData rows = 2;</code>
         *
         * <pre>
         **每个batch里面的所有变更数据*
         * </pre>
         */
        public Builder setRows(
            int index, com.alibaba.otter.node.etl.model.protobuf.BatchProto.RowData.Builder builderForValue) {
          if (rowsBuilder_ == null) {
            ensureRowsIsMutable();
            rows_.set(index, builderForValue.build());
            onChanged();
          } else {
            rowsBuilder_.setMessage(index, builderForValue.build());
          }
          return this;
        }
        /**
         * <code>repeated .com.alibaba.otter.node.etl.model.protobuf.RowData rows = 2;</code>
         *
         * <pre>
         **每个batch里面的所有变更数据*
         * </pre>
         */
        public Builder addRows(com.alibaba.otter.node.etl.model.protobuf.BatchProto.RowData value) {
          if (rowsBuilder_ == null) {
            if (value == null) {
              throw new NullPointerException();
            }
            ensureRowsIsMutable();
            rows_.add(value);
            onChanged();
          } else {
            rowsBuilder_.addMessage(value);
          }
          return this;
        }
        /**
         * <code>repeated .com.alibaba.otter.node.etl.model.protobuf.RowData rows = 2;</code>
         *
         * <pre>
         **每个batch里面的所有变更数据*
         * </pre>
         */
        public Builder addRows(
            int index, com.alibaba.otter.node.etl.model.protobuf.BatchProto.RowData value) {
          if (rowsBuilder_ == null) {
            if (value == null) {
              throw new NullPointerException();
            }
            ensureRowsIsMutable();
            rows_.add(index, value);
            onChanged();
          } else {
            rowsBuilder_.addMessage(index, value);
          }
          return this;
        }
        /**
         * <code>repeated .com.alibaba.otter.node.etl.model.protobuf.RowData rows = 2;</code>
         *
         * <pre>
         **每个batch里面的所有变更数据*
         * </pre>
         */
        public Builder addRows(
            com.alibaba.otter.node.etl.model.protobuf.BatchProto.RowData.Builder builderForValue) {
          if (rowsBuilder_ == null) {
            ensureRowsIsMutable();
            rows_.add(builderForValue.build());
            onChanged();
          } else {
            rowsBuilder_.addMessage(builderForValue.build());
          }
          return this;
        }
        /**
         * <code>repeated .com.alibaba.otter.node.etl.model.protobuf.RowData rows = 2;</code>
         *
         * <pre>
         **每个batch里面的所有变更数据*
         * </pre>
         */
        public Builder addRows(
            int index, com.alibaba.otter.node.etl.model.protobuf.BatchProto.RowData.Builder builderForValue) {
          if (rowsBuilder_ == null) {
            ensureRowsIsMutable();
            rows_.add(index, builderForValue.build());
            onChanged();
          } else {
            rowsBuilder_.addMessage(index, builderForValue.build());
          }
          return this;
        }
        /**
         * <code>repeated .com.alibaba.otter.node.etl.model.protobuf.RowData rows = 2;</code>
         *
         * <pre>
         **每个batch里面的所有变更数据*
         * </pre>
         */
        public Builder addAllRows(
            java.lang.Iterable<? extends com.alibaba.otter.node.etl.model.protobuf.BatchProto.RowData> values) {
          if (rowsBuilder_ == null) {
            ensureRowsIsMutable();
            com.google.protobuf.AbstractMessageLite.Builder.addAll(
                values, rows_);
            onChanged();
          } else {
            rowsBuilder_.addAllMessages(values);
          }
          return this;
        }
        /**
         * <code>repeated .com.alibaba.otter.node.etl.model.protobuf.RowData rows = 2;</code>
         *
         * <pre>
         **每个batch里面的所有变更数据*
         * </pre>
         */
        public Builder clearRows() {
          if (rowsBuilder_ == null) {
            rows_ = java.util.Collections.emptyList();
            bitField0_ = (bitField0_ & ~0x00000002);
            onChanged();
          } else {
            rowsBuilder_.clear();
          }
          return this;
        }
        /**
         * <code>repeated .com.alibaba.otter.node.etl.model.protobuf.RowData rows = 2;</code>
         *
         * <pre>
         **每个batch里面的所有变更数据*
         * </pre>
         */
        public Builder removeRows(int index) {
          if (rowsBuilder_ == null) {
            ensureRowsIsMutable();
            rows_.remove(index);
            onChanged();
          } else {
            rowsBuilder_.remove(index);
          }
          return this;
        }
        /**
         * <code>repeated .com.alibaba.otter.node.etl.model.protobuf.RowData rows = 2;</code>
         *
         * <pre>
         **每个batch里面的所有变更数据*
         * </pre>
         */
        public com.alibaba.otter.node.etl.model.protobuf.BatchProto.RowData.Builder getRowsBuilder(
            int index) {
          return getRowsFieldBuilder().getBuilder(index);
        }
        /**
         * <code>repeated .com.alibaba.otter.node.etl.model.protobuf.RowData rows = 2;</code>
         *
         * <pre>
         **每个batch里面的所有变更数据*
         * </pre>
         */
        public com.alibaba.otter.node.etl.model.protobuf.BatchProto.RowDataOrBuilder getRowsOrBuilder(
            int index) {
          if (rowsBuilder_ == null) {
            return rows_.get(index);  } else {
            return rowsBuilder_.getMessageOrBuilder(index);
          }
        }
        /**
         * <code>repeated .com.alibaba.otter.node.etl.model.protobuf.RowData rows = 2;</code>
         *
         * <pre>
         **每个batch里面的所有变更数据*
         * </pre>
         */
        public java.util.List<? extends com.alibaba.otter.node.etl.model.protobuf.BatchProto.RowDataOrBuilder> 
             getRowsOrBuilderList() {
          if (rowsBuilder_ != null) {
            return rowsBuilder_.getMessageOrBuilderList();
          } else {
            return java.util.Collections.unmodifiableList(rows_);
          }
        }
        /**
         * <code>repeated .com.alibaba.otter.node.etl.model.protobuf.RowData rows = 2;</code>
         *
         * <pre>
         **每个batch里面的所有变更数据*
         * </pre>
         */
        public com.alibaba.otter.node.etl.model.protobuf.BatchProto.RowData.Builder addRowsBuilder() {
          return getRowsFieldBuilder().addBuilder(
              com.alibaba.otter.node.etl.model.protobuf.BatchProto.RowData.getDefaultInstance());
        }
        /**
         * <code>repeated .com.alibaba.otter.node.etl.model.protobuf.RowData rows = 2;</code>
         *
         * <pre>
         **每个batch里面的所有变更数据*
         * </pre>
         */
        public com.alibaba.otter.node.etl.model.protobuf.BatchProto.RowData.Builder addRowsBuilder(
            int index) {
          return getRowsFieldBuilder().addBuilder(
              index, com.alibaba.otter.node.etl.model.protobuf.BatchProto.RowData.getDefaultInstance());
        }
        /**
         * <code>repeated .com.alibaba.otter.node.etl.model.protobuf.RowData rows = 2;</code>
         *
         * <pre>
         **每个batch里面的所有变更数据*
         * </pre>
         */
        public java.util.List<com.alibaba.otter.node.etl.model.protobuf.BatchProto.RowData.Builder> 
             getRowsBuilderList() {
          return getRowsFieldBuilder().getBuilderList();
        }
        private com.google.protobuf.RepeatedFieldBuilder<
            com.alibaba.otter.node.etl.model.protobuf.BatchProto.RowData, com.alibaba.otter.node.etl.model.protobuf.BatchProto.RowData.Builder, com.alibaba.otter.node.etl.model.protobuf.BatchProto.RowDataOrBuilder> 
            getRowsFieldBuilder() {
          if (rowsBuilder_ == null) {
            rowsBuilder_ = new com.google.protobuf.RepeatedFieldBuilder<
                com.alibaba.otter.node.etl.model.protobuf.BatchProto.RowData, com.alibaba.otter.node.etl.model.protobuf.BatchProto.RowData.Builder, com.alibaba.otter.node.etl.model.protobuf.BatchProto.RowDataOrBuilder>(
                    rows_,
                    ((bitField0_ & 0x00000002) == 0x00000002),
                    getParentForChildren(),
                    isClean());
            rows_ = null;
          }
          return rowsBuilder_;
        }
  
        // @@protoc_insertion_point(builder_scope:com.alibaba.otter.node.etl.model.protobuf.RowBatch)
      }
  
      static {
        defaultInstance = new RowBatch(true);
        defaultInstance.initFields();
      }
  
      // @@protoc_insertion_point(class_scope:com.alibaba.otter.node.etl.model.protobuf.RowBatch)
    }
  
    public interface FileBatchOrBuilder extends
        // @@protoc_insertion_point(interface_extends:com.alibaba.otter.node.etl.model.protobuf.FileBatch)
        com.google.protobuf.MessageOrBuilder {
  
      /**
       * <code>optional .com.alibaba.otter.node.etl.model.protobuf.Identity identity = 1;</code>
       */
      boolean hasIdentity();
      /**
       * <code>optional .com.alibaba.otter.node.etl.model.protobuf.Identity identity = 1;</code>
       */
      com.alibaba.otter.node.etl.model.protobuf.BatchProto.Identity getIdentity();
      /**
       * <code>optional .com.alibaba.otter.node.etl.model.protobuf.Identity identity = 1;</code>
       */
      com.alibaba.otter.node.etl.model.protobuf.BatchProto.IdentityOrBuilder getIdentityOrBuilder();
  
      /**
       * <code>repeated .com.alibaba.otter.node.etl.model.protobuf.FileData files = 2;</code>
       *
       * <pre>
       **每个batch里面变更数据所关联的文件信息*
       * </pre>
       */
      java.util.List<com.alibaba.otter.node.etl.model.protobuf.BatchProto.FileData> 
          getFilesList();
      /**
       * <code>repeated .com.alibaba.otter.node.etl.model.protobuf.FileData files = 2;</code>
       *
       * <pre>
       **每个batch里面变更数据所关联的文件信息*
       * </pre>
       */
      com.alibaba.otter.node.etl.model.protobuf.BatchProto.FileData getFiles(int index);
      /**
       * <code>repeated .com.alibaba.otter.node.etl.model.protobuf.FileData files = 2;</code>
       *
       * <pre>
       **每个batch里面变更数据所关联的文件信息*
       * </pre>
       */
      int getFilesCount();
      /**
       * <code>repeated .com.alibaba.otter.node.etl.model.protobuf.FileData files = 2;</code>
       *
       * <pre>
       **每个batch里面变更数据所关联的文件信息*
       * </pre>
       */
      java.util.List<? extends com.alibaba.otter.node.etl.model.protobuf.BatchProto.FileDataOrBuilder> 
          getFilesOrBuilderList();
      /**
       * <code>repeated .com.alibaba.otter.node.etl.model.protobuf.FileData files = 2;</code>
       *
       * <pre>
       **每个batch里面变更数据所关联的文件信息*
       * </pre>
       */
      com.alibaba.otter.node.etl.model.protobuf.BatchProto.FileDataOrBuilder getFilesOrBuilder(
          int index);
    }
    /**
     * Protobuf type {@code com.alibaba.otter.node.etl.model.protobuf.FileBatch}
     */
    public static final class FileBatch extends
        com.google.protobuf.GeneratedMessage implements
        // @@protoc_insertion_point(message_implements:com.alibaba.otter.node.etl.model.protobuf.FileBatch)
        FileBatchOrBuilder {
      // Use FileBatch.newBuilder() to construct.
      private FileBatch(com.google.protobuf.GeneratedMessage.Builder<?> builder) {
        super(builder);
        this.unknownFields = builder.getUnknownFields();
      }
      private FileBatch(boolean noInit) { this.unknownFields = com.google.protobuf.UnknownFieldSet.getDefaultInstance(); }
  
      private static final FileBatch defaultInstance;
      public static FileBatch getDefaultInstance() {
        return defaultInstance;
      }
  
      public FileBatch getDefaultInstanceForType() {
        return defaultInstance;
      }
  
      private final com.google.protobuf.UnknownFieldSet unknownFields;
      @java.lang.Override
      public final com.google.protobuf.UnknownFieldSet
          getUnknownFields() {
        return this.unknownFields;
      }
      private FileBatch(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws com.google.protobuf.InvalidProtocolBufferException {
        initFields();
        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;
              default: {
                if (!parseUnknownField(input, unknownFields,
                                       extensionRegistry, tag)) {
                  done = true;
                }
                break;
              }
              case 10: {
                com.alibaba.otter.node.etl.model.protobuf.BatchProto.Identity.Builder subBuilder = null;
                if (((bitField0_ & 0x00000001) == 0x00000001)) {
                  subBuilder = identity_.toBuilder();
                }
                identity_ = input.readMessage(com.alibaba.otter.node.etl.model.protobuf.BatchProto.Identity.PARSER, extensionRegistry);
                if (subBuilder != null) {
                  subBuilder.mergeFrom(identity_);
                  identity_ = subBuilder.buildPartial();
                }
                bitField0_ |= 0x00000001;
                break;
              }
              case 18: {
                if (!((mutable_bitField0_ & 0x00000002) == 0x00000002)) {
                  files_ = new java.util.ArrayList<com.alibaba.otter.node.etl.model.protobuf.BatchProto.FileData>();
                  mutable_bitField0_ |= 0x00000002;
                }
                files_.add(input.readMessage(com.alibaba.otter.node.etl.model.protobuf.BatchProto.FileData.PARSER, extensionRegistry));
                break;
              }
            }
          }
        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
          throw e.setUnfinishedMessage(this);
        } catch (java.io.IOException e) {
          throw new com.google.protobuf.InvalidProtocolBufferException(
              e.getMessage()).setUnfinishedMessage(this);
        } finally {
          if (((mutable_bitField0_ & 0x00000002) == 0x00000002)) {
            files_ = java.util.Collections.unmodifiableList(files_);
          }
          this.unknownFields = unknownFields.build();
          makeExtensionsImmutable();
        }
      }
      public static final com.google.protobuf.Descriptors.Descriptor
          getDescriptor() {
        return com.alibaba.otter.node.etl.model.protobuf.BatchProto.internal_static_com_alibaba_otter_node_etl_model_protobuf_FileBatch_descriptor;
      }
  
      protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return com.alibaba.otter.node.etl.model.protobuf.BatchProto.internal_static_com_alibaba_otter_node_etl_model_protobuf_FileBatch_fieldAccessorTable
            .ensureFieldAccessorsInitialized(
                com.alibaba.otter.node.etl.model.protobuf.BatchProto.FileBatch.class, com.alibaba.otter.node.etl.model.protobuf.BatchProto.FileBatch.Builder.class);
      }
  
      public static com.google.protobuf.Parser<FileBatch> PARSER =
          new com.google.protobuf.AbstractParser<FileBatch>() {
        public FileBatch parsePartialFrom(
            com.google.protobuf.CodedInputStream input,
            com.google.protobuf.ExtensionRegistryLite extensionRegistry)
            throws com.google.protobuf.InvalidProtocolBufferException {
          return new FileBatch(input, extensionRegistry);
        }
      };
  
      @java.lang.Override
      public com.google.protobuf.Parser<FileBatch> getParserForType() {
        return PARSER;
      }
  
      private int bitField0_;
      public static final int IDENTITY_FIELD_NUMBER = 1;
      private com.alibaba.otter.node.etl.model.protobuf.BatchProto.Identity identity_;
      /**
       * <code>optional .com.alibaba.otter.node.etl.model.protobuf.Identity identity = 1;</code>
       */
      public boolean hasIdentity() {
        return ((bitField0_ & 0x00000001) == 0x00000001);
      }
      /**
       * <code>optional .com.alibaba.otter.node.etl.model.protobuf.Identity identity = 1;</code>
       */
      public com.alibaba.otter.node.etl.model.protobuf.BatchProto.Identity getIdentity() {
        return identity_;
      }
      /**
       * <code>optional .com.alibaba.otter.node.etl.model.protobuf.Identity identity = 1;</code>
       */
      public com.alibaba.otter.node.etl.model.protobuf.BatchProto.IdentityOrBuilder getIdentityOrBuilder() {
        return identity_;
      }
  
      public static final int FILES_FIELD_NUMBER = 2;
      private java.util.List<com.alibaba.otter.node.etl.model.protobuf.BatchProto.FileData> files_;
      /**
       * <code>repeated .com.alibaba.otter.node.etl.model.protobuf.FileData files = 2;</code>
       *
       * <pre>
       **每个batch里面变更数据所关联的文件信息*
       * </pre>
       */
      public java.util.List<com.alibaba.otter.node.etl.model.protobuf.BatchProto.FileData> getFilesList() {
        return files_;
      }
      /**
       * <code>repeated .com.alibaba.otter.node.etl.model.protobuf.FileData files = 2;</code>
       *
       * <pre>
       **每个batch里面变更数据所关联的文件信息*
       * </pre>
       */
      public java.util.List<? extends com.alibaba.otter.node.etl.model.protobuf.BatchProto.FileDataOrBuilder> 
          getFilesOrBuilderList() {
        return files_;
      }
      /**
       * <code>repeated .com.alibaba.otter.node.etl.model.protobuf.FileData files = 2;</code>
       *
       * <pre>
       **每个batch里面变更数据所关联的文件信息*
       * </pre>
       */
      public int getFilesCount() {
        return files_.size();
      }
      /**
       * <code>repeated .com.alibaba.otter.node.etl.model.protobuf.FileData files = 2;</code>
       *
       * <pre>
       **每个batch里面变更数据所关联的文件信息*
       * </pre>
       */
      public com.alibaba.otter.node.etl.model.protobuf.BatchProto.FileData getFiles(int index) {
        return files_.get(index);
      }
      /**
       * <code>repeated .com.alibaba.otter.node.etl.model.protobuf.FileData files = 2;</code>
       *
       * <pre>
       **每个batch里面变更数据所关联的文件信息*
       * </pre>
       */
      public com.alibaba.otter.node.etl.model.protobuf.BatchProto.FileDataOrBuilder getFilesOrBuilder(
          int index) {
        return files_.get(index);
      }
  
      private void initFields() {
        identity_ = com.alibaba.otter.node.etl.model.protobuf.BatchProto.Identity.getDefaultInstance();
        files_ = java.util.Collections.emptyList();
      }
      private byte memoizedIsInitialized = -1;
      public final boolean isInitialized() {
        byte isInitialized = memoizedIsInitialized;
        if (isInitialized == 1) return true;
        if (isInitialized == 0) return false;
  
        memoizedIsInitialized = 1;
        return true;
      }
  
      public void writeTo(com.google.protobuf.CodedOutputStream output)
                          throws java.io.IOException {
        getSerializedSize();
        if (((bitField0_ & 0x00000001) == 0x00000001)) {
          output.writeMessage(1, identity_);
        }
        for (int i = 0; i < files_.size(); i++) {
          output.writeMessage(2, files_.get(i));
        }
        getUnknownFields().writeTo(output);
      }
  
      private int memoizedSerializedSize = -1;
      public int getSerializedSize() {
        int size = memoizedSerializedSize;
        if (size != -1) return size;
  
        size = 0;
        if (((bitField0_ & 0x00000001) == 0x00000001)) {
          size += com.google.protobuf.CodedOutputStream
            .computeMessageSize(1, identity_);
        }
        for (int i = 0; i < files_.size(); i++) {
          size += com.google.protobuf.CodedOutputStream
            .computeMessageSize(2, files_.get(i));
        }
        size += getUnknownFields().getSerializedSize();
        memoizedSerializedSize = size;
        return size;
      }
  
      private static final long serialVersionUID = 0L;
      @java.lang.Override
      protected java.lang.Object writeReplace()
          throws java.io.ObjectStreamException {
        return super.writeReplace();
      }
  
      public static com.alibaba.otter.node.etl.model.protobuf.BatchProto.FileBatch parseFrom(
          com.google.protobuf.ByteString data)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return PARSER.parseFrom(data);
      }
      public static com.alibaba.otter.node.etl.model.protobuf.BatchProto.FileBatch parseFrom(
          com.google.protobuf.ByteString data,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return PARSER.parseFrom(data, extensionRegistry);
      }
      public static com.alibaba.otter.node.etl.model.protobuf.BatchProto.FileBatch parseFrom(byte[] data)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return PARSER.parseFrom(data);
      }
      public static com.alibaba.otter.node.etl.model.protobuf.BatchProto.FileBatch parseFrom(
          byte[] data,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return PARSER.parseFrom(data, extensionRegistry);
      }
      public static com.alibaba.otter.node.etl.model.protobuf.BatchProto.FileBatch parseFrom(java.io.InputStream input)
          throws java.io.IOException {
        return PARSER.parseFrom(input);
      }
      public static com.alibaba.otter.node.etl.model.protobuf.BatchProto.FileBatch parseFrom(
          java.io.InputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        return PARSER.parseFrom(input, extensionRegistry);
      }
      public static com.alibaba.otter.node.etl.model.protobuf.BatchProto.FileBatch parseDelimitedFrom(java.io.InputStream input)
          throws java.io.IOException {
        return PARSER.parseDelimitedFrom(input);
      }
      public static com.alibaba.otter.node.etl.model.protobuf.BatchProto.FileBatch parseDelimitedFrom(
          java.io.InputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        return PARSER.parseDelimitedFrom(input, extensionRegistry);
      }
      public static com.alibaba.otter.node.etl.model.protobuf.BatchProto.FileBatch parseFrom(
          com.google.protobuf.CodedInputStream input)
          throws java.io.IOException {
        return PARSER.parseFrom(input);
      }
      public static com.alibaba.otter.node.etl.model.protobuf.BatchProto.FileBatch parseFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        return PARSER.parseFrom(input, extensionRegistry);
      }
  
      public static Builder newBuilder() { return Builder.create(); }
      public Builder newBuilderForType() { return newBuilder(); }
      public static Builder newBuilder(com.alibaba.otter.node.etl.model.protobuf.BatchProto.FileBatch prototype) {
        return newBuilder().mergeFrom(prototype);
      }
      public Builder toBuilder() { return newBuilder(this); }
  
      @java.lang.Override
      protected Builder newBuilderForType(
          com.google.protobuf.GeneratedMessage.BuilderParent parent) {
        Builder builder = new Builder(parent);
        return builder;
      }
      /**
       * Protobuf type {@code com.alibaba.otter.node.etl.model.protobuf.FileBatch}
       */
      public static final class Builder extends
          com.google.protobuf.GeneratedMessage.Builder<Builder> implements
          // @@protoc_insertion_point(builder_implements:com.alibaba.otter.node.etl.model.protobuf.FileBatch)
          com.alibaba.otter.node.etl.model.protobuf.BatchProto.FileBatchOrBuilder {
        public static final com.google.protobuf.Descriptors.Descriptor
            getDescriptor() {
          return com.alibaba.otter.node.etl.model.protobuf.BatchProto.internal_static_com_alibaba_otter_node_etl_model_protobuf_FileBatch_descriptor;
        }
  
        protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
            internalGetFieldAccessorTable() {
          return com.alibaba.otter.node.etl.model.protobuf.BatchProto.internal_static_com_alibaba_otter_node_etl_model_protobuf_FileBatch_fieldAccessorTable
              .ensureFieldAccessorsInitialized(
                  com.alibaba.otter.node.etl.model.protobuf.BatchProto.FileBatch.class, com.alibaba.otter.node.etl.model.protobuf.BatchProto.FileBatch.Builder.class);
        }
  
        // Construct using com.alibaba.otter.node.etl.model.protobuf.BatchProto.FileBatch.newBuilder()
        private Builder() {
          maybeForceBuilderInitialization();
        }
  
        private Builder(
            com.google.protobuf.GeneratedMessage.BuilderParent parent) {
          super(parent);
          maybeForceBuilderInitialization();
        }
        private void maybeForceBuilderInitialization() {
          if (com.google.protobuf.GeneratedMessage.alwaysUseFieldBuilders) {
            getIdentityFieldBuilder();
            getFilesFieldBuilder();
          }
        }
        private static Builder create() {
          return new Builder();
        }
  
        public Builder clear() {
          super.clear();
          if (identityBuilder_ == null) {
            identity_ = com.alibaba.otter.node.etl.model.protobuf.BatchProto.Identity.getDefaultInstance();
          } else {
            identityBuilder_.clear();
          }
          bitField0_ = (bitField0_ & ~0x00000001);
          if (filesBuilder_ == null) {
            files_ = java.util.Collections.emptyList();
            bitField0_ = (bitField0_ & ~0x00000002);
          } else {
            filesBuilder_.clear();
          }
          return this;
        }
  
        public Builder clone() {
          return create().mergeFrom(buildPartial());
        }
  
        public com.google.protobuf.Descriptors.Descriptor
            getDescriptorForType() {
          return com.alibaba.otter.node.etl.model.protobuf.BatchProto.internal_static_com_alibaba_otter_node_etl_model_protobuf_FileBatch_descriptor;
        }
  
        public com.alibaba.otter.node.etl.model.protobuf.BatchProto.FileBatch getDefaultInstanceForType() {
          return com.alibaba.otter.node.etl.model.protobuf.BatchProto.FileBatch.getDefaultInstance();
        }
  
        public com.alibaba.otter.node.etl.model.protobuf.BatchProto.FileBatch build() {
          com.alibaba.otter.node.etl.model.protobuf.BatchProto.FileBatch result = buildPartial();
          if (!result.isInitialized()) {
            throw newUninitializedMessageException(result);
          }
          return result;
        }
  
        public com.alibaba.otter.node.etl.model.protobuf.BatchProto.FileBatch buildPartial() {
          com.alibaba.otter.node.etl.model.protobuf.BatchProto.FileBatch result = new com.alibaba.otter.node.etl.model.protobuf.BatchProto.FileBatch(this);
          int from_bitField0_ = bitField0_;
          int to_bitField0_ = 0;
          if (((from_bitField0_ & 0x00000001) == 0x00000001)) {
            to_bitField0_ |= 0x00000001;
          }
          if (identityBuilder_ == null) {
            result.identity_ = identity_;
          } else {
            result.identity_ = identityBuilder_.build();
          }
          if (filesBuilder_ == null) {
            if (((bitField0_ & 0x00000002) == 0x00000002)) {
              files_ = java.util.Collections.unmodifiableList(files_);
              bitField0_ = (bitField0_ & ~0x00000002);
            }
            result.files_ = files_;
          } else {
            result.files_ = filesBuilder_.build();
          }
          result.bitField0_ = to_bitField0_;
          onBuilt();
          return result;
        }
  
        public Builder mergeFrom(com.google.protobuf.Message other) {
          if (other instanceof com.alibaba.otter.node.etl.model.protobuf.BatchProto.FileBatch) {
            return mergeFrom((com.alibaba.otter.node.etl.model.protobuf.BatchProto.FileBatch)other);
          } else {
            super.mergeFrom(other);
            return this;
          }
        }
  
        public Builder mergeFrom(com.alibaba.otter.node.etl.model.protobuf.BatchProto.FileBatch other) {
          if (other == com.alibaba.otter.node.etl.model.protobuf.BatchProto.FileBatch.getDefaultInstance()) return this;
          if (other.hasIdentity()) {
            mergeIdentity(other.getIdentity());
          }
          if (filesBuilder_ == null) {
            if (!other.files_.isEmpty()) {
              if (files_.isEmpty()) {
                files_ = other.files_;
                bitField0_ = (bitField0_ & ~0x00000002);
              } else {
                ensureFilesIsMutable();
                files_.addAll(other.files_);
              }
              onChanged();
            }
          } else {
            if (!other.files_.isEmpty()) {
              if (filesBuilder_.isEmpty()) {
                filesBuilder_.dispose();
                filesBuilder_ = null;
                files_ = other.files_;
                bitField0_ = (bitField0_ & ~0x00000002);
                filesBuilder_ = 
                  com.google.protobuf.GeneratedMessage.alwaysUseFieldBuilders ?
                     getFilesFieldBuilder() : null;
              } else {
                filesBuilder_.addAllMessages(other.files_);
              }
            }
          }
          this.mergeUnknownFields(other.getUnknownFields());
          return this;
        }
  
        public final boolean isInitialized() {
          return true;
        }
  
        public Builder mergeFrom(
            com.google.protobuf.CodedInputStream input,
            com.google.protobuf.ExtensionRegistryLite extensionRegistry)
            throws java.io.IOException {
          com.alibaba.otter.node.etl.model.protobuf.BatchProto.FileBatch parsedMessage = null;
          try {
            parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry);
          } catch (com.google.protobuf.InvalidProtocolBufferException e) {
            parsedMessage = (com.alibaba.otter.node.etl.model.protobuf.BatchProto.FileBatch) e.getUnfinishedMessage();
            throw e;
          } finally {
            if (parsedMessage != null) {
              mergeFrom(parsedMessage);
            }
          }
          return this;
        }
        private int bitField0_;
  
        private com.alibaba.otter.node.etl.model.protobuf.BatchProto.Identity identity_ = com.alibaba.otter.node.etl.model.protobuf.BatchProto.Identity.getDefaultInstance();
        private com.google.protobuf.SingleFieldBuilder<
            com.alibaba.otter.node.etl.model.protobuf.BatchProto.Identity, com.alibaba.otter.node.etl.model.protobuf.BatchProto.Identity.Builder, com.alibaba.otter.node.etl.model.protobuf.BatchProto.IdentityOrBuilder> identityBuilder_;
        /**
         * <code>optional .com.alibaba.otter.node.etl.model.protobuf.Identity identity = 1;</code>
         */
        public boolean hasIdentity() {
          return ((bitField0_ & 0x00000001) == 0x00000001);
        }
        /**
         * <code>optional .com.alibaba.otter.node.etl.model.protobuf.Identity identity = 1;</code>
         */
        public com.alibaba.otter.node.etl.model.protobuf.BatchProto.Identity getIdentity() {
          if (identityBuilder_ == null) {
            return identity_;
          } else {
            return identityBuilder_.getMessage();
          }
        }
        /**
         * <code>optional .com.alibaba.otter.node.etl.model.protobuf.Identity identity = 1;</code>
         */
        public Builder setIdentity(com.alibaba.otter.node.etl.model.protobuf.BatchProto.Identity value) {
          if (identityBuilder_ == null) {
            if (value == null) {
              throw new NullPointerException();
            }
            identity_ = value;
            onChanged();
          } else {
            identityBuilder_.setMessage(value);
          }
          bitField0_ |= 0x00000001;
          return this;
        }
        /**
         * <code>optional .com.alibaba.otter.node.etl.model.protobuf.Identity identity = 1;</code>
         */
        public Builder setIdentity(
            com.alibaba.otter.node.etl.model.protobuf.BatchProto.Identity.Builder builderForValue) {
          if (identityBuilder_ == null) {
            identity_ = builderForValue.build();
            onChanged();
          } else {
            identityBuilder_.setMessage(builderForValue.build());
          }
          bitField0_ |= 0x00000001;
          return this;
        }
        /**
         * <code>optional .com.alibaba.otter.node.etl.model.protobuf.Identity identity = 1;</code>
         */
        public Builder mergeIdentity(com.alibaba.otter.node.etl.model.protobuf.BatchProto.Identity value) {
          if (identityBuilder_ == null) {
            if (((bitField0_ & 0x00000001) == 0x00000001) &&
                identity_ != com.alibaba.otter.node.etl.model.protobuf.BatchProto.Identity.getDefaultInstance()) {
              identity_ =
                com.alibaba.otter.node.etl.model.protobuf.BatchProto.Identity.newBuilder(identity_).mergeFrom(value).buildPartial();
            } else {
              identity_ = value;
            }
            onChanged();
          } else {
            identityBuilder_.mergeFrom(value);
          }
          bitField0_ |= 0x00000001;
          return this;
        }
        /**
         * <code>optional .com.alibaba.otter.node.etl.model.protobuf.Identity identity = 1;</code>
         */
        public Builder clearIdentity() {
          if (identityBuilder_ == null) {
            identity_ = com.alibaba.otter.node.etl.model.protobuf.BatchProto.Identity.getDefaultInstance();
            onChanged();
          } else {
            identityBuilder_.clear();
          }
          bitField0_ = (bitField0_ & ~0x00000001);
          return this;
        }
        /**
         * <code>optional .com.alibaba.otter.node.etl.model.protobuf.Identity identity = 1;</code>
         */
        public com.alibaba.otter.node.etl.model.protobuf.BatchProto.Identity.Builder getIdentityBuilder() {
          bitField0_ |= 0x00000001;
          onChanged();
          return getIdentityFieldBuilder().getBuilder();
        }
        /**
         * <code>optional .com.alibaba.otter.node.etl.model.protobuf.Identity identity = 1;</code>
         */
        public com.alibaba.otter.node.etl.model.protobuf.BatchProto.IdentityOrBuilder getIdentityOrBuilder() {
          if (identityBuilder_ != null) {
            return identityBuilder_.getMessageOrBuilder();
          } else {
            return identity_;
          }
        }
        /**
         * <code>optional .com.alibaba.otter.node.etl.model.protobuf.Identity identity = 1;</code>
         */
        private com.google.protobuf.SingleFieldBuilder<
            com.alibaba.otter.node.etl.model.protobuf.BatchProto.Identity, com.alibaba.otter.node.etl.model.protobuf.BatchProto.Identity.Builder, com.alibaba.otter.node.etl.model.protobuf.BatchProto.IdentityOrBuilder> 
            getIdentityFieldBuilder() {
          if (identityBuilder_ == null) {
            identityBuilder_ = new com.google.protobuf.SingleFieldBuilder<
                com.alibaba.otter.node.etl.model.protobuf.BatchProto.Identity, com.alibaba.otter.node.etl.model.protobuf.BatchProto.Identity.Builder, com.alibaba.otter.node.etl.model.protobuf.BatchProto.IdentityOrBuilder>(
                    getIdentity(),
                    getParentForChildren(),
                    isClean());
            identity_ = null;
          }
          return identityBuilder_;
        }
  
        private java.util.List<com.alibaba.otter.node.etl.model.protobuf.BatchProto.FileData> files_ =
          java.util.Collections.emptyList();
        private void ensureFilesIsMutable() {
          if (!((bitField0_ & 0x00000002) == 0x00000002)) {
            files_ = new java.util.ArrayList<com.alibaba.otter.node.etl.model.protobuf.BatchProto.FileData>(files_);
            bitField0_ |= 0x00000002;
           }
        }
  
        private com.google.protobuf.RepeatedFieldBuilder<
            com.alibaba.otter.node.etl.model.protobuf.BatchProto.FileData, com.alibaba.otter.node.etl.model.protobuf.BatchProto.FileData.Builder, com.alibaba.otter.node.etl.model.protobuf.BatchProto.FileDataOrBuilder> filesBuilder_;
  
        /**
         * <code>repeated .com.alibaba.otter.node.etl.model.protobuf.FileData files = 2;</code>
         *
         * <pre>
         **每个batch里面变更数据所关联的文件信息*
         * </pre>
         */
        public java.util.List<com.alibaba.otter.node.etl.model.protobuf.BatchProto.FileData> getFilesList() {
          if (filesBuilder_ == null) {
            return java.util.Collections.unmodifiableList(files_);
          } else {
            return filesBuilder_.getMessageList();
          }
        }
        /**
         * <code>repeated .com.alibaba.otter.node.etl.model.protobuf.FileData files = 2;</code>
         *
         * <pre>
         **每个batch里面变更数据所关联的文件信息*
         * </pre>
         */
        public int getFilesCount() {
          if (filesBuilder_ == null) {
            return files_.size();
          } else {
            return filesBuilder_.getCount();
          }
        }
        /**
         * <code>repeated .com.alibaba.otter.node.etl.model.protobuf.FileData files = 2;</code>
         *
         * <pre>
         **每个batch里面变更数据所关联的文件信息*
         * </pre>
         */
        public com.alibaba.otter.node.etl.model.protobuf.BatchProto.FileData getFiles(int index) {
          if (filesBuilder_ == null) {
            return files_.get(index);
          } else {
            return filesBuilder_.getMessage(index);
          }
        }
        /**
         * <code>repeated .com.alibaba.otter.node.etl.model.protobuf.FileData files = 2;</code>
         *
         * <pre>
         **每个batch里面变更数据所关联的文件信息*
         * </pre>
         */
        public Builder setFiles(
            int index, com.alibaba.otter.node.etl.model.protobuf.BatchProto.FileData value) {
          if (filesBuilder_ == null) {
            if (value == null) {
              throw new NullPointerException();
            }
            ensureFilesIsMutable();
            files_.set(index, value);
            onChanged();
          } else {
            filesBuilder_.setMessage(index, value);
          }
          return this;
        }
        /**
         * <code>repeated .com.alibaba.otter.node.etl.model.protobuf.FileData files = 2;</code>
         *
         * <pre>
         **每个batch里面变更数据所关联的文件信息*
         * </pre>
         */
        public Builder setFiles(
            int index, com.alibaba.otter.node.etl.model.protobuf.BatchProto.FileData.Builder builderForValue) {
          if (filesBuilder_ == null) {
            ensureFilesIsMutable();
            files_.set(index, builderForValue.build());
            onChanged();
          } else {
            filesBuilder_.setMessage(index, builderForValue.build());
          }
          return this;
        }
        /**
         * <code>repeated .com.alibaba.otter.node.etl.model.protobuf.FileData files = 2;</code>
         *
         * <pre>
         **每个batch里面变更数据所关联的文件信息*
         * </pre>
         */
        public Builder addFiles(com.alibaba.otter.node.etl.model.protobuf.BatchProto.FileData value) {
          if (filesBuilder_ == null) {
            if (value == null) {
              throw new NullPointerException();
            }
            ensureFilesIsMutable();
            files_.add(value);
            onChanged();
          } else {
            filesBuilder_.addMessage(value);
          }
          return this;
        }
        /**
         * <code>repeated .com.alibaba.otter.node.etl.model.protobuf.FileData files = 2;</code>
         *
         * <pre>
         **每个batch里面变更数据所关联的文件信息*
         * </pre>
         */
        public Builder addFiles(
            int index, com.alibaba.otter.node.etl.model.protobuf.BatchProto.FileData value) {
          if (filesBuilder_ == null) {
            if (value == null) {
              throw new NullPointerException();
            }
            ensureFilesIsMutable();
            files_.add(index, value);
            onChanged();
          } else {
            filesBuilder_.addMessage(index, value);
          }
          return this;
        }
        /**
         * <code>repeated .com.alibaba.otter.node.etl.model.protobuf.FileData files = 2;</code>
         *
         * <pre>
         **每个batch里面变更数据所关联的文件信息*
         * </pre>
         */
        public Builder addFiles(
            com.alibaba.otter.node.etl.model.protobuf.BatchProto.FileData.Builder builderForValue) {
          if (filesBuilder_ == null) {
            ensureFilesIsMutable();
            files_.add(builderForValue.build());
            onChanged();
          } else {
            filesBuilder_.addMessage(builderForValue.build());
          }
          return this;
        }
        /**
         * <code>repeated .com.alibaba.otter.node.etl.model.protobuf.FileData files = 2;</code>
         *
         * <pre>
         **每个batch里面变更数据所关联的文件信息*
         * </pre>
         */
        public Builder addFiles(
            int index, com.alibaba.otter.node.etl.model.protobuf.BatchProto.FileData.Builder builderForValue) {
          if (filesBuilder_ == null) {
            ensureFilesIsMutable();
            files_.add(index, builderForValue.build());
            onChanged();
          } else {
            filesBuilder_.addMessage(index, builderForValue.build());
          }
          return this;
        }
        /**
         * <code>repeated .com.alibaba.otter.node.etl.model.protobuf.FileData files = 2;</code>
         *
         * <pre>
         **每个batch里面变更数据所关联的文件信息*
         * </pre>
         */
        public Builder addAllFiles(
            java.lang.Iterable<? extends com.alibaba.otter.node.etl.model.protobuf.BatchProto.FileData> values) {
          if (filesBuilder_ == null) {
            ensureFilesIsMutable();
            com.google.protobuf.AbstractMessageLite.Builder.addAll(
                values, files_);
            onChanged();
          } else {
            filesBuilder_.addAllMessages(values);
          }
          return this;
        }
        /**
         * <code>repeated .com.alibaba.otter.node.etl.model.protobuf.FileData files = 2;</code>
         *
         * <pre>
         **每个batch里面变更数据所关联的文件信息*
         * </pre>
         */
        public Builder clearFiles() {
          if (filesBuilder_ == null) {
            files_ = java.util.Collections.emptyList();
            bitField0_ = (bitField0_ & ~0x00000002);
            onChanged();
          } else {
            filesBuilder_.clear();
          }
          return this;
        }
        /**
         * <code>repeated .com.alibaba.otter.node.etl.model.protobuf.FileData files = 2;</code>
         *
         * <pre>
         **每个batch里面变更数据所关联的文件信息*
         * </pre>
         */
        public Builder removeFiles(int index) {
          if (filesBuilder_ == null) {
            ensureFilesIsMutable();
            files_.remove(index);
            onChanged();
          } else {
            filesBuilder_.remove(index);
          }
          return this;
        }
        /**
         * <code>repeated .com.alibaba.otter.node.etl.model.protobuf.FileData files = 2;</code>
         *
         * <pre>
         **每个batch里面变更数据所关联的文件信息*
         * </pre>
         */
        public com.alibaba.otter.node.etl.model.protobuf.BatchProto.FileData.Builder getFilesBuilder(
            int index) {
          return getFilesFieldBuilder().getBuilder(index);
        }
        /**
         * <code>repeated .com.alibaba.otter.node.etl.model.protobuf.FileData files = 2;</code>
         *
         * <pre>
         **每个batch里面变更数据所关联的文件信息*
         * </pre>
         */
        public com.alibaba.otter.node.etl.model.protobuf.BatchProto.FileDataOrBuilder getFilesOrBuilder(
            int index) {
          if (filesBuilder_ == null) {
            return files_.get(index);  } else {
            return filesBuilder_.getMessageOrBuilder(index);
          }
        }
        /**
         * <code>repeated .com.alibaba.otter.node.etl.model.protobuf.FileData files = 2;</code>
         *
         * <pre>
         **每个batch里面变更数据所关联的文件信息*
         * </pre>
         */
        public java.util.List<? extends com.alibaba.otter.node.etl.model.protobuf.BatchProto.FileDataOrBuilder> 
             getFilesOrBuilderList() {
          if (filesBuilder_ != null) {
            return filesBuilder_.getMessageOrBuilderList();
          } else {
            return java.util.Collections.unmodifiableList(files_);
          }
        }
        /**
         * <code>repeated .com.alibaba.otter.node.etl.model.protobuf.FileData files = 2;</code>
         *
         * <pre>
         **每个batch里面变更数据所关联的文件信息*
         * </pre>
         */
        public com.alibaba.otter.node.etl.model.protobuf.BatchProto.FileData.Builder addFilesBuilder() {
          return getFilesFieldBuilder().addBuilder(
              com.alibaba.otter.node.etl.model.protobuf.BatchProto.FileData.getDefaultInstance());
        }
        /**
         * <code>repeated .com.alibaba.otter.node.etl.model.protobuf.FileData files = 2;</code>
         *
         * <pre>
         **每个batch里面变更数据所关联的文件信息*
         * </pre>
         */
        public com.alibaba.otter.node.etl.model.protobuf.BatchProto.FileData.Builder addFilesBuilder(
            int index) {
          return getFilesFieldBuilder().addBuilder(
              index, com.alibaba.otter.node.etl.model.protobuf.BatchProto.FileData.getDefaultInstance());
        }
        /**
         * <code>repeated .com.alibaba.otter.node.etl.model.protobuf.FileData files = 2;</code>
         *
         * <pre>
         **每个batch里面变更数据所关联的文件信息*
         * </pre>
         */
        public java.util.List<com.alibaba.otter.node.etl.model.protobuf.BatchProto.FileData.Builder> 
             getFilesBuilderList() {
          return getFilesFieldBuilder().getBuilderList();
        }
        private com.google.protobuf.RepeatedFieldBuilder<
            com.alibaba.otter.node.etl.model.protobuf.BatchProto.FileData, com.alibaba.otter.node.etl.model.protobuf.BatchProto.FileData.Builder, com.alibaba.otter.node.etl.model.protobuf.BatchProto.FileDataOrBuilder> 
            getFilesFieldBuilder() {
          if (filesBuilder_ == null) {
            filesBuilder_ = new com.google.protobuf.RepeatedFieldBuilder<
                com.alibaba.otter.node.etl.model.protobuf.BatchProto.FileData, com.alibaba.otter.node.etl.model.protobuf.BatchProto.FileData.Builder, com.alibaba.otter.node.etl.model.protobuf.BatchProto.FileDataOrBuilder>(
                    files_,
                    ((bitField0_ & 0x00000002) == 0x00000002),
                    getParentForChildren(),
                    isClean());
            files_ = null;
          }
          return filesBuilder_;
        }
  
        // @@protoc_insertion_point(builder_scope:com.alibaba.otter.node.etl.model.protobuf.FileBatch)
      }
  
      static {
        defaultInstance = new FileBatch(true);
        defaultInstance.initFields();
      }
  
      // @@protoc_insertion_point(class_scope:com.alibaba.otter.node.etl.model.protobuf.FileBatch)
    }
  
    public interface RowDataOrBuilder extends
        // @@protoc_insertion_point(interface_extends:com.alibaba.otter.node.etl.model.protobuf.RowData)
        com.google.protobuf.MessageOrBuilder {
  
      /**
       * <code>optional int64 tableId = 1;</code>
       */
      boolean hasTableId();
      /**
       * <code>optional int64 tableId = 1;</code>
       */
      long getTableId();
  
      /**
       * <code>optional string schemaName = 2;</code>
       */
      boolean hasSchemaName();
      /**
       * <code>optional string schemaName = 2;</code>
       */
      java.lang.String getSchemaName();
      /**
       * <code>optional string schemaName = 2;</code>
       */
      com.google.protobuf.ByteString
          getSchemaNameBytes();
  
      /**
       * <code>optional string tableName = 3;</code>
       */
      boolean hasTableName();
      /**
       * <code>optional string tableName = 3;</code>
       */
      java.lang.String getTableName();
      /**
       * <code>optional string tableName = 3;</code>
       */
      com.google.protobuf.ByteString
          getTableNameBytes();
  
      /**
       * <code>optional string eventType = 4;</code>
       *
       * <pre>
       **变更数据的操作类型(I/U/D)*
       * </pre>
       */
      boolean hasEventType();
      /**
       * <code>optional string eventType = 4;</code>
       *
       * <pre>
       **变更数据的操作类型(I/U/D)*
       * </pre>
       */
      java.lang.String getEventType();
      /**
       * <code>optional string eventType = 4;</code>
       *
       * <pre>
       **变更数据的操作类型(I/U/D)*
       * </pre>
       */
      com.google.protobuf.ByteString
          getEventTypeBytes();
  
      /**
       * <code>repeated .com.alibaba.otter.node.etl.model.protobuf.Column oldKeys = 5;</code>
       *
       * <pre>
       **变更前的主键，可能是复合主键*
       * </pre>
       */
      java.util.List<com.alibaba.otter.node.etl.model.protobuf.BatchProto.Column> 
          getOldKeysList();
      /**
       * <code>repeated .com.alibaba.otter.node.etl.model.protobuf.Column oldKeys = 5;</code>
       *
       * <pre>
       **变更前的主键，可能是复合主键*
       * </pre>
       */
      com.alibaba.otter.node.etl.model.protobuf.BatchProto.Column getOldKeys(int index);
      /**
       * <code>repeated .com.alibaba.otter.node.etl.model.protobuf.Column oldKeys = 5;</code>
       *
       * <pre>
       **变更前的主键，可能是复合主键*
       * </pre>
       */
      int getOldKeysCount();
      /**
       * <code>repeated .com.alibaba.otter.node.etl.model.protobuf.Column oldKeys = 5;</code>
       *
       * <pre>
       **变更前的主键，可能是复合主键*
       * </pre>
       */
      java.util.List<? extends com.alibaba.otter.node.etl.model.protobuf.BatchProto.ColumnOrBuilder> 
          getOldKeysOrBuilderList();
      /**
       * <code>repeated .com.alibaba.otter.node.etl.model.protobuf.Column oldKeys = 5;</code>
       *
       * <pre>
       **变更前的主键，可能是复合主键*
       * </pre>
       */
      com.alibaba.otter.node.etl.model.protobuf.BatchProto.ColumnOrBuilder getOldKeysOrBuilder(
          int index);
  
      /**
       * <code>repeated .com.alibaba.otter.node.etl.model.protobuf.Column keys = 6;</code>
       *
       * <pre>
       **变更后的主键，可能是复合主键*
       * </pre>
       */
      java.util.List<com.alibaba.otter.node.etl.model.protobuf.BatchProto.Column> 
          getKeysList();
      /**
       * <code>repeated .com.alibaba.otter.node.etl.model.protobuf.Column keys = 6;</code>
       *
       * <pre>
       **变更后的主键，可能是复合主键*
       * </pre>
       */
      com.alibaba.otter.node.etl.model.protobuf.BatchProto.Column getKeys(int index);
      /**
       * <code>repeated .com.alibaba.otter.node.etl.model.protobuf.Column keys = 6;</code>
       *
       * <pre>
       **变更后的主键，可能是复合主键*
       * </pre>
       */
      int getKeysCount();
      /**
       * <code>repeated .com.alibaba.otter.node.etl.model.protobuf.Column keys = 6;</code>
       *
       * <pre>
       **变更后的主键，可能是复合主键*
       * </pre>
       */
      java.util.List<? extends com.alibaba.otter.node.etl.model.protobuf.BatchProto.ColumnOrBuilder> 
          getKeysOrBuilderList();
      /**
       * <code>repeated .com.alibaba.otter.node.etl.model.protobuf.Column keys = 6;</code>
       *
       * <pre>
       **变更后的主键，可能是复合主键*
       * </pre>
       */
      com.alibaba.otter.node.etl.model.protobuf.BatchProto.ColumnOrBuilder getKeysOrBuilder(
          int index);
  
      /**
       * <code>repeated .com.alibaba.otter.node.etl.model.protobuf.Column columns = 7;</code>
       *
       * <pre>
       **变更数据的每列变更信息,不包含主键*
       * </pre>
       */
      java.util.List<com.alibaba.otter.node.etl.model.protobuf.BatchProto.Column> 
          getColumnsList();
      /**
       * <code>repeated .com.alibaba.otter.node.etl.model.protobuf.Column columns = 7;</code>
       *
       * <pre>
       **变更数据的每列变更信息,不包含主键*
       * </pre>
       */
      com.alibaba.otter.node.etl.model.protobuf.BatchProto.Column getColumns(int index);
      /**
       * <code>repeated .com.alibaba.otter.node.etl.model.protobuf.Column columns = 7;</code>
       *
       * <pre>
       **变更数据的每列变更信息,不包含主键*
       * </pre>
       */
      int getColumnsCount();
      /**
       * <code>repeated .com.alibaba.otter.node.etl.model.protobuf.Column columns = 7;</code>
       *
       * <pre>
       **变更数据的每列变更信息,不包含主键*
       * </pre>
       */
      java.util.List<? extends com.alibaba.otter.node.etl.model.protobuf.BatchProto.ColumnOrBuilder> 
          getColumnsOrBuilderList();
      /**
       * <code>repeated .com.alibaba.otter.node.etl.model.protobuf.Column columns = 7;</code>
       *
       * <pre>
       **变更数据的每列变更信息,不包含主键*
       * </pre>
       */
      com.alibaba.otter.node.etl.model.protobuf.BatchProto.ColumnOrBuilder getColumnsOrBuilder(
          int index);
  
      /**
       * <code>optional int64 executeTime = 8;</code>
       *
       * <pre>
       **变更数据的业务时间*
       * </pre>
       */
      boolean hasExecuteTime();
      /**
       * <code>optional int64 executeTime = 8;</code>
       *
       * <pre>
       **变更数据的业务时间*
       * </pre>
       */
      long getExecuteTime();
  
      /**
       * <code>optional int64 pairId = 9;</code>
       *
       * <pre>
       **映射规则id*
       * </pre>
       */
      boolean hasPairId();
      /**
       * <code>optional int64 pairId = 9;</code>
       *
       * <pre>
       **映射规则id*
       * </pre>
       */
      long getPairId();
  
      /**
       * <code>optional string syncMode = 10;</code>
       *
       * <pre>
       **同步模式(R/F)*
       * </pre>
       */
      boolean hasSyncMode();
      /**
       * <code>optional string syncMode = 10;</code>
       *
       * <pre>
       **同步模式(R/F)*
       * </pre>
       */
      java.lang.String getSyncMode();
      /**
       * <code>optional string syncMode = 10;</code>
       *
       * <pre>
       **同步模式(R/F)*
       * </pre>
       */
      com.google.protobuf.ByteString
          getSyncModeBytes();
  
      /**
       * <code>optional string syncConsistency = 11;</code>
       *
       * <pre>
       **同步一致性(B/S/M) *
       * </pre>
       */
      boolean hasSyncConsistency();
      /**
       * <code>optional string syncConsistency = 11;</code>
       *
       * <pre>
       **同步一致性(B/S/M) *
       * </pre>
       */
      java.lang.String getSyncConsistency();
      /**
       * <code>optional string syncConsistency = 11;</code>
       *
       * <pre>
       **同步一致性(B/S/M) *
       * </pre>
       */
      com.google.protobuf.ByteString
          getSyncConsistencyBytes();
  
      /**
       * <code>optional int64 size = 12;</code>
       *
       * <pre>
       ** eventsize *
       * </pre>
       */
      boolean hasSize();
      /**
       * <code>optional int64 size = 12;</code>
       *
       * <pre>
       ** eventsize *
       * </pre>
       */
      long getSize();
  
      /**
       * <code>optional bool remedy = 13;</code>
       *
       * <pre>
       ** isRemedy *
       * </pre>
       */
      boolean hasRemedy();
      /**
       * <code>optional bool remedy = 13;</code>
       *
       * <pre>
       ** isRemedy *
       * </pre>
       */
      boolean getRemedy();
  
      /**
       * <code>optional string sql = 14;</code>
       *
       * <pre>
       ** dml/ddl sql *
       * </pre>
       */
      boolean hasSql();
      /**
       * <code>optional string sql = 14;</code>
       *
       * <pre>
       ** dml/ddl sql *
       * </pre>
       */
      java.lang.String getSql();
      /**
       * <code>optional string sql = 14;</code>
       *
       * <pre>
       ** dml/ddl sql *
       * </pre>
       */
      com.google.protobuf.ByteString
          getSqlBytes();
  
      /**
       * <code>optional string ddlSchemaName = 15;</code>
       *
       * <pre>
       ** current ddl schemaName *
       * </pre>
       */
      boolean hasDdlSchemaName();
      /**
       * <code>optional string ddlSchemaName = 15;</code>
       *
       * <pre>
       ** current ddl schemaName *
       * </pre>
       */
      java.lang.String getDdlSchemaName();
      /**
       * <code>optional string ddlSchemaName = 15;</code>
       *
       * <pre>
       ** current ddl schemaName *
       * </pre>
       */
      com.google.protobuf.ByteString
          getDdlSchemaNameBytes();
  
      /**
       * <code>optional string hint = 16;</code>
       *
       * <pre>
       ** dml/ddl sql *
       * </pre>
       */
      boolean hasHint();
      /**
       * <code>optional string hint = 16;</code>
       *
       * <pre>
       ** dml/ddl sql *
       * </pre>
       */
      java.lang.String getHint();
      /**
       * <code>optional string hint = 16;</code>
       *
       * <pre>
       ** dml/ddl sql *
       * </pre>
       */
      com.google.protobuf.ByteString
          getHintBytes();
  
      /**
       * <code>optional bool withoutSchema = 17;</code>
       *
       * <pre>
       ** without schema *
       * </pre>
       */
      boolean hasWithoutSchema();
      /**
       * <code>optional bool withoutSchema = 17;</code>
       *
       * <pre>
       ** without schema *
       * </pre>
       */
      boolean getWithoutSchema();
    }
    /**
     * Protobuf type {@code com.alibaba.otter.node.etl.model.protobuf.RowData}
     *
     * <pre>
     **数据*
     * </pre>
     */
    public static final class RowData extends
        com.google.protobuf.GeneratedMessage implements
        // @@protoc_insertion_point(message_implements:com.alibaba.otter.node.etl.model.protobuf.RowData)
        RowDataOrBuilder {
      // Use RowData.newBuilder() to construct.
      private RowData(com.google.protobuf.GeneratedMessage.Builder<?> builder) {
        super(builder);
        this.unknownFields = builder.getUnknownFields();
      }
      private RowData(boolean noInit) { this.unknownFields = com.google.protobuf.UnknownFieldSet.getDefaultInstance(); }
  
      private static final RowData defaultInstance;
      public static RowData getDefaultInstance() {
        return defaultInstance;
      }
  
      public RowData getDefaultInstanceForType() {
        return defaultInstance;
      }
  
      private final com.google.protobuf.UnknownFieldSet unknownFields;
      @java.lang.Override
      public final com.google.protobuf.UnknownFieldSet
          getUnknownFields() {
        return this.unknownFields;
      }
      private RowData(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws com.google.protobuf.InvalidProtocolBufferException {
        initFields();
        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;
              default: {
                if (!parseUnknownField(input, unknownFields,
                                       extensionRegistry, tag)) {
                  done = true;
                }
                break;
              }
              case 8: {
                bitField0_ |= 0x00000001;
                tableId_ = input.readInt64();
                break;
              }
              case 18: {
                com.google.protobuf.ByteString bs = input.readBytes();
                bitField0_ |= 0x00000002;
                schemaName_ = bs;
                break;
              }
              case 26: {
                com.google.protobuf.ByteString bs = input.readBytes();
                bitField0_ |= 0x00000004;
                tableName_ = bs;
                break;
              }
              case 34: {
                com.google.protobuf.ByteString bs = input.readBytes();
                bitField0_ |= 0x00000008;
                eventType_ = bs;
                break;
              }
              case 42: {
                if (!((mutable_bitField0_ & 0x00000010) == 0x00000010)) {
                  oldKeys_ = new java.util.ArrayList<com.alibaba.otter.node.etl.model.protobuf.BatchProto.Column>();
                  mutable_bitField0_ |= 0x00000010;
                }
                oldKeys_.add(input.readMessage(com.alibaba.otter.node.etl.model.protobuf.BatchProto.Column.PARSER, extensionRegistry));
                break;
              }
              case 50: {
                if (!((mutable_bitField0_ & 0x00000020) == 0x00000020)) {
                  keys_ = new java.util.ArrayList<com.alibaba.otter.node.etl.model.protobuf.BatchProto.Column>();
                  mutable_bitField0_ |= 0x00000020;
                }
                keys_.add(input.readMessage(com.alibaba.otter.node.etl.model.protobuf.BatchProto.Column.PARSER, extensionRegistry));
                break;
              }
              case 58: {
                if (!((mutable_bitField0_ & 0x00000040) == 0x00000040)) {
                  columns_ = new java.util.ArrayList<com.alibaba.otter.node.etl.model.protobuf.BatchProto.Column>();
                  mutable_bitField0_ |= 0x00000040;
                }
                columns_.add(input.readMessage(com.alibaba.otter.node.etl.model.protobuf.BatchProto.Column.PARSER, extensionRegistry));
                break;
              }
              case 64: {
                bitField0_ |= 0x00000010;
                executeTime_ = input.readInt64();
                break;
              }
              case 72: {
                bitField0_ |= 0x00000020;
                pairId_ = input.readInt64();
                break;
              }
              case 82: {
                com.google.protobuf.ByteString bs = input.readBytes();
                bitField0_ |= 0x00000040;
                syncMode_ = bs;
                break;
              }
              case 90: {
                com.google.protobuf.ByteString bs = input.readBytes();
                bitField0_ |= 0x00000080;
                syncConsistency_ = bs;
                break;
              }
              case 96: {
                bitField0_ |= 0x00000100;
                size_ = input.readInt64();
                break;
              }
              case 104: {
                bitField0_ |= 0x00000200;
                remedy_ = input.readBool();
                break;
              }
              case 114: {
                com.google.protobuf.ByteString bs = input.readBytes();
                bitField0_ |= 0x00000400;
                sql_ = bs;
                break;
              }
              case 122: {
                com.google.protobuf.ByteString bs = input.readBytes();
                bitField0_ |= 0x00000800;
                ddlSchemaName_ = bs;
                break;
              }
              case 130: {
                com.google.protobuf.ByteString bs = input.readBytes();
                bitField0_ |= 0x00001000;
                hint_ = bs;
                break;
              }
              case 136: {
                bitField0_ |= 0x00002000;
                withoutSchema_ = input.readBool();
                break;
              }
            }
          }
        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
          throw e.setUnfinishedMessage(this);
        } catch (java.io.IOException e) {
          throw new com.google.protobuf.InvalidProtocolBufferException(
              e.getMessage()).setUnfinishedMessage(this);
        } finally {
          if (((mutable_bitField0_ & 0x00000010) == 0x00000010)) {
            oldKeys_ = java.util.Collections.unmodifiableList(oldKeys_);
          }
          if (((mutable_bitField0_ & 0x00000020) == 0x00000020)) {
            keys_ = java.util.Collections.unmodifiableList(keys_);
          }
          if (((mutable_bitField0_ & 0x00000040) == 0x00000040)) {
            columns_ = java.util.Collections.unmodifiableList(columns_);
          }
          this.unknownFields = unknownFields.build();
          makeExtensionsImmutable();
        }
      }
      public static final com.google.protobuf.Descriptors.Descriptor
          getDescriptor() {
        return com.alibaba.otter.node.etl.model.protobuf.BatchProto.internal_static_com_alibaba_otter_node_etl_model_protobuf_RowData_descriptor;
      }
  
      protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return com.alibaba.otter.node.etl.model.protobuf.BatchProto.internal_static_com_alibaba_otter_node_etl_model_protobuf_RowData_fieldAccessorTable
            .ensureFieldAccessorsInitialized(
                com.alibaba.otter.node.etl.model.protobuf.BatchProto.RowData.class, com.alibaba.otter.node.etl.model.protobuf.BatchProto.RowData.Builder.class);
      }
  
      public static com.google.protobuf.Parser<RowData> PARSER =
          new com.google.protobuf.AbstractParser<RowData>() {
        public RowData parsePartialFrom(
            com.google.protobuf.CodedInputStream input,
            com.google.protobuf.ExtensionRegistryLite extensionRegistry)
            throws com.google.protobuf.InvalidProtocolBufferException {
          return new RowData(input, extensionRegistry);
        }
      };
  
      @java.lang.Override
      public com.google.protobuf.Parser<RowData> getParserForType() {
        return PARSER;
      }
  
      private int bitField0_;
      public static final int TABLEID_FIELD_NUMBER = 1;
      private long tableId_;
      /**
       * <code>optional int64 tableId = 1;</code>
       */
      public boolean hasTableId() {
        return ((bitField0_ & 0x00000001) == 0x00000001);
      }
      /**
       * <code>optional int64 tableId = 1;</code>
       */
      public long getTableId() {
        return tableId_;
      }
  
      public static final int SCHEMANAME_FIELD_NUMBER = 2;
      private java.lang.Object schemaName_;
      /**
       * <code>optional string schemaName = 2;</code>
       */
      public boolean hasSchemaName() {
        return ((bitField0_ & 0x00000002) == 0x00000002);
      }
      /**
       * <code>optional string schemaName = 2;</code>
       */
      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();
          if (bs.isValidUtf8()) {
            schemaName_ = s;
          }
          return s;
        }
      }
      /**
       * <code>optional string schemaName = 2;</code>
       */
      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 TABLENAME_FIELD_NUMBER = 3;
      private java.lang.Object tableName_;
      /**
       * <code>optional string tableName = 3;</code>
       */
      public boolean hasTableName() {
        return ((bitField0_ & 0x00000004) == 0x00000004);
      }
      /**
       * <code>optional string tableName = 3;</code>
       */
      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();
          if (bs.isValidUtf8()) {
            tableName_ = s;
          }
          return s;
        }
      }
      /**
       * <code>optional string tableName = 3;</code>
       */
      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 EVENTTYPE_FIELD_NUMBER = 4;
      private java.lang.Object eventType_;
      /**
       * <code>optional string eventType = 4;</code>
       *
       * <pre>
       **变更数据的操作类型(I/U/D)*
       * </pre>
       */
      public boolean hasEventType() {
        return ((bitField0_ & 0x00000008) == 0x00000008);
      }
      /**
       * <code>optional string eventType = 4;</code>
       *
       * <pre>
       **变更数据的操作类型(I/U/D)*
       * </pre>
       */
      public java.lang.String getEventType() {
        java.lang.Object ref = eventType_;
        if (ref instanceof java.lang.String) {
          return (java.lang.String) ref;
        } else {
          com.google.protobuf.ByteString bs = 
              (com.google.protobuf.ByteString) ref;
          java.lang.String s = bs.toStringUtf8();
          if (bs.isValidUtf8()) {
            eventType_ = s;
          }
          return s;
        }
      }
      /**
       * <code>optional string eventType = 4;</code>
       *
       * <pre>
       **变更数据的操作类型(I/U/D)*
       * </pre>
       */
      public com.google.protobuf.ByteString
          getEventTypeBytes() {
        java.lang.Object ref = eventType_;
        if (ref instanceof java.lang.String) {
          com.google.protobuf.ByteString b = 
              com.google.protobuf.ByteString.copyFromUtf8(
                  (java.lang.String) ref);
          eventType_ = b;
          return b;
        } else {
          return (com.google.protobuf.ByteString) ref;
        }
      }
  
      public static final int OLDKEYS_FIELD_NUMBER = 5;
      private java.util.List<com.alibaba.otter.node.etl.model.protobuf.BatchProto.Column> oldKeys_;
      /**
       * <code>repeated .com.alibaba.otter.node.etl.model.protobuf.Column oldKeys = 5;</code>
       *
       * <pre>
       **变更前的主键，可能是复合主键*
       * </pre>
       */
      public java.util.List<com.alibaba.otter.node.etl.model.protobuf.BatchProto.Column> getOldKeysList() {
        return oldKeys_;
      }
      /**
       * <code>repeated .com.alibaba.otter.node.etl.model.protobuf.Column oldKeys = 5;</code>
       *
       * <pre>
       **变更前的主键，可能是复合主键*
       * </pre>
       */
      public java.util.List<? extends com.alibaba.otter.node.etl.model.protobuf.BatchProto.ColumnOrBuilder> 
          getOldKeysOrBuilderList() {
        return oldKeys_;
      }
      /**
       * <code>repeated .com.alibaba.otter.node.etl.model.protobuf.Column oldKeys = 5;</code>
       *
       * <pre>
       **变更前的主键，可能是复合主键*
       * </pre>
       */
      public int getOldKeysCount() {
        return oldKeys_.size();
      }
      /**
       * <code>repeated .com.alibaba.otter.node.etl.model.protobuf.Column oldKeys = 5;</code>
       *
       * <pre>
       **变更前的主键，可能是复合主键*
       * </pre>
       */
      public com.alibaba.otter.node.etl.model.protobuf.BatchProto.Column getOldKeys(int index) {
        return oldKeys_.get(index);
      }
      /**
       * <code>repeated .com.alibaba.otter.node.etl.model.protobuf.Column oldKeys = 5;</code>
       *
       * <pre>
       **变更前的主键，可能是复合主键*
       * </pre>
       */
      public com.alibaba.otter.node.etl.model.protobuf.BatchProto.ColumnOrBuilder getOldKeysOrBuilder(
          int index) {
        return oldKeys_.get(index);
      }
  
      public static final int KEYS_FIELD_NUMBER = 6;
      private java.util.List<com.alibaba.otter.node.etl.model.protobuf.BatchProto.Column> keys_;
      /**
       * <code>repeated .com.alibaba.otter.node.etl.model.protobuf.Column keys = 6;</code>
       *
       * <pre>
       **变更后的主键，可能是复合主键*
       * </pre>
       */
      public java.util.List<com.alibaba.otter.node.etl.model.protobuf.BatchProto.Column> getKeysList() {
        return keys_;
      }
      /**
       * <code>repeated .com.alibaba.otter.node.etl.model.protobuf.Column keys = 6;</code>
       *
       * <pre>
       **变更后的主键，可能是复合主键*
       * </pre>
       */
      public java.util.List<? extends com.alibaba.otter.node.etl.model.protobuf.BatchProto.ColumnOrBuilder> 
          getKeysOrBuilderList() {
        return keys_;
      }
      /**
       * <code>repeated .com.alibaba.otter.node.etl.model.protobuf.Column keys = 6;</code>
       *
       * <pre>
       **变更后的主键，可能是复合主键*
       * </pre>
       */
      public int getKeysCount() {
        return keys_.size();
      }
      /**
       * <code>repeated .com.alibaba.otter.node.etl.model.protobuf.Column keys = 6;</code>
       *
       * <pre>
       **变更后的主键，可能是复合主键*
       * </pre>
       */
      public com.alibaba.otter.node.etl.model.protobuf.BatchProto.Column getKeys(int index) {
        return keys_.get(index);
      }
      /**
       * <code>repeated .com.alibaba.otter.node.etl.model.protobuf.Column keys = 6;</code>
       *
       * <pre>
       **变更后的主键，可能是复合主键*
       * </pre>
       */
      public com.alibaba.otter.node.etl.model.protobuf.BatchProto.ColumnOrBuilder getKeysOrBuilder(
          int index) {
        return keys_.get(index);
      }
  
      public static final int COLUMNS_FIELD_NUMBER = 7;
      private java.util.List<com.alibaba.otter.node.etl.model.protobuf.BatchProto.Column> columns_;
      /**
       * <code>repeated .com.alibaba.otter.node.etl.model.protobuf.Column columns = 7;</code>
       *
       * <pre>
       **变更数据的每列变更信息,不包含主键*
       * </pre>
       */
      public java.util.List<com.alibaba.otter.node.etl.model.protobuf.BatchProto.Column> getColumnsList() {
        return columns_;
      }
      /**
       * <code>repeated .com.alibaba.otter.node.etl.model.protobuf.Column columns = 7;</code>
       *
       * <pre>
       **变更数据的每列变更信息,不包含主键*
       * </pre>
       */
      public java.util.List<? extends com.alibaba.otter.node.etl.model.protobuf.BatchProto.ColumnOrBuilder> 
          getColumnsOrBuilderList() {
        return columns_;
      }
      /**
       * <code>repeated .com.alibaba.otter.node.etl.model.protobuf.Column columns = 7;</code>
       *
       * <pre>
       **变更数据的每列变更信息,不包含主键*
       * </pre>
       */
      public int getColumnsCount() {
        return columns_.size();
      }
      /**
       * <code>repeated .com.alibaba.otter.node.etl.model.protobuf.Column columns = 7;</code>
       *
       * <pre>
       **变更数据的每列变更信息,不包含主键*
       * </pre>
       */
      public com.alibaba.otter.node.etl.model.protobuf.BatchProto.Column getColumns(int index) {
        return columns_.get(index);
      }
      /**
       * <code>repeated .com.alibaba.otter.node.etl.model.protobuf.Column columns = 7;</code>
       *
       * <pre>
       **变更数据的每列变更信息,不包含主键*
       * </pre>
       */
      public com.alibaba.otter.node.etl.model.protobuf.BatchProto.ColumnOrBuilder getColumnsOrBuilder(
          int index) {
        return columns_.get(index);
      }
  
      public static final int EXECUTETIME_FIELD_NUMBER = 8;
      private long executeTime_;
      /**
       * <code>optional int64 executeTime = 8;</code>
       *
       * <pre>
       **变更数据的业务时间*
       * </pre>
       */
      public boolean hasExecuteTime() {
        return ((bitField0_ & 0x00000010) == 0x00000010);
      }
      /**
       * <code>optional int64 executeTime = 8;</code>
       *
       * <pre>
       **变更数据的业务时间*
       * </pre>
       */
      public long getExecuteTime() {
        return executeTime_;
      }
  
      public static final int PAIRID_FIELD_NUMBER = 9;
      private long pairId_;
      /**
       * <code>optional int64 pairId = 9;</code>
       *
       * <pre>
       **映射规则id*
       * </pre>
       */
      public boolean hasPairId() {
        return ((bitField0_ & 0x00000020) == 0x00000020);
      }
      /**
       * <code>optional int64 pairId = 9;</code>
       *
       * <pre>
       **映射规则id*
       * </pre>
       */
      public long getPairId() {
        return pairId_;
      }
  
      public static final int SYNCMODE_FIELD_NUMBER = 10;
      private java.lang.Object syncMode_;
      /**
       * <code>optional string syncMode = 10;</code>
       *
       * <pre>
       **同步模式(R/F)*
       * </pre>
       */
      public boolean hasSyncMode() {
        return ((bitField0_ & 0x00000040) == 0x00000040);
      }
      /**
       * <code>optional string syncMode = 10;</code>
       *
       * <pre>
       **同步模式(R/F)*
       * </pre>
       */
      public java.lang.String getSyncMode() {
        java.lang.Object ref = syncMode_;
        if (ref instanceof java.lang.String) {
          return (java.lang.String) ref;
        } else {
          com.google.protobuf.ByteString bs = 
              (com.google.protobuf.ByteString) ref;
          java.lang.String s = bs.toStringUtf8();
          if (bs.isValidUtf8()) {
            syncMode_ = s;
          }
          return s;
        }
      }
      /**
       * <code>optional string syncMode = 10;</code>
       *
       * <pre>
       **同步模式(R/F)*
       * </pre>
       */
      public com.google.protobuf.ByteString
          getSyncModeBytes() {
        java.lang.Object ref = syncMode_;
        if (ref instanceof java.lang.String) {
          com.google.protobuf.ByteString b = 
              com.google.protobuf.ByteString.copyFromUtf8(
                  (java.lang.String) ref);
          syncMode_ = b;
          return b;
        } else {
          return (com.google.protobuf.ByteString) ref;
        }
      }
  
      public static final int SYNCCONSISTENCY_FIELD_NUMBER = 11;
      private java.lang.Object syncConsistency_;
      /**
       * <code>optional string syncConsistency = 11;</code>
       *
       * <pre>
       **同步一致性(B/S/M) *
       * </pre>
       */
      public boolean hasSyncConsistency() {
        return ((bitField0_ & 0x00000080) == 0x00000080);
      }
      /**
       * <code>optional string syncConsistency = 11;</code>
       *
       * <pre>
       **同步一致性(B/S/M) *
       * </pre>
       */
      public java.lang.String getSyncConsistency() {
        java.lang.Object ref = syncConsistency_;
        if (ref instanceof java.lang.String) {
          return (java.lang.String) ref;
        } else {
          com.google.protobuf.ByteString bs = 
              (com.google.protobuf.ByteString) ref;
          java.lang.String s = bs.toStringUtf8();
          if (bs.isValidUtf8()) {
            syncConsistency_ = s;
          }
          return s;
        }
      }
      /**
       * <code>optional string syncConsistency = 11;</code>
       *
       * <pre>
       **同步一致性(B/S/M) *
       * </pre>
       */
      public com.google.protobuf.ByteString
          getSyncConsistencyBytes() {
        java.lang.Object ref = syncConsistency_;
        if (ref instanceof java.lang.String) {
          com.google.protobuf.ByteString b = 
              com.google.protobuf.ByteString.copyFromUtf8(
                  (java.lang.String) ref);
          syncConsistency_ = b;
          return b;
        } else {
          return (com.google.protobuf.ByteString) ref;
        }
      }
  
      public static final int SIZE_FIELD_NUMBER = 12;
      private long size_;
      /**
       * <code>optional int64 size = 12;</code>
       *
       * <pre>
       ** eventsize *
       * </pre>
       */
      public boolean hasSize() {
        return ((bitField0_ & 0x00000100) == 0x00000100);
      }
      /**
       * <code>optional int64 size = 12;</code>
       *
       * <pre>
       ** eventsize *
       * </pre>
       */
      public long getSize() {
        return size_;
      }
  
      public static final int REMEDY_FIELD_NUMBER = 13;
      private boolean remedy_;
      /**
       * <code>optional bool remedy = 13;</code>
       *
       * <pre>
       ** isRemedy *
       * </pre>
       */
      public boolean hasRemedy() {
        return ((bitField0_ & 0x00000200) == 0x00000200);
      }
      /**
       * <code>optional bool remedy = 13;</code>
       *
       * <pre>
       ** isRemedy *
       * </pre>
       */
      public boolean getRemedy() {
        return remedy_;
      }
  
      public static final int SQL_FIELD_NUMBER = 14;
      private java.lang.Object sql_;
      /**
       * <code>optional string sql = 14;</code>
       *
       * <pre>
       ** dml/ddl sql *
       * </pre>
       */
      public boolean hasSql() {
        return ((bitField0_ & 0x00000400) == 0x00000400);
      }
      /**
       * <code>optional string sql = 14;</code>
       *
       * <pre>
       ** dml/ddl sql *
       * </pre>
       */
      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();
          if (bs.isValidUtf8()) {
            sql_ = s;
          }
          return s;
        }
      }
      /**
       * <code>optional string sql = 14;</code>
       *
       * <pre>
       ** dml/ddl sql *
       * </pre>
       */
      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 DDLSCHEMANAME_FIELD_NUMBER = 15;
      private java.lang.Object ddlSchemaName_;
      /**
       * <code>optional string ddlSchemaName = 15;</code>
       *
       * <pre>
       ** current ddl schemaName *
       * </pre>
       */
      public boolean hasDdlSchemaName() {
        return ((bitField0_ & 0x00000800) == 0x00000800);
      }
      /**
       * <code>optional string ddlSchemaName = 15;</code>
       *
       * <pre>
       ** current ddl schemaName *
       * </pre>
       */
      public java.lang.String getDdlSchemaName() {
        java.lang.Object ref = ddlSchemaName_;
        if (ref instanceof java.lang.String) {
          return (java.lang.String) ref;
        } else {
          com.google.protobuf.ByteString bs = 
              (com.google.protobuf.ByteString) ref;
          java.lang.String s = bs.toStringUtf8();
          if (bs.isValidUtf8()) {
            ddlSchemaName_ = s;
          }
          return s;
        }
      }
      /**
       * <code>optional string ddlSchemaName = 15;</code>
       *
       * <pre>
       ** current ddl schemaName *
       * </pre>
       */
      public com.google.protobuf.ByteString
          getDdlSchemaNameBytes() {
        java.lang.Object ref = ddlSchemaName_;
        if (ref instanceof java.lang.String) {
          com.google.protobuf.ByteString b = 
              com.google.protobuf.ByteString.copyFromUtf8(
                  (java.lang.String) ref);
          ddlSchemaName_ = b;
          return b;
        } else {
          return (com.google.protobuf.ByteString) ref;
        }
      }
  
      public static final int HINT_FIELD_NUMBER = 16;
      private java.lang.Object hint_;
      /**
       * <code>optional string hint = 16;</code>
       *
       * <pre>
       ** dml/ddl sql *
       * </pre>
       */
      public boolean hasHint() {
        return ((bitField0_ & 0x00001000) == 0x00001000);
      }
      /**
       * <code>optional string hint = 16;</code>
       *
       * <pre>
       ** dml/ddl sql *
       * </pre>
       */
      public java.lang.String getHint() {
        java.lang.Object ref = hint_;
        if (ref instanceof java.lang.String) {
          return (java.lang.String) ref;
        } else {
          com.google.protobuf.ByteString bs = 
              (com.google.protobuf.ByteString) ref;
          java.lang.String s = bs.toStringUtf8();
          if (bs.isValidUtf8()) {
            hint_ = s;
          }
          return s;
        }
      }
      /**
       * <code>optional string hint = 16;</code>
       *
       * <pre>
       ** dml/ddl sql *
       * </pre>
       */
      public com.google.protobuf.ByteString
          getHintBytes() {
        java.lang.Object ref = hint_;
        if (ref instanceof java.lang.String) {
          com.google.protobuf.ByteString b = 
              com.google.protobuf.ByteString.copyFromUtf8(
                  (java.lang.String) ref);
          hint_ = b;
          return b;
        } else {
          return (com.google.protobuf.ByteString) ref;
        }
      }
  
      public static final int WITHOUTSCHEMA_FIELD_NUMBER = 17;
      private boolean withoutSchema_;
      /**
       * <code>optional bool withoutSchema = 17;</code>
       *
       * <pre>
       ** without schema *
       * </pre>
       */
      public boolean hasWithoutSchema() {
        return ((bitField0_ & 0x00002000) == 0x00002000);
      }
      /**
       * <code>optional bool withoutSchema = 17;</code>
       *
       * <pre>
       ** without schema *
       * </pre>
       */
      public boolean getWithoutSchema() {
        return withoutSchema_;
      }
  
      private void initFields() {
        tableId_ = 0L;
        schemaName_ = "";
        tableName_ = "";
        eventType_ = "";
        oldKeys_ = java.util.Collections.emptyList();
        keys_ = java.util.Collections.emptyList();
        columns_ = java.util.Collections.emptyList();
        executeTime_ = 0L;
        pairId_ = 0L;
        syncMode_ = "";
        syncConsistency_ = "";
        size_ = 0L;
        remedy_ = false;
        sql_ = "";
        ddlSchemaName_ = "";
        hint_ = "";
        withoutSchema_ = false;
      }
      private byte memoizedIsInitialized = -1;
      public final boolean isInitialized() {
        byte isInitialized = memoizedIsInitialized;
        if (isInitialized == 1) return true;
        if (isInitialized == 0) return false;
  
        memoizedIsInitialized = 1;
        return true;
      }
  
      public void writeTo(com.google.protobuf.CodedOutputStream output)
                          throws java.io.IOException {
        getSerializedSize();
        if (((bitField0_ & 0x00000001) == 0x00000001)) {
          output.writeInt64(1, tableId_);
        }
        if (((bitField0_ & 0x00000002) == 0x00000002)) {
          output.writeBytes(2, getSchemaNameBytes());
        }
        if (((bitField0_ & 0x00000004) == 0x00000004)) {
          output.writeBytes(3, getTableNameBytes());
        }
        if (((bitField0_ & 0x00000008) == 0x00000008)) {
          output.writeBytes(4, getEventTypeBytes());
        }
        for (int i = 0; i < oldKeys_.size(); i++) {
          output.writeMessage(5, oldKeys_.get(i));
        }
        for (int i = 0; i < keys_.size(); i++) {
          output.writeMessage(6, keys_.get(i));
        }
        for (int i = 0; i < columns_.size(); i++) {
          output.writeMessage(7, columns_.get(i));
        }
        if (((bitField0_ & 0x00000010) == 0x00000010)) {
          output.writeInt64(8, executeTime_);
        }
        if (((bitField0_ & 0x00000020) == 0x00000020)) {
          output.writeInt64(9, pairId_);
        }
        if (((bitField0_ & 0x00000040) == 0x00000040)) {
          output.writeBytes(10, getSyncModeBytes());
        }
        if (((bitField0_ & 0x00000080) == 0x00000080)) {
          output.writeBytes(11, getSyncConsistencyBytes());
        }
        if (((bitField0_ & 0x00000100) == 0x00000100)) {
          output.writeInt64(12, size_);
        }
        if (((bitField0_ & 0x00000200) == 0x00000200)) {
          output.writeBool(13, remedy_);
        }
        if (((bitField0_ & 0x00000400) == 0x00000400)) {
          output.writeBytes(14, getSqlBytes());
        }
        if (((bitField0_ & 0x00000800) == 0x00000800)) {
          output.writeBytes(15, getDdlSchemaNameBytes());
        }
        if (((bitField0_ & 0x00001000) == 0x00001000)) {
          output.writeBytes(16, getHintBytes());
        }
        if (((bitField0_ & 0x00002000) == 0x00002000)) {
          output.writeBool(17, withoutSchema_);
        }
        getUnknownFields().writeTo(output);
      }
  
      private int memoizedSerializedSize = -1;
      public int getSerializedSize() {
        int size = memoizedSerializedSize;
        if (size != -1) return size;
  
        size = 0;
        if (((bitField0_ & 0x00000001) == 0x00000001)) {
          size += com.google.protobuf.CodedOutputStream
            .computeInt64Size(1, tableId_);
        }
        if (((bitField0_ & 0x00000002) == 0x00000002)) {
          size += com.google.protobuf.CodedOutputStream
            .computeBytesSize(2, getSchemaNameBytes());
        }
        if (((bitField0_ & 0x00000004) == 0x00000004)) {
          size += com.google.protobuf.CodedOutputStream
            .computeBytesSize(3, getTableNameBytes());
        }
        if (((bitField0_ & 0x00000008) == 0x00000008)) {
          size += com.google.protobuf.CodedOutputStream
            .computeBytesSize(4, getEventTypeBytes());
        }
        for (int i = 0; i < oldKeys_.size(); i++) {
          size += com.google.protobuf.CodedOutputStream
            .computeMessageSize(5, oldKeys_.get(i));
        }
        for (int i = 0; i < keys_.size(); i++) {
          size += com.google.protobuf.CodedOutputStream
            .computeMessageSize(6, keys_.get(i));
        }
        for (int i = 0; i < columns_.size(); i++) {
          size += com.google.protobuf.CodedOutputStream
            .computeMessageSize(7, columns_.get(i));
        }
        if (((bitField0_ & 0x00000010) == 0x00000010)) {
          size += com.google.protobuf.CodedOutputStream
            .computeInt64Size(8, executeTime_);
        }
        if (((bitField0_ & 0x00000020) == 0x00000020)) {
          size += com.google.protobuf.CodedOutputStream
            .computeInt64Size(9, pairId_);
        }
        if (((bitField0_ & 0x00000040) == 0x00000040)) {
          size += com.google.protobuf.CodedOutputStream
            .computeBytesSize(10, getSyncModeBytes());
        }
        if (((bitField0_ & 0x00000080) == 0x00000080)) {
          size += com.google.protobuf.CodedOutputStream
            .computeBytesSize(11, getSyncConsistencyBytes());
        }
        if (((bitField0_ & 0x00000100) == 0x00000100)) {
          size += com.google.protobuf.CodedOutputStream
            .computeInt64Size(12, size_);
        }
        if (((bitField0_ & 0x00000200) == 0x00000200)) {
          size += com.google.protobuf.CodedOutputStream
            .computeBoolSize(13, remedy_);
        }
        if (((bitField0_ & 0x00000400) == 0x00000400)) {
          size += com.google.protobuf.CodedOutputStream
            .computeBytesSize(14, getSqlBytes());
        }
        if (((bitField0_ & 0x00000800) == 0x00000800)) {
          size += com.google.protobuf.CodedOutputStream
            .computeBytesSize(15, getDdlSchemaNameBytes());
        }
        if (((bitField0_ & 0x00001000) == 0x00001000)) {
          size += com.google.protobuf.CodedOutputStream
            .computeBytesSize(16, getHintBytes());
        }
        if (((bitField0_ & 0x00002000) == 0x00002000)) {
          size += com.google.protobuf.CodedOutputStream
            .computeBoolSize(17, withoutSchema_);
        }
        size += getUnknownFields().getSerializedSize();
        memoizedSerializedSize = size;
        return size;
      }
  
      private static final long serialVersionUID = 0L;
      @java.lang.Override
      protected java.lang.Object writeReplace()
          throws java.io.ObjectStreamException {
        return super.writeReplace();
      }
  
      public static com.alibaba.otter.node.etl.model.protobuf.BatchProto.RowData parseFrom(
          com.google.protobuf.ByteString data)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return PARSER.parseFrom(data);
      }
      public static com.alibaba.otter.node.etl.model.protobuf.BatchProto.RowData parseFrom(
          com.google.protobuf.ByteString data,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return PARSER.parseFrom(data, extensionRegistry);
      }
      public static com.alibaba.otter.node.etl.model.protobuf.BatchProto.RowData parseFrom(byte[] data)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return PARSER.parseFrom(data);
      }
      public static com.alibaba.otter.node.etl.model.protobuf.BatchProto.RowData parseFrom(
          byte[] data,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return PARSER.parseFrom(data, extensionRegistry);
      }
      public static com.alibaba.otter.node.etl.model.protobuf.BatchProto.RowData parseFrom(java.io.InputStream input)
          throws java.io.IOException {
        return PARSER.parseFrom(input);
      }
      public static com.alibaba.otter.node.etl.model.protobuf.BatchProto.RowData parseFrom(
          java.io.InputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        return PARSER.parseFrom(input, extensionRegistry);
      }
      public static com.alibaba.otter.node.etl.model.protobuf.BatchProto.RowData parseDelimitedFrom(java.io.InputStream input)
          throws java.io.IOException {
        return PARSER.parseDelimitedFrom(input);
      }
      public static com.alibaba.otter.node.etl.model.protobuf.BatchProto.RowData parseDelimitedFrom(
          java.io.InputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        return PARSER.parseDelimitedFrom(input, extensionRegistry);
      }
      public static com.alibaba.otter.node.etl.model.protobuf.BatchProto.RowData parseFrom(
          com.google.protobuf.CodedInputStream input)
          throws java.io.IOException {
        return PARSER.parseFrom(input);
      }
      public static com.alibaba.otter.node.etl.model.protobuf.BatchProto.RowData parseFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        return PARSER.parseFrom(input, extensionRegistry);
      }
  
      public static Builder newBuilder() { return Builder.create(); }
      public Builder newBuilderForType() { return newBuilder(); }
      public static Builder newBuilder(com.alibaba.otter.node.etl.model.protobuf.BatchProto.RowData prototype) {
        return newBuilder().mergeFrom(prototype);
      }
      public Builder toBuilder() { return newBuilder(this); }
  
      @java.lang.Override
      protected Builder newBuilderForType(
          com.google.protobuf.GeneratedMessage.BuilderParent parent) {
        Builder builder = new Builder(parent);
        return builder;
      }
      /**
       * Protobuf type {@code com.alibaba.otter.node.etl.model.protobuf.RowData}
       *
       * <pre>
       **数据*
       * </pre>
       */
      public static final class Builder extends
          com.google.protobuf.GeneratedMessage.Builder<Builder> implements
          // @@protoc_insertion_point(builder_implements:com.alibaba.otter.node.etl.model.protobuf.RowData)
          com.alibaba.otter.node.etl.model.protobuf.BatchProto.RowDataOrBuilder {
        public static final com.google.protobuf.Descriptors.Descriptor
            getDescriptor() {
          return com.alibaba.otter.node.etl.model.protobuf.BatchProto.internal_static_com_alibaba_otter_node_etl_model_protobuf_RowData_descriptor;
        }
  
        protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
            internalGetFieldAccessorTable() {
          return com.alibaba.otter.node.etl.model.protobuf.BatchProto.internal_static_com_alibaba_otter_node_etl_model_protobuf_RowData_fieldAccessorTable
              .ensureFieldAccessorsInitialized(
                  com.alibaba.otter.node.etl.model.protobuf.BatchProto.RowData.class, com.alibaba.otter.node.etl.model.protobuf.BatchProto.RowData.Builder.class);
        }
  
        // Construct using com.alibaba.otter.node.etl.model.protobuf.BatchProto.RowData.newBuilder()
        private Builder() {
          maybeForceBuilderInitialization();
        }
  
        private Builder(
            com.google.protobuf.GeneratedMessage.BuilderParent parent) {
          super(parent);
          maybeForceBuilderInitialization();
        }
        private void maybeForceBuilderInitialization() {
          if (com.google.protobuf.GeneratedMessage.alwaysUseFieldBuilders) {
            getOldKeysFieldBuilder();
            getKeysFieldBuilder();
            getColumnsFieldBuilder();
          }
        }
        private static Builder create() {
          return new Builder();
        }
  
        public Builder clear() {
          super.clear();
          tableId_ = 0L;
          bitField0_ = (bitField0_ & ~0x00000001);
          schemaName_ = "";
          bitField0_ = (bitField0_ & ~0x00000002);
          tableName_ = "";
          bitField0_ = (bitField0_ & ~0x00000004);
          eventType_ = "";
          bitField0_ = (bitField0_ & ~0x00000008);
          if (oldKeysBuilder_ == null) {
            oldKeys_ = java.util.Collections.emptyList();
            bitField0_ = (bitField0_ & ~0x00000010);
          } else {
            oldKeysBuilder_.clear();
          }
          if (keysBuilder_ == null) {
            keys_ = java.util.Collections.emptyList();
            bitField0_ = (bitField0_ & ~0x00000020);
          } else {
            keysBuilder_.clear();
          }
          if (columnsBuilder_ == null) {
            columns_ = java.util.Collections.emptyList();
            bitField0_ = (bitField0_ & ~0x00000040);
          } else {
            columnsBuilder_.clear();
          }
          executeTime_ = 0L;
          bitField0_ = (bitField0_ & ~0x00000080);
          pairId_ = 0L;
          bitField0_ = (bitField0_ & ~0x00000100);
          syncMode_ = "";
          bitField0_ = (bitField0_ & ~0x00000200);
          syncConsistency_ = "";
          bitField0_ = (bitField0_ & ~0x00000400);
          size_ = 0L;
          bitField0_ = (bitField0_ & ~0x00000800);
          remedy_ = false;
          bitField0_ = (bitField0_ & ~0x00001000);
          sql_ = "";
          bitField0_ = (bitField0_ & ~0x00002000);
          ddlSchemaName_ = "";
          bitField0_ = (bitField0_ & ~0x00004000);
          hint_ = "";
          bitField0_ = (bitField0_ & ~0x00008000);
          withoutSchema_ = false;
          bitField0_ = (bitField0_ & ~0x00010000);
          return this;
        }
  
        public Builder clone() {
          return create().mergeFrom(buildPartial());
        }
  
        public com.google.protobuf.Descriptors.Descriptor
            getDescriptorForType() {
          return com.alibaba.otter.node.etl.model.protobuf.BatchProto.internal_static_com_alibaba_otter_node_etl_model_protobuf_RowData_descriptor;
        }
  
        public com.alibaba.otter.node.etl.model.protobuf.BatchProto.RowData getDefaultInstanceForType() {
          return com.alibaba.otter.node.etl.model.protobuf.BatchProto.RowData.getDefaultInstance();
        }
  
        public com.alibaba.otter.node.etl.model.protobuf.BatchProto.RowData build() {
          com.alibaba.otter.node.etl.model.protobuf.BatchProto.RowData result = buildPartial();
          if (!result.isInitialized()) {
            throw newUninitializedMessageException(result);
          }
          return result;
        }
  
        public com.alibaba.otter.node.etl.model.protobuf.BatchProto.RowData buildPartial() {
          com.alibaba.otter.node.etl.model.protobuf.BatchProto.RowData result = new com.alibaba.otter.node.etl.model.protobuf.BatchProto.RowData(this);
          int from_bitField0_ = bitField0_;
          int to_bitField0_ = 0;
          if (((from_bitField0_ & 0x00000001) == 0x00000001)) {
            to_bitField0_ |= 0x00000001;
          }
          result.tableId_ = tableId_;
          if (((from_bitField0_ & 0x00000002) == 0x00000002)) {
            to_bitField0_ |= 0x00000002;
          }
          result.schemaName_ = schemaName_;
          if (((from_bitField0_ & 0x00000004) == 0x00000004)) {
            to_bitField0_ |= 0x00000004;
          }
          result.tableName_ = tableName_;
          if (((from_bitField0_ & 0x00000008) == 0x00000008)) {
            to_bitField0_ |= 0x00000008;
          }
          result.eventType_ = eventType_;
          if (oldKeysBuilder_ == null) {
            if (((bitField0_ & 0x00000010) == 0x00000010)) {
              oldKeys_ = java.util.Collections.unmodifiableList(oldKeys_);
              bitField0_ = (bitField0_ & ~0x00000010);
            }
            result.oldKeys_ = oldKeys_;
          } else {
            result.oldKeys_ = oldKeysBuilder_.build();
          }
          if (keysBuilder_ == null) {
            if (((bitField0_ & 0x00000020) == 0x00000020)) {
              keys_ = java.util.Collections.unmodifiableList(keys_);
              bitField0_ = (bitField0_ & ~0x00000020);
            }
            result.keys_ = keys_;
          } else {
            result.keys_ = keysBuilder_.build();
          }
          if (columnsBuilder_ == null) {
            if (((bitField0_ & 0x00000040) == 0x00000040)) {
              columns_ = java.util.Collections.unmodifiableList(columns_);
              bitField0_ = (bitField0_ & ~0x00000040);
            }
            result.columns_ = columns_;
          } else {
            result.columns_ = columnsBuilder_.build();
          }
          if (((from_bitField0_ & 0x00000080) == 0x00000080)) {
            to_bitField0_ |= 0x00000010;
          }
          result.executeTime_ = executeTime_;
          if (((from_bitField0_ & 0x00000100) == 0x00000100)) {
            to_bitField0_ |= 0x00000020;
          }
          result.pairId_ = pairId_;
          if (((from_bitField0_ & 0x00000200) == 0x00000200)) {
            to_bitField0_ |= 0x00000040;
          }
          result.syncMode_ = syncMode_;
          if (((from_bitField0_ & 0x00000400) == 0x00000400)) {
            to_bitField0_ |= 0x00000080;
          }
          result.syncConsistency_ = syncConsistency_;
          if (((from_bitField0_ & 0x00000800) == 0x00000800)) {
            to_bitField0_ |= 0x00000100;
          }
          result.size_ = size_;
          if (((from_bitField0_ & 0x00001000) == 0x00001000)) {
            to_bitField0_ |= 0x00000200;
          }
          result.remedy_ = remedy_;
          if (((from_bitField0_ & 0x00002000) == 0x00002000)) {
            to_bitField0_ |= 0x00000400;
          }
          result.sql_ = sql_;
          if (((from_bitField0_ & 0x00004000) == 0x00004000)) {
            to_bitField0_ |= 0x00000800;
          }
          result.ddlSchemaName_ = ddlSchemaName_;
          if (((from_bitField0_ & 0x00008000) == 0x00008000)) {
            to_bitField0_ |= 0x00001000;
          }
          result.hint_ = hint_;
          if (((from_bitField0_ & 0x00010000) == 0x00010000)) {
            to_bitField0_ |= 0x00002000;
          }
          result.withoutSchema_ = withoutSchema_;
          result.bitField0_ = to_bitField0_;
          onBuilt();
          return result;
        }
  
        public Builder mergeFrom(com.google.protobuf.Message other) {
          if (other instanceof com.alibaba.otter.node.etl.model.protobuf.BatchProto.RowData) {
            return mergeFrom((com.alibaba.otter.node.etl.model.protobuf.BatchProto.RowData)other);
          } else {
            super.mergeFrom(other);
            return this;
          }
        }
  
        public Builder mergeFrom(com.alibaba.otter.node.etl.model.protobuf.BatchProto.RowData other) {
          if (other == com.alibaba.otter.node.etl.model.protobuf.BatchProto.RowData.getDefaultInstance()) return this;
          if (other.hasTableId()) {
            setTableId(other.getTableId());
          }
          if (other.hasSchemaName()) {
            bitField0_ |= 0x00000002;
            schemaName_ = other.schemaName_;
            onChanged();
          }
          if (other.hasTableName()) {
            bitField0_ |= 0x00000004;
            tableName_ = other.tableName_;
            onChanged();
          }
          if (other.hasEventType()) {
            bitField0_ |= 0x00000008;
            eventType_ = other.eventType_;
            onChanged();
          }
          if (oldKeysBuilder_ == null) {
            if (!other.oldKeys_.isEmpty()) {
              if (oldKeys_.isEmpty()) {
                oldKeys_ = other.oldKeys_;
                bitField0_ = (bitField0_ & ~0x00000010);
              } else {
                ensureOldKeysIsMutable();
                oldKeys_.addAll(other.oldKeys_);
              }
              onChanged();
            }
          } else {
            if (!other.oldKeys_.isEmpty()) {
              if (oldKeysBuilder_.isEmpty()) {
                oldKeysBuilder_.dispose();
                oldKeysBuilder_ = null;
                oldKeys_ = other.oldKeys_;
                bitField0_ = (bitField0_ & ~0x00000010);
                oldKeysBuilder_ = 
                  com.google.protobuf.GeneratedMessage.alwaysUseFieldBuilders ?
                     getOldKeysFieldBuilder() : null;
              } else {
                oldKeysBuilder_.addAllMessages(other.oldKeys_);
              }
            }
          }
          if (keysBuilder_ == null) {
            if (!other.keys_.isEmpty()) {
              if (keys_.isEmpty()) {
                keys_ = other.keys_;
                bitField0_ = (bitField0_ & ~0x00000020);
              } else {
                ensureKeysIsMutable();
                keys_.addAll(other.keys_);
              }
              onChanged();
            }
          } else {
            if (!other.keys_.isEmpty()) {
              if (keysBuilder_.isEmpty()) {
                keysBuilder_.dispose();
                keysBuilder_ = null;
                keys_ = other.keys_;
                bitField0_ = (bitField0_ & ~0x00000020);
                keysBuilder_ = 
                  com.google.protobuf.GeneratedMessage.alwaysUseFieldBuilders ?
                     getKeysFieldBuilder() : null;
              } else {
                keysBuilder_.addAllMessages(other.keys_);
              }
            }
          }
          if (columnsBuilder_ == null) {
            if (!other.columns_.isEmpty()) {
              if (columns_.isEmpty()) {
                columns_ = other.columns_;
                bitField0_ = (bitField0_ & ~0x00000040);
              } else {
                ensureColumnsIsMutable();
                columns_.addAll(other.columns_);
              }
              onChanged();
            }
          } else {
            if (!other.columns_.isEmpty()) {
              if (columnsBuilder_.isEmpty()) {
                columnsBuilder_.dispose();
                columnsBuilder_ = null;
                columns_ = other.columns_;
                bitField0_ = (bitField0_ & ~0x00000040);
                columnsBuilder_ = 
                  com.google.protobuf.GeneratedMessage.alwaysUseFieldBuilders ?
                     getColumnsFieldBuilder() : null;
              } else {
                columnsBuilder_.addAllMessages(other.columns_);
              }
            }
          }
          if (other.hasExecuteTime()) {
            setExecuteTime(other.getExecuteTime());
          }
          if (other.hasPairId()) {
            setPairId(other.getPairId());
          }
          if (other.hasSyncMode()) {
            bitField0_ |= 0x00000200;
            syncMode_ = other.syncMode_;
            onChanged();
          }
          if (other.hasSyncConsistency()) {
            bitField0_ |= 0x00000400;
            syncConsistency_ = other.syncConsistency_;
            onChanged();
          }
          if (other.hasSize()) {
            setSize(other.getSize());
          }
          if (other.hasRemedy()) {
            setRemedy(other.getRemedy());
          }
          if (other.hasSql()) {
            bitField0_ |= 0x00002000;
            sql_ = other.sql_;
            onChanged();
          }
          if (other.hasDdlSchemaName()) {
            bitField0_ |= 0x00004000;
            ddlSchemaName_ = other.ddlSchemaName_;
            onChanged();
          }
          if (other.hasHint()) {
            bitField0_ |= 0x00008000;
            hint_ = other.hint_;
            onChanged();
          }
          if (other.hasWithoutSchema()) {
            setWithoutSchema(other.getWithoutSchema());
          }
          this.mergeUnknownFields(other.getUnknownFields());
          return this;
        }
  
        public final boolean isInitialized() {
          return true;
        }
  
        public Builder mergeFrom(
            com.google.protobuf.CodedInputStream input,
            com.google.protobuf.ExtensionRegistryLite extensionRegistry)
            throws java.io.IOException {
          com.alibaba.otter.node.etl.model.protobuf.BatchProto.RowData parsedMessage = null;
          try {
            parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry);
          } catch (com.google.protobuf.InvalidProtocolBufferException e) {
            parsedMessage = (com.alibaba.otter.node.etl.model.protobuf.BatchProto.RowData) e.getUnfinishedMessage();
            throw e;
          } finally {
            if (parsedMessage != null) {
              mergeFrom(parsedMessage);
            }
          }
          return this;
        }
        private int bitField0_;
  
        private long tableId_ ;
        /**
         * <code>optional int64 tableId = 1;</code>
         */
        public boolean hasTableId() {
          return ((bitField0_ & 0x00000001) == 0x00000001);
        }
        /**
         * <code>optional int64 tableId = 1;</code>
         */
        public long getTableId() {
          return tableId_;
        }
        /**
         * <code>optional int64 tableId = 1;</code>
         */
        public Builder setTableId(long value) {
          bitField0_ |= 0x00000001;
          tableId_ = value;
          onChanged();
          return this;
        }
        /**
         * <code>optional int64 tableId = 1;</code>
         */
        public Builder clearTableId() {
          bitField0_ = (bitField0_ & ~0x00000001);
          tableId_ = 0L;
          onChanged();
          return this;
        }
  
        private java.lang.Object schemaName_ = "";
        /**
         * <code>optional string schemaName = 2;</code>
         */
        public boolean hasSchemaName() {
          return ((bitField0_ & 0x00000002) == 0x00000002);
        }
        /**
         * <code>optional string schemaName = 2;</code>
         */
        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();
            if (bs.isValidUtf8()) {
              schemaName_ = s;
            }
            return s;
          } else {
            return (java.lang.String) ref;
          }
        }
        /**
         * <code>optional string schemaName = 2;</code>
         */
        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>optional string schemaName = 2;</code>
         */
        public Builder setSchemaName(
            java.lang.String value) {
          if (value == null) {
      throw new NullPointerException();
    }
    bitField0_ |= 0x00000002;
          schemaName_ = value;
          onChanged();
          return this;
        }
        /**
         * <code>optional string schemaName = 2;</code>
         */
        public Builder clearSchemaName() {
          bitField0_ = (bitField0_ & ~0x00000002);
          schemaName_ = getDefaultInstance().getSchemaName();
          onChanged();
          return this;
        }
        /**
         * <code>optional string schemaName = 2;</code>
         */
        public Builder setSchemaNameBytes(
            com.google.protobuf.ByteString value) {
          if (value == null) {
      throw new NullPointerException();
    }
    bitField0_ |= 0x00000002;
          schemaName_ = value;
          onChanged();
          return this;
        }
  
        private java.lang.Object tableName_ = "";
        /**
         * <code>optional string tableName = 3;</code>
         */
        public boolean hasTableName() {
          return ((bitField0_ & 0x00000004) == 0x00000004);
        }
        /**
         * <code>optional string tableName = 3;</code>
         */
        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();
            if (bs.isValidUtf8()) {
              tableName_ = s;
            }
            return s;
          } else {
            return (java.lang.String) ref;
          }
        }
        /**
         * <code>optional string tableName = 3;</code>
         */
        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>optional string tableName = 3;</code>
         */
        public Builder setTableName(
            java.lang.String value) {
          if (value == null) {
      throw new NullPointerException();
    }
    bitField0_ |= 0x00000004;
          tableName_ = value;
          onChanged();
          return this;
        }
        /**
         * <code>optional string tableName = 3;</code>
         */
        public Builder clearTableName() {
          bitField0_ = (bitField0_ & ~0x00000004);
          tableName_ = getDefaultInstance().getTableName();
          onChanged();
          return this;
        }
        /**
         * <code>optional string tableName = 3;</code>
         */
        public Builder setTableNameBytes(
            com.google.protobuf.ByteString value) {
          if (value == null) {
      throw new NullPointerException();
    }
    bitField0_ |= 0x00000004;
          tableName_ = value;
          onChanged();
          return this;
        }
  
        private java.lang.Object eventType_ = "";
        /**
         * <code>optional string eventType = 4;</code>
         *
         * <pre>
         **变更数据的操作类型(I/U/D)*
         * </pre>
         */
        public boolean hasEventType() {
          return ((bitField0_ & 0x00000008) == 0x00000008);
        }
        /**
         * <code>optional string eventType = 4;</code>
         *
         * <pre>
         **变更数据的操作类型(I/U/D)*
         * </pre>
         */
        public java.lang.String getEventType() {
          java.lang.Object ref = eventType_;
          if (!(ref instanceof java.lang.String)) {
            com.google.protobuf.ByteString bs =
                (com.google.protobuf.ByteString) ref;
            java.lang.String s = bs.toStringUtf8();
            if (bs.isValidUtf8()) {
              eventType_ = s;
            }
            return s;
          } else {
            return (java.lang.String) ref;
          }
        }
        /**
         * <code>optional string eventType = 4;</code>
         *
         * <pre>
         **变更数据的操作类型(I/U/D)*
         * </pre>
         */
        public com.google.protobuf.ByteString
            getEventTypeBytes() {
          java.lang.Object ref = eventType_;
          if (ref instanceof String) {
            com.google.protobuf.ByteString b = 
                com.google.protobuf.ByteString.copyFromUtf8(
                    (java.lang.String) ref);
            eventType_ = b;
            return b;
          } else {
            return (com.google.protobuf.ByteString) ref;
          }
        }
        /**
         * <code>optional string eventType = 4;</code>
         *
         * <pre>
         **变更数据的操作类型(I/U/D)*
         * </pre>
         */
        public Builder setEventType(
            java.lang.String value) {
          if (value == null) {
      throw new NullPointerException();
    }
    bitField0_ |= 0x00000008;
          eventType_ = value;
          onChanged();
          return this;
        }
        /**
         * <code>optional string eventType = 4;</code>
         *
         * <pre>
         **变更数据的操作类型(I/U/D)*
         * </pre>
         */
        public Builder clearEventType() {
          bitField0_ = (bitField0_ & ~0x00000008);
          eventType_ = getDefaultInstance().getEventType();
          onChanged();
          return this;
        }
        /**
         * <code>optional string eventType = 4;</code>
         *
         * <pre>
         **变更数据的操作类型(I/U/D)*
         * </pre>
         */
        public Builder setEventTypeBytes(
            com.google.protobuf.ByteString value) {
          if (value == null) {
      throw new NullPointerException();
    }
    bitField0_ |= 0x00000008;
          eventType_ = value;
          onChanged();
          return this;
        }
  
        private java.util.List<com.alibaba.otter.node.etl.model.protobuf.BatchProto.Column> oldKeys_ =
          java.util.Collections.emptyList();
        private void ensureOldKeysIsMutable() {
          if (!((bitField0_ & 0x00000010) == 0x00000010)) {
            oldKeys_ = new java.util.ArrayList<com.alibaba.otter.node.etl.model.protobuf.BatchProto.Column>(oldKeys_);
            bitField0_ |= 0x00000010;
           }
        }
  
        private com.google.protobuf.RepeatedFieldBuilder<
            com.alibaba.otter.node.etl.model.protobuf.BatchProto.Column, com.alibaba.otter.node.etl.model.protobuf.BatchProto.Column.Builder, com.alibaba.otter.node.etl.model.protobuf.BatchProto.ColumnOrBuilder> oldKeysBuilder_;
  
        /**
         * <code>repeated .com.alibaba.otter.node.etl.model.protobuf.Column oldKeys = 5;</code>
         *
         * <pre>
         **变更前的主键，可能是复合主键*
         * </pre>
         */
        public java.util.List<com.alibaba.otter.node.etl.model.protobuf.BatchProto.Column> getOldKeysList() {
          if (oldKeysBuilder_ == null) {
            return java.util.Collections.unmodifiableList(oldKeys_);
          } else {
            return oldKeysBuilder_.getMessageList();
          }
        }
        /**
         * <code>repeated .com.alibaba.otter.node.etl.model.protobuf.Column oldKeys = 5;</code>
         *
         * <pre>
         **变更前的主键，可能是复合主键*
         * </pre>
         */
        public int getOldKeysCount() {
          if (oldKeysBuilder_ == null) {
            return oldKeys_.size();
          } else {
            return oldKeysBuilder_.getCount();
          }
        }
        /**
         * <code>repeated .com.alibaba.otter.node.etl.model.protobuf.Column oldKeys = 5;</code>
         *
         * <pre>
         **变更前的主键，可能是复合主键*
         * </pre>
         */
        public com.alibaba.otter.node.etl.model.protobuf.BatchProto.Column getOldKeys(int index) {
          if (oldKeysBuilder_ == null) {
            return oldKeys_.get(index);
          } else {
            return oldKeysBuilder_.getMessage(index);
          }
        }
        /**
         * <code>repeated .com.alibaba.otter.node.etl.model.protobuf.Column oldKeys = 5;</code>
         *
         * <pre>
         **变更前的主键，可能是复合主键*
         * </pre>
         */
        public Builder setOldKeys(
            int index, com.alibaba.otter.node.etl.model.protobuf.BatchProto.Column value) {
          if (oldKeysBuilder_ == null) {
            if (value == null) {
              throw new NullPointerException();
            }
            ensureOldKeysIsMutable();
            oldKeys_.set(index, value);
            onChanged();
          } else {
            oldKeysBuilder_.setMessage(index, value);
          }
          return this;
        }
        /**
         * <code>repeated .com.alibaba.otter.node.etl.model.protobuf.Column oldKeys = 5;</code>
         *
         * <pre>
         **变更前的主键，可能是复合主键*
         * </pre>
         */
        public Builder setOldKeys(
            int index, com.alibaba.otter.node.etl.model.protobuf.BatchProto.Column.Builder builderForValue) {
          if (oldKeysBuilder_ == null) {
            ensureOldKeysIsMutable();
            oldKeys_.set(index, builderForValue.build());
            onChanged();
          } else {
            oldKeysBuilder_.setMessage(index, builderForValue.build());
          }
          return this;
        }
        /**
         * <code>repeated .com.alibaba.otter.node.etl.model.protobuf.Column oldKeys = 5;</code>
         *
         * <pre>
         **变更前的主键，可能是复合主键*
         * </pre>
         */
        public Builder addOldKeys(com.alibaba.otter.node.etl.model.protobuf.BatchProto.Column value) {
          if (oldKeysBuilder_ == null) {
            if (value == null) {
              throw new NullPointerException();
            }
            ensureOldKeysIsMutable();
            oldKeys_.add(value);
            onChanged();
          } else {
            oldKeysBuilder_.addMessage(value);
          }
          return this;
        }
        /**
         * <code>repeated .com.alibaba.otter.node.etl.model.protobuf.Column oldKeys = 5;</code>
         *
         * <pre>
         **变更前的主键，可能是复合主键*
         * </pre>
         */
        public Builder addOldKeys(
            int index, com.alibaba.otter.node.etl.model.protobuf.BatchProto.Column value) {
          if (oldKeysBuilder_ == null) {
            if (value == null) {
              throw new NullPointerException();
            }
            ensureOldKeysIsMutable();
            oldKeys_.add(index, value);
            onChanged();
          } else {
            oldKeysBuilder_.addMessage(index, value);
          }
          return this;
        }
        /**
         * <code>repeated .com.alibaba.otter.node.etl.model.protobuf.Column oldKeys = 5;</code>
         *
         * <pre>
         **变更前的主键，可能是复合主键*
         * </pre>
         */
        public Builder addOldKeys(
            com.alibaba.otter.node.etl.model.protobuf.BatchProto.Column.Builder builderForValue) {
          if (oldKeysBuilder_ == null) {
            ensureOldKeysIsMutable();
            oldKeys_.add(builderForValue.build());
            onChanged();
          } else {
            oldKeysBuilder_.addMessage(builderForValue.build());
          }
          return this;
        }
        /**
         * <code>repeated .com.alibaba.otter.node.etl.model.protobuf.Column oldKeys = 5;</code>
         *
         * <pre>
         **变更前的主键，可能是复合主键*
         * </pre>
         */
        public Builder addOldKeys(
            int index, com.alibaba.otter.node.etl.model.protobuf.BatchProto.Column.Builder builderForValue) {
          if (oldKeysBuilder_ == null) {
            ensureOldKeysIsMutable();
            oldKeys_.add(index, builderForValue.build());
            onChanged();
          } else {
            oldKeysBuilder_.addMessage(index, builderForValue.build());
          }
          return this;
        }
        /**
         * <code>repeated .com.alibaba.otter.node.etl.model.protobuf.Column oldKeys = 5;</code>
         *
         * <pre>
         **变更前的主键，可能是复合主键*
         * </pre>
         */
        public Builder addAllOldKeys(
            java.lang.Iterable<? extends com.alibaba.otter.node.etl.model.protobuf.BatchProto.Column> values) {
          if (oldKeysBuilder_ == null) {
            ensureOldKeysIsMutable();
            com.google.protobuf.AbstractMessageLite.Builder.addAll(
                values, oldKeys_);
            onChanged();
          } else {
            oldKeysBuilder_.addAllMessages(values);
          }
          return this;
        }
        /**
         * <code>repeated .com.alibaba.otter.node.etl.model.protobuf.Column oldKeys = 5;</code>
         *
         * <pre>
         **变更前的主键，可能是复合主键*
         * </pre>
         */
        public Builder clearOldKeys() {
          if (oldKeysBuilder_ == null) {
            oldKeys_ = java.util.Collections.emptyList();
            bitField0_ = (bitField0_ & ~0x00000010);
            onChanged();
          } else {
            oldKeysBuilder_.clear();
          }
          return this;
        }
        /**
         * <code>repeated .com.alibaba.otter.node.etl.model.protobuf.Column oldKeys = 5;</code>
         *
         * <pre>
         **变更前的主键，可能是复合主键*
         * </pre>
         */
        public Builder removeOldKeys(int index) {
          if (oldKeysBuilder_ == null) {
            ensureOldKeysIsMutable();
            oldKeys_.remove(index);
            onChanged();
          } else {
            oldKeysBuilder_.remove(index);
          }
          return this;
        }
        /**
         * <code>repeated .com.alibaba.otter.node.etl.model.protobuf.Column oldKeys = 5;</code>
         *
         * <pre>
         **变更前的主键，可能是复合主键*
         * </pre>
         */
        public com.alibaba.otter.node.etl.model.protobuf.BatchProto.Column.Builder getOldKeysBuilder(
            int index) {
          return getOldKeysFieldBuilder().getBuilder(index);
        }
        /**
         * <code>repeated .com.alibaba.otter.node.etl.model.protobuf.Column oldKeys = 5;</code>
         *
         * <pre>
         **变更前的主键，可能是复合主键*
         * </pre>
         */
        public com.alibaba.otter.node.etl.model.protobuf.BatchProto.ColumnOrBuilder getOldKeysOrBuilder(
            int index) {
          if (oldKeysBuilder_ == null) {
            return oldKeys_.get(index);  } else {
            return oldKeysBuilder_.getMessageOrBuilder(index);
          }
        }
        /**
         * <code>repeated .com.alibaba.otter.node.etl.model.protobuf.Column oldKeys = 5;</code>
         *
         * <pre>
         **变更前的主键，可能是复合主键*
         * </pre>
         */
        public java.util.List<? extends com.alibaba.otter.node.etl.model.protobuf.BatchProto.ColumnOrBuilder> 
             getOldKeysOrBuilderList() {
          if (oldKeysBuilder_ != null) {
            return oldKeysBuilder_.getMessageOrBuilderList();
          } else {
            return java.util.Collections.unmodifiableList(oldKeys_);
          }
        }
        /**
         * <code>repeated .com.alibaba.otter.node.etl.model.protobuf.Column oldKeys = 5;</code>
         *
         * <pre>
         **变更前的主键，可能是复合主键*
         * </pre>
         */
        public com.alibaba.otter.node.etl.model.protobuf.BatchProto.Column.Builder addOldKeysBuilder() {
          return getOldKeysFieldBuilder().addBuilder(
              com.alibaba.otter.node.etl.model.protobuf.BatchProto.Column.getDefaultInstance());
        }
        /**
         * <code>repeated .com.alibaba.otter.node.etl.model.protobuf.Column oldKeys = 5;</code>
         *
         * <pre>
         **变更前的主键，可能是复合主键*
         * </pre>
         */
        public com.alibaba.otter.node.etl.model.protobuf.BatchProto.Column.Builder addOldKeysBuilder(
            int index) {
          return getOldKeysFieldBuilder().addBuilder(
              index, com.alibaba.otter.node.etl.model.protobuf.BatchProto.Column.getDefaultInstance());
        }
        /**
         * <code>repeated .com.alibaba.otter.node.etl.model.protobuf.Column oldKeys = 5;</code>
         *
         * <pre>
         **变更前的主键，可能是复合主键*
         * </pre>
         */
        public java.util.List<com.alibaba.otter.node.etl.model.protobuf.BatchProto.Column.Builder> 
             getOldKeysBuilderList() {
          return getOldKeysFieldBuilder().getBuilderList();
        }
        private com.google.protobuf.RepeatedFieldBuilder<
            com.alibaba.otter.node.etl.model.protobuf.BatchProto.Column, com.alibaba.otter.node.etl.model.protobuf.BatchProto.Column.Builder, com.alibaba.otter.node.etl.model.protobuf.BatchProto.ColumnOrBuilder> 
            getOldKeysFieldBuilder() {
          if (oldKeysBuilder_ == null) {
            oldKeysBuilder_ = new com.google.protobuf.RepeatedFieldBuilder<
                com.alibaba.otter.node.etl.model.protobuf.BatchProto.Column, com.alibaba.otter.node.etl.model.protobuf.BatchProto.Column.Builder, com.alibaba.otter.node.etl.model.protobuf.BatchProto.ColumnOrBuilder>(
                    oldKeys_,
                    ((bitField0_ & 0x00000010) == 0x00000010),
                    getParentForChildren(),
                    isClean());
            oldKeys_ = null;
          }
          return oldKeysBuilder_;
        }
  
        private java.util.List<com.alibaba.otter.node.etl.model.protobuf.BatchProto.Column> keys_ =
          java.util.Collections.emptyList();
        private void ensureKeysIsMutable() {
          if (!((bitField0_ & 0x00000020) == 0x00000020)) {
            keys_ = new java.util.ArrayList<com.alibaba.otter.node.etl.model.protobuf.BatchProto.Column>(keys_);
            bitField0_ |= 0x00000020;
           }
        }
  
        private com.google.protobuf.RepeatedFieldBuilder<
            com.alibaba.otter.node.etl.model.protobuf.BatchProto.Column, com.alibaba.otter.node.etl.model.protobuf.BatchProto.Column.Builder, com.alibaba.otter.node.etl.model.protobuf.BatchProto.ColumnOrBuilder> keysBuilder_;
  
        /**
         * <code>repeated .com.alibaba.otter.node.etl.model.protobuf.Column keys = 6;</code>
         *
         * <pre>
         **变更后的主键，可能是复合主键*
         * </pre>
         */
        public java.util.List<com.alibaba.otter.node.etl.model.protobuf.BatchProto.Column> getKeysList() {
          if (keysBuilder_ == null) {
            return java.util.Collections.unmodifiableList(keys_);
          } else {
            return keysBuilder_.getMessageList();
          }
        }
        /**
         * <code>repeated .com.alibaba.otter.node.etl.model.protobuf.Column keys = 6;</code>
         *
         * <pre>
         **变更后的主键，可能是复合主键*
         * </pre>
         */
        public int getKeysCount() {
          if (keysBuilder_ == null) {
            return keys_.size();
          } else {
            return keysBuilder_.getCount();
          }
        }
        /**
         * <code>repeated .com.alibaba.otter.node.etl.model.protobuf.Column keys = 6;</code>
         *
         * <pre>
         **变更后的主键，可能是复合主键*
         * </pre>
         */
        public com.alibaba.otter.node.etl.model.protobuf.BatchProto.Column getKeys(int index) {
          if (keysBuilder_ == null) {
            return keys_.get(index);
          } else {
            return keysBuilder_.getMessage(index);
          }
        }
        /**
         * <code>repeated .com.alibaba.otter.node.etl.model.protobuf.Column keys = 6;</code>
         *
         * <pre>
         **变更后的主键，可能是复合主键*
         * </pre>
         */
        public Builder setKeys(
            int index, com.alibaba.otter.node.etl.model.protobuf.BatchProto.Column value) {
          if (keysBuilder_ == null) {
            if (value == null) {
              throw new NullPointerException();
            }
            ensureKeysIsMutable();
            keys_.set(index, value);
            onChanged();
          } else {
            keysBuilder_.setMessage(index, value);
          }
          return this;
        }
        /**
         * <code>repeated .com.alibaba.otter.node.etl.model.protobuf.Column keys = 6;</code>
         *
         * <pre>
         **变更后的主键，可能是复合主键*
         * </pre>
         */
        public Builder setKeys(
            int index, com.alibaba.otter.node.etl.model.protobuf.BatchProto.Column.Builder builderForValue) {
          if (keysBuilder_ == null) {
            ensureKeysIsMutable();
            keys_.set(index, builderForValue.build());
            onChanged();
          } else {
            keysBuilder_.setMessage(index, builderForValue.build());
          }
          return this;
        }
        /**
         * <code>repeated .com.alibaba.otter.node.etl.model.protobuf.Column keys = 6;</code>
         *
         * <pre>
         **变更后的主键，可能是复合主键*
         * </pre>
         */
        public Builder addKeys(com.alibaba.otter.node.etl.model.protobuf.BatchProto.Column value) {
          if (keysBuilder_ == null) {
            if (value == null) {
              throw new NullPointerException();
            }
            ensureKeysIsMutable();
            keys_.add(value);
            onChanged();
          } else {
            keysBuilder_.addMessage(value);
          }
          return this;
        }
        /**
         * <code>repeated .com.alibaba.otter.node.etl.model.protobuf.Column keys = 6;</code>
         *
         * <pre>
         **变更后的主键，可能是复合主键*
         * </pre>
         */
        public Builder addKeys(
            int index, com.alibaba.otter.node.etl.model.protobuf.BatchProto.Column value) {
          if (keysBuilder_ == null) {
            if (value == null) {
              throw new NullPointerException();
            }
            ensureKeysIsMutable();
            keys_.add(index, value);
            onChanged();
          } else {
            keysBuilder_.addMessage(index, value);
          }
          return this;
        }
        /**
         * <code>repeated .com.alibaba.otter.node.etl.model.protobuf.Column keys = 6;</code>
         *
         * <pre>
         **变更后的主键，可能是复合主键*
         * </pre>
         */
        public Builder addKeys(
            com.alibaba.otter.node.etl.model.protobuf.BatchProto.Column.Builder builderForValue) {
          if (keysBuilder_ == null) {
            ensureKeysIsMutable();
            keys_.add(builderForValue.build());
            onChanged();
          } else {
            keysBuilder_.addMessage(builderForValue.build());
          }
          return this;
        }
        /**
         * <code>repeated .com.alibaba.otter.node.etl.model.protobuf.Column keys = 6;</code>
         *
         * <pre>
         **变更后的主键，可能是复合主键*
         * </pre>
         */
        public Builder addKeys(
            int index, com.alibaba.otter.node.etl.model.protobuf.BatchProto.Column.Builder builderForValue) {
          if (keysBuilder_ == null) {
            ensureKeysIsMutable();
            keys_.add(index, builderForValue.build());
            onChanged();
          } else {
            keysBuilder_.addMessage(index, builderForValue.build());
          }
          return this;
        }
        /**
         * <code>repeated .com.alibaba.otter.node.etl.model.protobuf.Column keys = 6;</code>
         *
         * <pre>
         **变更后的主键，可能是复合主键*
         * </pre>
         */
        public Builder addAllKeys(
            java.lang.Iterable<? extends com.alibaba.otter.node.etl.model.protobuf.BatchProto.Column> values) {
          if (keysBuilder_ == null) {
            ensureKeysIsMutable();
            com.google.protobuf.AbstractMessageLite.Builder.addAll(
                values, keys_);
            onChanged();
          } else {
            keysBuilder_.addAllMessages(values);
          }
          return this;
        }
        /**
         * <code>repeated .com.alibaba.otter.node.etl.model.protobuf.Column keys = 6;</code>
         *
         * <pre>
         **变更后的主键，可能是复合主键*
         * </pre>
         */
        public Builder clearKeys() {
          if (keysBuilder_ == null) {
            keys_ = java.util.Collections.emptyList();
            bitField0_ = (bitField0_ & ~0x00000020);
            onChanged();
          } else {
            keysBuilder_.clear();
          }
          return this;
        }
        /**
         * <code>repeated .com.alibaba.otter.node.etl.model.protobuf.Column keys = 6;</code>
         *
         * <pre>
         **变更后的主键，可能是复合主键*
         * </pre>
         */
        public Builder removeKeys(int index) {
          if (keysBuilder_ == null) {
            ensureKeysIsMutable();
            keys_.remove(index);
            onChanged();
          } else {
            keysBuilder_.remove(index);
          }
          return this;
        }
        /**
         * <code>repeated .com.alibaba.otter.node.etl.model.protobuf.Column keys = 6;</code>
         *
         * <pre>
         **变更后的主键，可能是复合主键*
         * </pre>
         */
        public com.alibaba.otter.node.etl.model.protobuf.BatchProto.Column.Builder getKeysBuilder(
            int index) {
          return getKeysFieldBuilder().getBuilder(index);
        }
        /**
         * <code>repeated .com.alibaba.otter.node.etl.model.protobuf.Column keys = 6;</code>
         *
         * <pre>
         **变更后的主键，可能是复合主键*
         * </pre>
         */
        public com.alibaba.otter.node.etl.model.protobuf.BatchProto.ColumnOrBuilder getKeysOrBuilder(
            int index) {
          if (keysBuilder_ == null) {
            return keys_.get(index);  } else {
            return keysBuilder_.getMessageOrBuilder(index);
          }
        }
        /**
         * <code>repeated .com.alibaba.otter.node.etl.model.protobuf.Column keys = 6;</code>
         *
         * <pre>
         **变更后的主键，可能是复合主键*
         * </pre>
         */
        public java.util.List<? extends com.alibaba.otter.node.etl.model.protobuf.BatchProto.ColumnOrBuilder> 
             getKeysOrBuilderList() {
          if (keysBuilder_ != null) {
            return keysBuilder_.getMessageOrBuilderList();
          } else {
            return java.util.Collections.unmodifiableList(keys_);
          }
        }
        /**
         * <code>repeated .com.alibaba.otter.node.etl.model.protobuf.Column keys = 6;</code>
         *
         * <pre>
         **变更后的主键，可能是复合主键*
         * </pre>
         */
        public com.alibaba.otter.node.etl.model.protobuf.BatchProto.Column.Builder addKeysBuilder() {
          return getKeysFieldBuilder().addBuilder(
              com.alibaba.otter.node.etl.model.protobuf.BatchProto.Column.getDefaultInstance());
        }
        /**
         * <code>repeated .com.alibaba.otter.node.etl.model.protobuf.Column keys = 6;</code>
         *
         * <pre>
         **变更后的主键，可能是复合主键*
         * </pre>
         */
        public com.alibaba.otter.node.etl.model.protobuf.BatchProto.Column.Builder addKeysBuilder(
            int index) {
          return getKeysFieldBuilder().addBuilder(
              index, com.alibaba.otter.node.etl.model.protobuf.BatchProto.Column.getDefaultInstance());
        }
        /**
         * <code>repeated .com.alibaba.otter.node.etl.model.protobuf.Column keys = 6;</code>
         *
         * <pre>
         **变更后的主键，可能是复合主键*
         * </pre>
         */
        public java.util.List<com.alibaba.otter.node.etl.model.protobuf.BatchProto.Column.Builder> 
             getKeysBuilderList() {
          return getKeysFieldBuilder().getBuilderList();
        }
        private com.google.protobuf.RepeatedFieldBuilder<
            com.alibaba.otter.node.etl.model.protobuf.BatchProto.Column, com.alibaba.otter.node.etl.model.protobuf.BatchProto.Column.Builder, com.alibaba.otter.node.etl.model.protobuf.BatchProto.ColumnOrBuilder> 
            getKeysFieldBuilder() {
          if (keysBuilder_ == null) {
            keysBuilder_ = new com.google.protobuf.RepeatedFieldBuilder<
                com.alibaba.otter.node.etl.model.protobuf.BatchProto.Column, com.alibaba.otter.node.etl.model.protobuf.BatchProto.Column.Builder, com.alibaba.otter.node.etl.model.protobuf.BatchProto.ColumnOrBuilder>(
                    keys_,
                    ((bitField0_ & 0x00000020) == 0x00000020),
                    getParentForChildren(),
                    isClean());
            keys_ = null;
          }
          return keysBuilder_;
        }
  
        private java.util.List<com.alibaba.otter.node.etl.model.protobuf.BatchProto.Column> columns_ =
          java.util.Collections.emptyList();
        private void ensureColumnsIsMutable() {
          if (!((bitField0_ & 0x00000040) == 0x00000040)) {
            columns_ = new java.util.ArrayList<com.alibaba.otter.node.etl.model.protobuf.BatchProto.Column>(columns_);
            bitField0_ |= 0x00000040;
           }
        }
  
        private com.google.protobuf.RepeatedFieldBuilder<
            com.alibaba.otter.node.etl.model.protobuf.BatchProto.Column, com.alibaba.otter.node.etl.model.protobuf.BatchProto.Column.Builder, com.alibaba.otter.node.etl.model.protobuf.BatchProto.ColumnOrBuilder> columnsBuilder_;
  
        /**
         * <code>repeated .com.alibaba.otter.node.etl.model.protobuf.Column columns = 7;</code>
         *
         * <pre>
         **变更数据的每列变更信息,不包含主键*
         * </pre>
         */
        public java.util.List<com.alibaba.otter.node.etl.model.protobuf.BatchProto.Column> getColumnsList() {
          if (columnsBuilder_ == null) {
            return java.util.Collections.unmodifiableList(columns_);
          } else {
            return columnsBuilder_.getMessageList();
          }
        }
        /**
         * <code>repeated .com.alibaba.otter.node.etl.model.protobuf.Column columns = 7;</code>
         *
         * <pre>
         **变更数据的每列变更信息,不包含主键*
         * </pre>
         */
        public int getColumnsCount() {
          if (columnsBuilder_ == null) {
            return columns_.size();
          } else {
            return columnsBuilder_.getCount();
          }
        }
        /**
         * <code>repeated .com.alibaba.otter.node.etl.model.protobuf.Column columns = 7;</code>
         *
         * <pre>
         **变更数据的每列变更信息,不包含主键*
         * </pre>
         */
        public com.alibaba.otter.node.etl.model.protobuf.BatchProto.Column getColumns(int index) {
          if (columnsBuilder_ == null) {
            return columns_.get(index);
          } else {
            return columnsBuilder_.getMessage(index);
          }
        }
        /**
         * <code>repeated .com.alibaba.otter.node.etl.model.protobuf.Column columns = 7;</code>
         *
         * <pre>
         **变更数据的每列变更信息,不包含主键*
         * </pre>
         */
        public Builder setColumns(
            int index, com.alibaba.otter.node.etl.model.protobuf.BatchProto.Column value) {
          if (columnsBuilder_ == null) {
            if (value == null) {
              throw new NullPointerException();
            }
            ensureColumnsIsMutable();
            columns_.set(index, value);
            onChanged();
          } else {
            columnsBuilder_.setMessage(index, value);
          }
          return this;
        }
        /**
         * <code>repeated .com.alibaba.otter.node.etl.model.protobuf.Column columns = 7;</code>
         *
         * <pre>
         **变更数据的每列变更信息,不包含主键*
         * </pre>
         */
        public Builder setColumns(
            int index, com.alibaba.otter.node.etl.model.protobuf.BatchProto.Column.Builder builderForValue) {
          if (columnsBuilder_ == null) {
            ensureColumnsIsMutable();
            columns_.set(index, builderForValue.build());
            onChanged();
          } else {
            columnsBuilder_.setMessage(index, builderForValue.build());
          }
          return this;
        }
        /**
         * <code>repeated .com.alibaba.otter.node.etl.model.protobuf.Column columns = 7;</code>
         *
         * <pre>
         **变更数据的每列变更信息,不包含主键*
         * </pre>
         */
        public Builder addColumns(com.alibaba.otter.node.etl.model.protobuf.BatchProto.Column value) {
          if (columnsBuilder_ == null) {
            if (value == null) {
              throw new NullPointerException();
            }
            ensureColumnsIsMutable();
            columns_.add(value);
            onChanged();
          } else {
            columnsBuilder_.addMessage(value);
          }
          return this;
        }
        /**
         * <code>repeated .com.alibaba.otter.node.etl.model.protobuf.Column columns = 7;</code>
         *
         * <pre>
         **变更数据的每列变更信息,不包含主键*
         * </pre>
         */
        public Builder addColumns(
            int index, com.alibaba.otter.node.etl.model.protobuf.BatchProto.Column value) {
          if (columnsBuilder_ == null) {
            if (value == null) {
              throw new NullPointerException();
            }
            ensureColumnsIsMutable();
            columns_.add(index, value);
            onChanged();
          } else {
            columnsBuilder_.addMessage(index, value);
          }
          return this;
        }
        /**
         * <code>repeated .com.alibaba.otter.node.etl.model.protobuf.Column columns = 7;</code>
         *
         * <pre>
         **变更数据的每列变更信息,不包含主键*
         * </pre>
         */
        public Builder addColumns(
            com.alibaba.otter.node.etl.model.protobuf.BatchProto.Column.Builder builderForValue) {
          if (columnsBuilder_ == null) {
            ensureColumnsIsMutable();
            columns_.add(builderForValue.build());
            onChanged();
          } else {
            columnsBuilder_.addMessage(builderForValue.build());
          }
          return this;
        }
        /**
         * <code>repeated .com.alibaba.otter.node.etl.model.protobuf.Column columns = 7;</code>
         *
         * <pre>
         **变更数据的每列变更信息,不包含主键*
         * </pre>
         */
        public Builder addColumns(
            int index, com.alibaba.otter.node.etl.model.protobuf.BatchProto.Column.Builder builderForValue) {
          if (columnsBuilder_ == null) {
            ensureColumnsIsMutable();
            columns_.add(index, builderForValue.build());
            onChanged();
          } else {
            columnsBuilder_.addMessage(index, builderForValue.build());
          }
          return this;
        }
        /**
         * <code>repeated .com.alibaba.otter.node.etl.model.protobuf.Column columns = 7;</code>
         *
         * <pre>
         **变更数据的每列变更信息,不包含主键*
         * </pre>
         */
        public Builder addAllColumns(
            java.lang.Iterable<? extends com.alibaba.otter.node.etl.model.protobuf.BatchProto.Column> values) {
          if (columnsBuilder_ == null) {
            ensureColumnsIsMutable();
            com.google.protobuf.AbstractMessageLite.Builder.addAll(
                values, columns_);
            onChanged();
          } else {
            columnsBuilder_.addAllMessages(values);
          }
          return this;
        }
        /**
         * <code>repeated .com.alibaba.otter.node.etl.model.protobuf.Column columns = 7;</code>
         *
         * <pre>
         **变更数据的每列变更信息,不包含主键*
         * </pre>
         */
        public Builder clearColumns() {
          if (columnsBuilder_ == null) {
            columns_ = java.util.Collections.emptyList();
            bitField0_ = (bitField0_ & ~0x00000040);
            onChanged();
          } else {
            columnsBuilder_.clear();
          }
          return this;
        }
        /**
         * <code>repeated .com.alibaba.otter.node.etl.model.protobuf.Column columns = 7;</code>
         *
         * <pre>
         **变更数据的每列变更信息,不包含主键*
         * </pre>
         */
        public Builder removeColumns(int index) {
          if (columnsBuilder_ == null) {
            ensureColumnsIsMutable();
            columns_.remove(index);
            onChanged();
          } else {
            columnsBuilder_.remove(index);
          }
          return this;
        }
        /**
         * <code>repeated .com.alibaba.otter.node.etl.model.protobuf.Column columns = 7;</code>
         *
         * <pre>
         **变更数据的每列变更信息,不包含主键*
         * </pre>
         */
        public com.alibaba.otter.node.etl.model.protobuf.BatchProto.Column.Builder getColumnsBuilder(
            int index) {
          return getColumnsFieldBuilder().getBuilder(index);
        }
        /**
         * <code>repeated .com.alibaba.otter.node.etl.model.protobuf.Column columns = 7;</code>
         *
         * <pre>
         **变更数据的每列变更信息,不包含主键*
         * </pre>
         */
        public com.alibaba.otter.node.etl.model.protobuf.BatchProto.ColumnOrBuilder getColumnsOrBuilder(
            int index) {
          if (columnsBuilder_ == null) {
            return columns_.get(index);  } else {
            return columnsBuilder_.getMessageOrBuilder(index);
          }
        }
        /**
         * <code>repeated .com.alibaba.otter.node.etl.model.protobuf.Column columns = 7;</code>
         *
         * <pre>
         **变更数据的每列变更信息,不包含主键*
         * </pre>
         */
        public java.util.List<? extends com.alibaba.otter.node.etl.model.protobuf.BatchProto.ColumnOrBuilder> 
             getColumnsOrBuilderList() {
          if (columnsBuilder_ != null) {
            return columnsBuilder_.getMessageOrBuilderList();
          } else {
            return java.util.Collections.unmodifiableList(columns_);
          }
        }
        /**
         * <code>repeated .com.alibaba.otter.node.etl.model.protobuf.Column columns = 7;</code>
         *
         * <pre>
         **变更数据的每列变更信息,不包含主键*
         * </pre>
         */
        public com.alibaba.otter.node.etl.model.protobuf.BatchProto.Column.Builder addColumnsBuilder() {
          return getColumnsFieldBuilder().addBuilder(
              com.alibaba.otter.node.etl.model.protobuf.BatchProto.Column.getDefaultInstance());
        }
        /**
         * <code>repeated .com.alibaba.otter.node.etl.model.protobuf.Column columns = 7;</code>
         *
         * <pre>
         **变更数据的每列变更信息,不包含主键*
         * </pre>
         */
        public com.alibaba.otter.node.etl.model.protobuf.BatchProto.Column.Builder addColumnsBuilder(
            int index) {
          return getColumnsFieldBuilder().addBuilder(
              index, com.alibaba.otter.node.etl.model.protobuf.BatchProto.Column.getDefaultInstance());
        }
        /**
         * <code>repeated .com.alibaba.otter.node.etl.model.protobuf.Column columns = 7;</code>
         *
         * <pre>
         **变更数据的每列变更信息,不包含主键*
         * </pre>
         */
        public java.util.List<com.alibaba.otter.node.etl.model.protobuf.BatchProto.Column.Builder> 
             getColumnsBuilderList() {
          return getColumnsFieldBuilder().getBuilderList();
        }
        private com.google.protobuf.RepeatedFieldBuilder<
            com.alibaba.otter.node.etl.model.protobuf.BatchProto.Column, com.alibaba.otter.node.etl.model.protobuf.BatchProto.Column.Builder, com.alibaba.otter.node.etl.model.protobuf.BatchProto.ColumnOrBuilder> 
            getColumnsFieldBuilder() {
          if (columnsBuilder_ == null) {
            columnsBuilder_ = new com.google.protobuf.RepeatedFieldBuilder<
                com.alibaba.otter.node.etl.model.protobuf.BatchProto.Column, com.alibaba.otter.node.etl.model.protobuf.BatchProto.Column.Builder, com.alibaba.otter.node.etl.model.protobuf.BatchProto.ColumnOrBuilder>(
                    columns_,
                    ((bitField0_ & 0x00000040) == 0x00000040),
                    getParentForChildren(),
                    isClean());
            columns_ = null;
          }
          return columnsBuilder_;
        }
  
        private long executeTime_ ;
        /**
         * <code>optional int64 executeTime = 8;</code>
         *
         * <pre>
         **变更数据的业务时间*
         * </pre>
         */
        public boolean hasExecuteTime() {
          return ((bitField0_ & 0x00000080) == 0x00000080);
        }
        /**
         * <code>optional int64 executeTime = 8;</code>
         *
         * <pre>
         **变更数据的业务时间*
         * </pre>
         */
        public long getExecuteTime() {
          return executeTime_;
        }
        /**
         * <code>optional int64 executeTime = 8;</code>
         *
         * <pre>
         **变更数据的业务时间*
         * </pre>
         */
        public Builder setExecuteTime(long value) {
          bitField0_ |= 0x00000080;
          executeTime_ = value;
          onChanged();
          return this;
        }
        /**
         * <code>optional int64 executeTime = 8;</code>
         *
         * <pre>
         **变更数据的业务时间*
         * </pre>
         */
        public Builder clearExecuteTime() {
          bitField0_ = (bitField0_ & ~0x00000080);
          executeTime_ = 0L;
          onChanged();
          return this;
        }
  
        private long pairId_ ;
        /**
         * <code>optional int64 pairId = 9;</code>
         *
         * <pre>
         **映射规则id*
         * </pre>
         */
        public boolean hasPairId() {
          return ((bitField0_ & 0x00000100) == 0x00000100);
        }
        /**
         * <code>optional int64 pairId = 9;</code>
         *
         * <pre>
         **映射规则id*
         * </pre>
         */
        public long getPairId() {
          return pairId_;
        }
        /**
         * <code>optional int64 pairId = 9;</code>
         *
         * <pre>
         **映射规则id*
         * </pre>
         */
        public Builder setPairId(long value) {
          bitField0_ |= 0x00000100;
          pairId_ = value;
          onChanged();
          return this;
        }
        /**
         * <code>optional int64 pairId = 9;</code>
         *
         * <pre>
         **映射规则id*
         * </pre>
         */
        public Builder clearPairId() {
          bitField0_ = (bitField0_ & ~0x00000100);
          pairId_ = 0L;
          onChanged();
          return this;
        }
  
        private java.lang.Object syncMode_ = "";
        /**
         * <code>optional string syncMode = 10;</code>
         *
         * <pre>
         **同步模式(R/F)*
         * </pre>
         */
        public boolean hasSyncMode() {
          return ((bitField0_ & 0x00000200) == 0x00000200);
        }
        /**
         * <code>optional string syncMode = 10;</code>
         *
         * <pre>
         **同步模式(R/F)*
         * </pre>
         */
        public java.lang.String getSyncMode() {
          java.lang.Object ref = syncMode_;
          if (!(ref instanceof java.lang.String)) {
            com.google.protobuf.ByteString bs =
                (com.google.protobuf.ByteString) ref;
            java.lang.String s = bs.toStringUtf8();
            if (bs.isValidUtf8()) {
              syncMode_ = s;
            }
            return s;
          } else {
            return (java.lang.String) ref;
          }
        }
        /**
         * <code>optional string syncMode = 10;</code>
         *
         * <pre>
         **同步模式(R/F)*
         * </pre>
         */
        public com.google.protobuf.ByteString
            getSyncModeBytes() {
          java.lang.Object ref = syncMode_;
          if (ref instanceof String) {
            com.google.protobuf.ByteString b = 
                com.google.protobuf.ByteString.copyFromUtf8(
                    (java.lang.String) ref);
            syncMode_ = b;
            return b;
          } else {
            return (com.google.protobuf.ByteString) ref;
          }
        }
        /**
         * <code>optional string syncMode = 10;</code>
         *
         * <pre>
         **同步模式(R/F)*
         * </pre>
         */
        public Builder setSyncMode(
            java.lang.String value) {
          if (value == null) {
      throw new NullPointerException();
    }
    bitField0_ |= 0x00000200;
          syncMode_ = value;
          onChanged();
          return this;
        }
        /**
         * <code>optional string syncMode = 10;</code>
         *
         * <pre>
         **同步模式(R/F)*
         * </pre>
         */
        public Builder clearSyncMode() {
          bitField0_ = (bitField0_ & ~0x00000200);
          syncMode_ = getDefaultInstance().getSyncMode();
          onChanged();
          return this;
        }
        /**
         * <code>optional string syncMode = 10;</code>
         *
         * <pre>
         **同步模式(R/F)*
         * </pre>
         */
        public Builder setSyncModeBytes(
            com.google.protobuf.ByteString value) {
          if (value == null) {
      throw new NullPointerException();
    }
    bitField0_ |= 0x00000200;
          syncMode_ = value;
          onChanged();
          return this;
        }
  
        private java.lang.Object syncConsistency_ = "";
        /**
         * <code>optional string syncConsistency = 11;</code>
         *
         * <pre>
         **同步一致性(B/S/M) *
         * </pre>
         */
        public boolean hasSyncConsistency() {
          return ((bitField0_ & 0x00000400) == 0x00000400);
        }
        /**
         * <code>optional string syncConsistency = 11;</code>
         *
         * <pre>
         **同步一致性(B/S/M) *
         * </pre>
         */
        public java.lang.String getSyncConsistency() {
          java.lang.Object ref = syncConsistency_;
          if (!(ref instanceof java.lang.String)) {
            com.google.protobuf.ByteString bs =
                (com.google.protobuf.ByteString) ref;
            java.lang.String s = bs.toStringUtf8();
            if (bs.isValidUtf8()) {
              syncConsistency_ = s;
            }
            return s;
          } else {
            return (java.lang.String) ref;
          }
        }
        /**
         * <code>optional string syncConsistency = 11;</code>
         *
         * <pre>
         **同步一致性(B/S/M) *
         * </pre>
         */
        public com.google.protobuf.ByteString
            getSyncConsistencyBytes() {
          java.lang.Object ref = syncConsistency_;
          if (ref instanceof String) {
            com.google.protobuf.ByteString b = 
                com.google.protobuf.ByteString.copyFromUtf8(
                    (java.lang.String) ref);
            syncConsistency_ = b;
            return b;
          } else {
            return (com.google.protobuf.ByteString) ref;
          }
        }
        /**
         * <code>optional string syncConsistency = 11;</code>
         *
         * <pre>
         **同步一致性(B/S/M) *
         * </pre>
         */
        public Builder setSyncConsistency(
            java.lang.String value) {
          if (value == null) {
      throw new NullPointerException();
    }
    bitField0_ |= 0x00000400;
          syncConsistency_ = value;
          onChanged();
          return this;
        }
        /**
         * <code>optional string syncConsistency = 11;</code>
         *
         * <pre>
         **同步一致性(B/S/M) *
         * </pre>
         */
        public Builder clearSyncConsistency() {
          bitField0_ = (bitField0_ & ~0x00000400);
          syncConsistency_ = getDefaultInstance().getSyncConsistency();
          onChanged();
          return this;
        }
        /**
         * <code>optional string syncConsistency = 11;</code>
         *
         * <pre>
         **同步一致性(B/S/M) *
         * </pre>
         */
        public Builder setSyncConsistencyBytes(
            com.google.protobuf.ByteString value) {
          if (value == null) {
      throw new NullPointerException();
    }
    bitField0_ |= 0x00000400;
          syncConsistency_ = value;
          onChanged();
          return this;
        }
  
        private long size_ ;
        /**
         * <code>optional int64 size = 12;</code>
         *
         * <pre>
         ** eventsize *
         * </pre>
         */
        public boolean hasSize() {
          return ((bitField0_ & 0x00000800) == 0x00000800);
        }
        /**
         * <code>optional int64 size = 12;</code>
         *
         * <pre>
         ** eventsize *
         * </pre>
         */
        public long getSize() {
          return size_;
        }
        /**
         * <code>optional int64 size = 12;</code>
         *
         * <pre>
         ** eventsize *
         * </pre>
         */
        public Builder setSize(long value) {
          bitField0_ |= 0x00000800;
          size_ = value;
          onChanged();
          return this;
        }
        /**
         * <code>optional int64 size = 12;</code>
         *
         * <pre>
         ** eventsize *
         * </pre>
         */
        public Builder clearSize() {
          bitField0_ = (bitField0_ & ~0x00000800);
          size_ = 0L;
          onChanged();
          return this;
        }
  
        private boolean remedy_ ;
        /**
         * <code>optional bool remedy = 13;</code>
         *
         * <pre>
         ** isRemedy *
         * </pre>
         */
        public boolean hasRemedy() {
          return ((bitField0_ & 0x00001000) == 0x00001000);
        }
        /**
         * <code>optional bool remedy = 13;</code>
         *
         * <pre>
         ** isRemedy *
         * </pre>
         */
        public boolean getRemedy() {
          return remedy_;
        }
        /**
         * <code>optional bool remedy = 13;</code>
         *
         * <pre>
         ** isRemedy *
         * </pre>
         */
        public Builder setRemedy(boolean value) {
          bitField0_ |= 0x00001000;
          remedy_ = value;
          onChanged();
          return this;
        }
        /**
         * <code>optional bool remedy = 13;</code>
         *
         * <pre>
         ** isRemedy *
         * </pre>
         */
        public Builder clearRemedy() {
          bitField0_ = (bitField0_ & ~0x00001000);
          remedy_ = false;
          onChanged();
          return this;
        }
  
        private java.lang.Object sql_ = "";
        /**
         * <code>optional string sql = 14;</code>
         *
         * <pre>
         ** dml/ddl sql *
         * </pre>
         */
        public boolean hasSql() {
          return ((bitField0_ & 0x00002000) == 0x00002000);
        }
        /**
         * <code>optional string sql = 14;</code>
         *
         * <pre>
         ** dml/ddl sql *
         * </pre>
         */
        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();
            if (bs.isValidUtf8()) {
              sql_ = s;
            }
            return s;
          } else {
            return (java.lang.String) ref;
          }
        }
        /**
         * <code>optional string sql = 14;</code>
         *
         * <pre>
         ** dml/ddl sql *
         * </pre>
         */
        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>optional string sql = 14;</code>
         *
         * <pre>
         ** dml/ddl sql *
         * </pre>
         */
        public Builder setSql(
            java.lang.String value) {
          if (value == null) {
      throw new NullPointerException();
    }
    bitField0_ |= 0x00002000;
          sql_ = value;
          onChanged();
          return this;
        }
        /**
         * <code>optional string sql = 14;</code>
         *
         * <pre>
         ** dml/ddl sql *
         * </pre>
         */
        public Builder clearSql() {
          bitField0_ = (bitField0_ & ~0x00002000);
          sql_ = getDefaultInstance().getSql();
          onChanged();
          return this;
        }
        /**
         * <code>optional string sql = 14;</code>
         *
         * <pre>
         ** dml/ddl sql *
         * </pre>
         */
        public Builder setSqlBytes(
            com.google.protobuf.ByteString value) {
          if (value == null) {
      throw new NullPointerException();
    }
    bitField0_ |= 0x00002000;
          sql_ = value;
          onChanged();
          return this;
        }
  
        private java.lang.Object ddlSchemaName_ = "";
        /**
         * <code>optional string ddlSchemaName = 15;</code>
         *
         * <pre>
         ** current ddl schemaName *
         * </pre>
         */
        public boolean hasDdlSchemaName() {
          return ((bitField0_ & 0x00004000) == 0x00004000);
        }
        /**
         * <code>optional string ddlSchemaName = 15;</code>
         *
         * <pre>
         ** current ddl schemaName *
         * </pre>
         */
        public java.lang.String getDdlSchemaName() {
          java.lang.Object ref = ddlSchemaName_;
          if (!(ref instanceof java.lang.String)) {
            com.google.protobuf.ByteString bs =
                (com.google.protobuf.ByteString) ref;
            java.lang.String s = bs.toStringUtf8();
            if (bs.isValidUtf8()) {
              ddlSchemaName_ = s;
            }
            return s;
          } else {
            return (java.lang.String) ref;
          }
        }
        /**
         * <code>optional string ddlSchemaName = 15;</code>
         *
         * <pre>
         ** current ddl schemaName *
         * </pre>
         */
        public com.google.protobuf.ByteString
            getDdlSchemaNameBytes() {
          java.lang.Object ref = ddlSchemaName_;
          if (ref instanceof String) {
            com.google.protobuf.ByteString b = 
                com.google.protobuf.ByteString.copyFromUtf8(
                    (java.lang.String) ref);
            ddlSchemaName_ = b;
            return b;
          } else {
            return (com.google.protobuf.ByteString) ref;
          }
        }
        /**
         * <code>optional string ddlSchemaName = 15;</code>
         *
         * <pre>
         ** current ddl schemaName *
         * </pre>
         */
        public Builder setDdlSchemaName(
            java.lang.String value) {
          if (value == null) {
      throw new NullPointerException();
    }
    bitField0_ |= 0x00004000;
          ddlSchemaName_ = value;
          onChanged();
          return this;
        }
        /**
         * <code>optional string ddlSchemaName = 15;</code>
         *
         * <pre>
         ** current ddl schemaName *
         * </pre>
         */
        public Builder clearDdlSchemaName() {
          bitField0_ = (bitField0_ & ~0x00004000);
          ddlSchemaName_ = getDefaultInstance().getDdlSchemaName();
          onChanged();
          return this;
        }
        /**
         * <code>optional string ddlSchemaName = 15;</code>
         *
         * <pre>
         ** current ddl schemaName *
         * </pre>
         */
        public Builder setDdlSchemaNameBytes(
            com.google.protobuf.ByteString value) {
          if (value == null) {
      throw new NullPointerException();
    }
    bitField0_ |= 0x00004000;
          ddlSchemaName_ = value;
          onChanged();
          return this;
        }
  
        private java.lang.Object hint_ = "";
        /**
         * <code>optional string hint = 16;</code>
         *
         * <pre>
         ** dml/ddl sql *
         * </pre>
         */
        public boolean hasHint() {
          return ((bitField0_ & 0x00008000) == 0x00008000);
        }
        /**
         * <code>optional string hint = 16;</code>
         *
         * <pre>
         ** dml/ddl sql *
         * </pre>
         */
        public java.lang.String getHint() {
          java.lang.Object ref = hint_;
          if (!(ref instanceof java.lang.String)) {
            com.google.protobuf.ByteString bs =
                (com.google.protobuf.ByteString) ref;
            java.lang.String s = bs.toStringUtf8();
            if (bs.isValidUtf8()) {
              hint_ = s;
            }
            return s;
          } else {
            return (java.lang.String) ref;
          }
        }
        /**
         * <code>optional string hint = 16;</code>
         *
         * <pre>
         ** dml/ddl sql *
         * </pre>
         */
        public com.google.protobuf.ByteString
            getHintBytes() {
          java.lang.Object ref = hint_;
          if (ref instanceof String) {
            com.google.protobuf.ByteString b = 
                com.google.protobuf.ByteString.copyFromUtf8(
                    (java.lang.String) ref);
            hint_ = b;
            return b;
          } else {
            return (com.google.protobuf.ByteString) ref;
          }
        }
        /**
         * <code>optional string hint = 16;</code>
         *
         * <pre>
         ** dml/ddl sql *
         * </pre>
         */
        public Builder setHint(
            java.lang.String value) {
          if (value == null) {
      throw new NullPointerException();
    }
    bitField0_ |= 0x00008000;
          hint_ = value;
          onChanged();
          return this;
        }
        /**
         * <code>optional string hint = 16;</code>
         *
         * <pre>
         ** dml/ddl sql *
         * </pre>
         */
        public Builder clearHint() {
          bitField0_ = (bitField0_ & ~0x00008000);
          hint_ = getDefaultInstance().getHint();
          onChanged();
          return this;
        }
        /**
         * <code>optional string hint = 16;</code>
         *
         * <pre>
         ** dml/ddl sql *
         * </pre>
         */
        public Builder setHintBytes(
            com.google.protobuf.ByteString value) {
          if (value == null) {
      throw new NullPointerException();
    }
    bitField0_ |= 0x00008000;
          hint_ = value;
          onChanged();
          return this;
        }
  
        private boolean withoutSchema_ ;
        /**
         * <code>optional bool withoutSchema = 17;</code>
         *
         * <pre>
         ** without schema *
         * </pre>
         */
        public boolean hasWithoutSchema() {
          return ((bitField0_ & 0x00010000) == 0x00010000);
        }
        /**
         * <code>optional bool withoutSchema = 17;</code>
         *
         * <pre>
         ** without schema *
         * </pre>
         */
        public boolean getWithoutSchema() {
          return withoutSchema_;
        }
        /**
         * <code>optional bool withoutSchema = 17;</code>
         *
         * <pre>
         ** without schema *
         * </pre>
         */
        public Builder setWithoutSchema(boolean value) {
          bitField0_ |= 0x00010000;
          withoutSchema_ = value;
          onChanged();
          return this;
        }
        /**
         * <code>optional bool withoutSchema = 17;</code>
         *
         * <pre>
         ** without schema *
         * </pre>
         */
        public Builder clearWithoutSchema() {
          bitField0_ = (bitField0_ & ~0x00010000);
          withoutSchema_ = false;
          onChanged();
          return this;
        }
  
        // @@protoc_insertion_point(builder_scope:com.alibaba.otter.node.etl.model.protobuf.RowData)
      }
  
      static {
        defaultInstance = new RowData(true);
        defaultInstance.initFields();
      }
  
      // @@protoc_insertion_point(class_scope:com.alibaba.otter.node.etl.model.protobuf.RowData)
    }
  
    public interface ColumnOrBuilder extends
        // @@protoc_insertion_point(interface_extends:com.alibaba.otter.node.etl.model.protobuf.Column)
        com.google.protobuf.MessageOrBuilder {
  
      /**
       * <code>optional int32 index = 1;</code>
       *
       * <pre>
       **列下标*
       * </pre>
       */
      boolean hasIndex();
      /**
       * <code>optional int32 index = 1;</code>
       *
       * <pre>
       **列下标*
       * </pre>
       */
      int getIndex();
  
      /**
       * <code>optional string name = 2;</code>
       *
       * <pre>
       **列名*
       * </pre>
       */
      boolean hasName();
      /**
       * <code>optional string name = 2;</code>
       *
       * <pre>
       **列名*
       * </pre>
       */
      java.lang.String getName();
      /**
       * <code>optional string name = 2;</code>
       *
       * <pre>
       **列名*
       * </pre>
       */
      com.google.protobuf.ByteString
          getNameBytes();
  
      /**
       * <code>optional string value = 3;</code>
       *
       * <pre>
       **列值,timestamp,Datetime是一个long型的数字*
       * </pre>
       */
      boolean hasValue();
      /**
       * <code>optional string value = 3;</code>
       *
       * <pre>
       **列值,timestamp,Datetime是一个long型的数字*
       * </pre>
       */
      java.lang.String getValue();
      /**
       * <code>optional string value = 3;</code>
       *
       * <pre>
       **列值,timestamp,Datetime是一个long型的数字*
       * </pre>
       */
      com.google.protobuf.ByteString
          getValueBytes();
  
      /**
       * <code>optional bool isPrimaryKey = 4;</code>
       *
       * <pre>
       **当前列是否是主键*
       * </pre>
       */
      boolean hasIsPrimaryKey();
      /**
       * <code>optional bool isPrimaryKey = 4;</code>
       *
       * <pre>
       **当前列是否是主键*
       * </pre>
       */
      boolean getIsPrimaryKey();
  
      /**
       * <code>optional bool isNull = 5;</code>
       *
       * <pre>
       **当前列是否可以为空*
       * </pre>
       */
      boolean hasIsNull();
      /**
       * <code>optional bool isNull = 5;</code>
       *
       * <pre>
       **当前列是否可以为空*
       * </pre>
       */
      boolean getIsNull();
  
      /**
       * <code>optional int32 type = 6;</code>
       *
       * <pre>
       **当前列的数据类型*
       * </pre>
       */
      boolean hasType();
      /**
       * <code>optional int32 type = 6;</code>
       *
       * <pre>
       **当前列的数据类型*
       * </pre>
       */
      int getType();
  
      /**
       * <code>optional bool isUpdate = 7;</code>
       *
       * <pre>
       **当前列是否发生真实变更*
       * </pre>
       */
      boolean hasIsUpdate();
      /**
       * <code>optional bool isUpdate = 7;</code>
       *
       * <pre>
       **当前列是否发生真实变更*
       * </pre>
       */
      boolean getIsUpdate();
    }
    /**
     * Protobuf type {@code com.alibaba.otter.node.etl.model.protobuf.Column}
     */
    public static final class Column extends
        com.google.protobuf.GeneratedMessage implements
        // @@protoc_insertion_point(message_implements:com.alibaba.otter.node.etl.model.protobuf.Column)
        ColumnOrBuilder {
      // Use Column.newBuilder() to construct.
      private Column(com.google.protobuf.GeneratedMessage.Builder<?> builder) {
        super(builder);
        this.unknownFields = builder.getUnknownFields();
      }
      private Column(boolean noInit) { this.unknownFields = com.google.protobuf.UnknownFieldSet.getDefaultInstance(); }
  
      private static final Column defaultInstance;
      public static Column getDefaultInstance() {
        return defaultInstance;
      }
  
      public Column getDefaultInstanceForType() {
        return defaultInstance;
      }
  
      private final com.google.protobuf.UnknownFieldSet unknownFields;
      @java.lang.Override
      public final com.google.protobuf.UnknownFieldSet
          getUnknownFields() {
        return this.unknownFields;
      }
      private Column(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws com.google.protobuf.InvalidProtocolBufferException {
        initFields();
        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;
              default: {
                if (!parseUnknownField(input, unknownFields,
                                       extensionRegistry, tag)) {
                  done = true;
                }
                break;
              }
              case 8: {
                bitField0_ |= 0x00000001;
                index_ = input.readInt32();
                break;
              }
              case 18: {
                com.google.protobuf.ByteString bs = input.readBytes();
                bitField0_ |= 0x00000002;
                name_ = bs;
                break;
              }
              case 26: {
                com.google.protobuf.ByteString bs = input.readBytes();
                bitField0_ |= 0x00000004;
                value_ = bs;
                break;
              }
              case 32: {
                bitField0_ |= 0x00000008;
                isPrimaryKey_ = input.readBool();
                break;
              }
              case 40: {
                bitField0_ |= 0x00000010;
                isNull_ = input.readBool();
                break;
              }
              case 48: {
                bitField0_ |= 0x00000020;
                type_ = input.readInt32();
                break;
              }
              case 56: {
                bitField0_ |= 0x00000040;
                isUpdate_ = input.readBool();
                break;
              }
            }
          }
        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
          throw e.setUnfinishedMessage(this);
        } catch (java.io.IOException e) {
          throw new com.google.protobuf.InvalidProtocolBufferException(
              e.getMessage()).setUnfinishedMessage(this);
        } finally {
          this.unknownFields = unknownFields.build();
          makeExtensionsImmutable();
        }
      }
      public static final com.google.protobuf.Descriptors.Descriptor
          getDescriptor() {
        return com.alibaba.otter.node.etl.model.protobuf.BatchProto.internal_static_com_alibaba_otter_node_etl_model_protobuf_Column_descriptor;
      }
  
      protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return com.alibaba.otter.node.etl.model.protobuf.BatchProto.internal_static_com_alibaba_otter_node_etl_model_protobuf_Column_fieldAccessorTable
            .ensureFieldAccessorsInitialized(
                com.alibaba.otter.node.etl.model.protobuf.BatchProto.Column.class, com.alibaba.otter.node.etl.model.protobuf.BatchProto.Column.Builder.class);
      }
  
      public static com.google.protobuf.Parser<Column> PARSER =
          new com.google.protobuf.AbstractParser<Column>() {
        public Column parsePartialFrom(
            com.google.protobuf.CodedInputStream input,
            com.google.protobuf.ExtensionRegistryLite extensionRegistry)
            throws com.google.protobuf.InvalidProtocolBufferException {
          return new Column(input, extensionRegistry);
        }
      };
  
      @java.lang.Override
      public com.google.protobuf.Parser<Column> getParserForType() {
        return PARSER;
      }
  
      private int bitField0_;
      public static final int INDEX_FIELD_NUMBER = 1;
      private int index_;
      /**
       * <code>optional int32 index = 1;</code>
       *
       * <pre>
       **列下标*
       * </pre>
       */
      public boolean hasIndex() {
        return ((bitField0_ & 0x00000001) == 0x00000001);
      }
      /**
       * <code>optional int32 index = 1;</code>
       *
       * <pre>
       **列下标*
       * </pre>
       */
      public int getIndex() {
        return index_;
      }
  
      public static final int NAME_FIELD_NUMBER = 2;
      private java.lang.Object name_;
      /**
       * <code>optional string name = 2;</code>
       *
       * <pre>
       **列名*
       * </pre>
       */
      public boolean hasName() {
        return ((bitField0_ & 0x00000002) == 0x00000002);
      }
      /**
       * <code>optional string name = 2;</code>
       *
       * <pre>
       **列名*
       * </pre>
       */
      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();
          if (bs.isValidUtf8()) {
            name_ = s;
          }
          return s;
        }
      }
      /**
       * <code>optional string name = 2;</code>
       *
       * <pre>
       **列名*
       * </pre>
       */
      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 VALUE_FIELD_NUMBER = 3;
      private java.lang.Object value_;
      /**
       * <code>optional string value = 3;</code>
       *
       * <pre>
       **列值,timestamp,Datetime是一个long型的数字*
       * </pre>
       */
      public boolean hasValue() {
        return ((bitField0_ & 0x00000004) == 0x00000004);
      }
      /**
       * <code>optional string value = 3;</code>
       *
       * <pre>
       **列值,timestamp,Datetime是一个long型的数字*
       * </pre>
       */
      public java.lang.String getValue() {
        java.lang.Object ref = value_;
        if (ref instanceof java.lang.String) {
          return (java.lang.String) ref;
        } else {
          com.google.protobuf.ByteString bs = 
              (com.google.protobuf.ByteString) ref;
          java.lang.String s = bs.toStringUtf8();
          if (bs.isValidUtf8()) {
            value_ = s;
          }
          return s;
        }
      }
      /**
       * <code>optional string value = 3;</code>
       *
       * <pre>
       **列值,timestamp,Datetime是一个long型的数字*
       * </pre>
       */
      public com.google.protobuf.ByteString
          getValueBytes() {
        java.lang.Object ref = value_;
        if (ref instanceof java.lang.String) {
          com.google.protobuf.ByteString b = 
              com.google.protobuf.ByteString.copyFromUtf8(
                  (java.lang.String) ref);
          value_ = b;
          return b;
        } else {
          return (com.google.protobuf.ByteString) ref;
        }
      }
  
      public static final int ISPRIMARYKEY_FIELD_NUMBER = 4;
      private boolean isPrimaryKey_;
      /**
       * <code>optional bool isPrimaryKey = 4;</code>
       *
       * <pre>
       **当前列是否是主键*
       * </pre>
       */
      public boolean hasIsPrimaryKey() {
        return ((bitField0_ & 0x00000008) == 0x00000008);
      }
      /**
       * <code>optional bool isPrimaryKey = 4;</code>
       *
       * <pre>
       **当前列是否是主键*
       * </pre>
       */
      public boolean getIsPrimaryKey() {
        return isPrimaryKey_;
      }
  
      public static final int ISNULL_FIELD_NUMBER = 5;
      private boolean isNull_;
      /**
       * <code>optional bool isNull = 5;</code>
       *
       * <pre>
       **当前列是否可以为空*
       * </pre>
       */
      public boolean hasIsNull() {
        return ((bitField0_ & 0x00000010) == 0x00000010);
      }
      /**
       * <code>optional bool isNull = 5;</code>
       *
       * <pre>
       **当前列是否可以为空*
       * </pre>
       */
      public boolean getIsNull() {
        return isNull_;
      }
  
      public static final int TYPE_FIELD_NUMBER = 6;
      private int type_;
      /**
       * <code>optional int32 type = 6;</code>
       *
       * <pre>
       **当前列的数据类型*
       * </pre>
       */
      public boolean hasType() {
        return ((bitField0_ & 0x00000020) == 0x00000020);
      }
      /**
       * <code>optional int32 type = 6;</code>
       *
       * <pre>
       **当前列的数据类型*
       * </pre>
       */
      public int getType() {
        return type_;
      }
  
      public static final int ISUPDATE_FIELD_NUMBER = 7;
      private boolean isUpdate_;
      /**
       * <code>optional bool isUpdate = 7;</code>
       *
       * <pre>
       **当前列是否发生真实变更*
       * </pre>
       */
      public boolean hasIsUpdate() {
        return ((bitField0_ & 0x00000040) == 0x00000040);
      }
      /**
       * <code>optional bool isUpdate = 7;</code>
       *
       * <pre>
       **当前列是否发生真实变更*
       * </pre>
       */
      public boolean getIsUpdate() {
        return isUpdate_;
      }
  
      private void initFields() {
        index_ = 0;
        name_ = "";
        value_ = "";
        isPrimaryKey_ = false;
        isNull_ = false;
        type_ = 0;
        isUpdate_ = false;
      }
      private byte memoizedIsInitialized = -1;
      public final boolean isInitialized() {
        byte isInitialized = memoizedIsInitialized;
        if (isInitialized == 1) return true;
        if (isInitialized == 0) return false;
  
        memoizedIsInitialized = 1;
        return true;
      }
  
      public void writeTo(com.google.protobuf.CodedOutputStream output)
                          throws java.io.IOException {
        getSerializedSize();
        if (((bitField0_ & 0x00000001) == 0x00000001)) {
          output.writeInt32(1, index_);
        }
        if (((bitField0_ & 0x00000002) == 0x00000002)) {
          output.writeBytes(2, getNameBytes());
        }
        if (((bitField0_ & 0x00000004) == 0x00000004)) {
          output.writeBytes(3, getValueBytes());
        }
        if (((bitField0_ & 0x00000008) == 0x00000008)) {
          output.writeBool(4, isPrimaryKey_);
        }
        if (((bitField0_ & 0x00000010) == 0x00000010)) {
          output.writeBool(5, isNull_);
        }
        if (((bitField0_ & 0x00000020) == 0x00000020)) {
          output.writeInt32(6, type_);
        }
        if (((bitField0_ & 0x00000040) == 0x00000040)) {
          output.writeBool(7, isUpdate_);
        }
        getUnknownFields().writeTo(output);
      }
  
      private int memoizedSerializedSize = -1;
      public int getSerializedSize() {
        int size = memoizedSerializedSize;
        if (size != -1) return size;
  
        size = 0;
        if (((bitField0_ & 0x00000001) == 0x00000001)) {
          size += com.google.protobuf.CodedOutputStream
            .computeInt32Size(1, index_);
        }
        if (((bitField0_ & 0x00000002) == 0x00000002)) {
          size += com.google.protobuf.CodedOutputStream
            .computeBytesSize(2, getNameBytes());
        }
        if (((bitField0_ & 0x00000004) == 0x00000004)) {
          size += com.google.protobuf.CodedOutputStream
            .computeBytesSize(3, getValueBytes());
        }
        if (((bitField0_ & 0x00000008) == 0x00000008)) {
          size += com.google.protobuf.CodedOutputStream
            .computeBoolSize(4, isPrimaryKey_);
        }
        if (((bitField0_ & 0x00000010) == 0x00000010)) {
          size += com.google.protobuf.CodedOutputStream
            .computeBoolSize(5, isNull_);
        }
        if (((bitField0_ & 0x00000020) == 0x00000020)) {
          size += com.google.protobuf.CodedOutputStream
            .computeInt32Size(6, type_);
        }
        if (((bitField0_ & 0x00000040) == 0x00000040)) {
          size += com.google.protobuf.CodedOutputStream
            .computeBoolSize(7, isUpdate_);
        }
        size += getUnknownFields().getSerializedSize();
        memoizedSerializedSize = size;
        return size;
      }
  
      private static final long serialVersionUID = 0L;
      @java.lang.Override
      protected java.lang.Object writeReplace()
          throws java.io.ObjectStreamException {
        return super.writeReplace();
      }
  
      public static com.alibaba.otter.node.etl.model.protobuf.BatchProto.Column parseFrom(
          com.google.protobuf.ByteString data)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return PARSER.parseFrom(data);
      }
      public static com.alibaba.otter.node.etl.model.protobuf.BatchProto.Column parseFrom(
          com.google.protobuf.ByteString data,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return PARSER.parseFrom(data, extensionRegistry);
      }
      public static com.alibaba.otter.node.etl.model.protobuf.BatchProto.Column parseFrom(byte[] data)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return PARSER.parseFrom(data);
      }
      public static com.alibaba.otter.node.etl.model.protobuf.BatchProto.Column parseFrom(
          byte[] data,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return PARSER.parseFrom(data, extensionRegistry);
      }
      public static com.alibaba.otter.node.etl.model.protobuf.BatchProto.Column parseFrom(java.io.InputStream input)
          throws java.io.IOException {
        return PARSER.parseFrom(input);
      }
      public static com.alibaba.otter.node.etl.model.protobuf.BatchProto.Column parseFrom(
          java.io.InputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        return PARSER.parseFrom(input, extensionRegistry);
      }
      public static com.alibaba.otter.node.etl.model.protobuf.BatchProto.Column parseDelimitedFrom(java.io.InputStream input)
          throws java.io.IOException {
        return PARSER.parseDelimitedFrom(input);
      }
      public static com.alibaba.otter.node.etl.model.protobuf.BatchProto.Column parseDelimitedFrom(
          java.io.InputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        return PARSER.parseDelimitedFrom(input, extensionRegistry);
      }
      public static com.alibaba.otter.node.etl.model.protobuf.BatchProto.Column parseFrom(
          com.google.protobuf.CodedInputStream input)
          throws java.io.IOException {
        return PARSER.parseFrom(input);
      }
      public static com.alibaba.otter.node.etl.model.protobuf.BatchProto.Column parseFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        return PARSER.parseFrom(input, extensionRegistry);
      }
  
      public static Builder newBuilder() { return Builder.create(); }
      public Builder newBuilderForType() { return newBuilder(); }
      public static Builder newBuilder(com.alibaba.otter.node.etl.model.protobuf.BatchProto.Column prototype) {
        return newBuilder().mergeFrom(prototype);
      }
      public Builder toBuilder() { return newBuilder(this); }
  
      @java.lang.Override
      protected Builder newBuilderForType(
          com.google.protobuf.GeneratedMessage.BuilderParent parent) {
        Builder builder = new Builder(parent);
        return builder;
      }
      /**
       * Protobuf type {@code com.alibaba.otter.node.etl.model.protobuf.Column}
       */
      public static final class Builder extends
          com.google.protobuf.GeneratedMessage.Builder<Builder> implements
          // @@protoc_insertion_point(builder_implements:com.alibaba.otter.node.etl.model.protobuf.Column)
          com.alibaba.otter.node.etl.model.protobuf.BatchProto.ColumnOrBuilder {
        public static final com.google.protobuf.Descriptors.Descriptor
            getDescriptor() {
          return com.alibaba.otter.node.etl.model.protobuf.BatchProto.internal_static_com_alibaba_otter_node_etl_model_protobuf_Column_descriptor;
        }
  
        protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
            internalGetFieldAccessorTable() {
          return com.alibaba.otter.node.etl.model.protobuf.BatchProto.internal_static_com_alibaba_otter_node_etl_model_protobuf_Column_fieldAccessorTable
              .ensureFieldAccessorsInitialized(
                  com.alibaba.otter.node.etl.model.protobuf.BatchProto.Column.class, com.alibaba.otter.node.etl.model.protobuf.BatchProto.Column.Builder.class);
        }
  
        // Construct using com.alibaba.otter.node.etl.model.protobuf.BatchProto.Column.newBuilder()
        private Builder() {
          maybeForceBuilderInitialization();
        }
  
        private Builder(
            com.google.protobuf.GeneratedMessage.BuilderParent parent) {
          super(parent);
          maybeForceBuilderInitialization();
        }
        private void maybeForceBuilderInitialization() {
          if (com.google.protobuf.GeneratedMessage.alwaysUseFieldBuilders) {
          }
        }
        private static Builder create() {
          return new Builder();
        }
  
        public Builder clear() {
          super.clear();
          index_ = 0;
          bitField0_ = (bitField0_ & ~0x00000001);
          name_ = "";
          bitField0_ = (bitField0_ & ~0x00000002);
          value_ = "";
          bitField0_ = (bitField0_ & ~0x00000004);
          isPrimaryKey_ = false;
          bitField0_ = (bitField0_ & ~0x00000008);
          isNull_ = false;
          bitField0_ = (bitField0_ & ~0x00000010);
          type_ = 0;
          bitField0_ = (bitField0_ & ~0x00000020);
          isUpdate_ = false;
          bitField0_ = (bitField0_ & ~0x00000040);
          return this;
        }
  
        public Builder clone() {
          return create().mergeFrom(buildPartial());
        }
  
        public com.google.protobuf.Descriptors.Descriptor
            getDescriptorForType() {
          return com.alibaba.otter.node.etl.model.protobuf.BatchProto.internal_static_com_alibaba_otter_node_etl_model_protobuf_Column_descriptor;
        }
  
        public com.alibaba.otter.node.etl.model.protobuf.BatchProto.Column getDefaultInstanceForType() {
          return com.alibaba.otter.node.etl.model.protobuf.BatchProto.Column.getDefaultInstance();
        }
  
        public com.alibaba.otter.node.etl.model.protobuf.BatchProto.Column build() {
          com.alibaba.otter.node.etl.model.protobuf.BatchProto.Column result = buildPartial();
          if (!result.isInitialized()) {
            throw newUninitializedMessageException(result);
          }
          return result;
        }
  
        public com.alibaba.otter.node.etl.model.protobuf.BatchProto.Column buildPartial() {
          com.alibaba.otter.node.etl.model.protobuf.BatchProto.Column result = new com.alibaba.otter.node.etl.model.protobuf.BatchProto.Column(this);
          int from_bitField0_ = bitField0_;
          int to_bitField0_ = 0;
          if (((from_bitField0_ & 0x00000001) == 0x00000001)) {
            to_bitField0_ |= 0x00000001;
          }
          result.index_ = index_;
          if (((from_bitField0_ & 0x00000002) == 0x00000002)) {
            to_bitField0_ |= 0x00000002;
          }
          result.name_ = name_;
          if (((from_bitField0_ & 0x00000004) == 0x00000004)) {
            to_bitField0_ |= 0x00000004;
          }
          result.value_ = value_;
          if (((from_bitField0_ & 0x00000008) == 0x00000008)) {
            to_bitField0_ |= 0x00000008;
          }
          result.isPrimaryKey_ = isPrimaryKey_;
          if (((from_bitField0_ & 0x00000010) == 0x00000010)) {
            to_bitField0_ |= 0x00000010;
          }
          result.isNull_ = isNull_;
          if (((from_bitField0_ & 0x00000020) == 0x00000020)) {
            to_bitField0_ |= 0x00000020;
          }
          result.type_ = type_;
          if (((from_bitField0_ & 0x00000040) == 0x00000040)) {
            to_bitField0_ |= 0x00000040;
          }
          result.isUpdate_ = isUpdate_;
          result.bitField0_ = to_bitField0_;
          onBuilt();
          return result;
        }
  
        public Builder mergeFrom(com.google.protobuf.Message other) {
          if (other instanceof com.alibaba.otter.node.etl.model.protobuf.BatchProto.Column) {
            return mergeFrom((com.alibaba.otter.node.etl.model.protobuf.BatchProto.Column)other);
          } else {
            super.mergeFrom(other);
            return this;
          }
        }
  
        public Builder mergeFrom(com.alibaba.otter.node.etl.model.protobuf.BatchProto.Column other) {
          if (other == com.alibaba.otter.node.etl.model.protobuf.BatchProto.Column.getDefaultInstance()) return this;
          if (other.hasIndex()) {
            setIndex(other.getIndex());
          }
          if (other.hasName()) {
            bitField0_ |= 0x00000002;
            name_ = other.name_;
            onChanged();
          }
          if (other.hasValue()) {
            bitField0_ |= 0x00000004;
            value_ = other.value_;
            onChanged();
          }
          if (other.hasIsPrimaryKey()) {
            setIsPrimaryKey(other.getIsPrimaryKey());
          }
          if (other.hasIsNull()) {
            setIsNull(other.getIsNull());
          }
          if (other.hasType()) {
            setType(other.getType());
          }
          if (other.hasIsUpdate()) {
            setIsUpdate(other.getIsUpdate());
          }
          this.mergeUnknownFields(other.getUnknownFields());
          return this;
        }
  
        public final boolean isInitialized() {
          return true;
        }
  
        public Builder mergeFrom(
            com.google.protobuf.CodedInputStream input,
            com.google.protobuf.ExtensionRegistryLite extensionRegistry)
            throws java.io.IOException {
          com.alibaba.otter.node.etl.model.protobuf.BatchProto.Column parsedMessage = null;
          try {
            parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry);
          } catch (com.google.protobuf.InvalidProtocolBufferException e) {
            parsedMessage = (com.alibaba.otter.node.etl.model.protobuf.BatchProto.Column) e.getUnfinishedMessage();
            throw e;
          } finally {
            if (parsedMessage != null) {
              mergeFrom(parsedMessage);
            }
          }
          return this;
        }
        private int bitField0_;
  
        private int index_ ;
        /**
         * <code>optional int32 index = 1;</code>
         *
         * <pre>
         **列下标*
         * </pre>
         */
        public boolean hasIndex() {
          return ((bitField0_ & 0x00000001) == 0x00000001);
        }
        /**
         * <code>optional int32 index = 1;</code>
         *
         * <pre>
         **列下标*
         * </pre>
         */
        public int getIndex() {
          return index_;
        }
        /**
         * <code>optional int32 index = 1;</code>
         *
         * <pre>
         **列下标*
         * </pre>
         */
        public Builder setIndex(int value) {
          bitField0_ |= 0x00000001;
          index_ = value;
          onChanged();
          return this;
        }
        /**
         * <code>optional int32 index = 1;</code>
         *
         * <pre>
         **列下标*
         * </pre>
         */
        public Builder clearIndex() {
          bitField0_ = (bitField0_ & ~0x00000001);
          index_ = 0;
          onChanged();
          return this;
        }
  
        private java.lang.Object name_ = "";
        /**
         * <code>optional string name = 2;</code>
         *
         * <pre>
         **列名*
         * </pre>
         */
        public boolean hasName() {
          return ((bitField0_ & 0x00000002) == 0x00000002);
        }
        /**
         * <code>optional string name = 2;</code>
         *
         * <pre>
         **列名*
         * </pre>
         */
        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();
            if (bs.isValidUtf8()) {
              name_ = s;
            }
            return s;
          } else {
            return (java.lang.String) ref;
          }
        }
        /**
         * <code>optional string name = 2;</code>
         *
         * <pre>
         **列名*
         * </pre>
         */
        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>optional string name = 2;</code>
         *
         * <pre>
         **列名*
         * </pre>
         */
        public Builder setName(
            java.lang.String value) {
          if (value == null) {
      throw new NullPointerException();
    }
    bitField0_ |= 0x00000002;
          name_ = value;
          onChanged();
          return this;
        }
        /**
         * <code>optional string name = 2;</code>
         *
         * <pre>
         **列名*
         * </pre>
         */
        public Builder clearName() {
          bitField0_ = (bitField0_ & ~0x00000002);
          name_ = getDefaultInstance().getName();
          onChanged();
          return this;
        }
        /**
         * <code>optional string name = 2;</code>
         *
         * <pre>
         **列名*
         * </pre>
         */
        public Builder setNameBytes(
            com.google.protobuf.ByteString value) {
          if (value == null) {
      throw new NullPointerException();
    }
    bitField0_ |= 0x00000002;
          name_ = value;
          onChanged();
          return this;
        }
  
        private java.lang.Object value_ = "";
        /**
         * <code>optional string value = 3;</code>
         *
         * <pre>
         **列值,timestamp,Datetime是一个long型的数字*
         * </pre>
         */
        public boolean hasValue() {
          return ((bitField0_ & 0x00000004) == 0x00000004);
        }
        /**
         * <code>optional string value = 3;</code>
         *
         * <pre>
         **列值,timestamp,Datetime是一个long型的数字*
         * </pre>
         */
        public java.lang.String getValue() {
          java.lang.Object ref = value_;
          if (!(ref instanceof java.lang.String)) {
            com.google.protobuf.ByteString bs =
                (com.google.protobuf.ByteString) ref;
            java.lang.String s = bs.toStringUtf8();
            if (bs.isValidUtf8()) {
              value_ = s;
            }
            return s;
          } else {
            return (java.lang.String) ref;
          }
        }
        /**
         * <code>optional string value = 3;</code>
         *
         * <pre>
         **列值,timestamp,Datetime是一个long型的数字*
         * </pre>
         */
        public com.google.protobuf.ByteString
            getValueBytes() {
          java.lang.Object ref = value_;
          if (ref instanceof String) {
            com.google.protobuf.ByteString b = 
                com.google.protobuf.ByteString.copyFromUtf8(
                    (java.lang.String) ref);
            value_ = b;
            return b;
          } else {
            return (com.google.protobuf.ByteString) ref;
          }
        }
        /**
         * <code>optional string value = 3;</code>
         *
         * <pre>
         **列值,timestamp,Datetime是一个long型的数字*
         * </pre>
         */
        public Builder setValue(
            java.lang.String value) {
          if (value == null) {
      throw new NullPointerException();
    }
    bitField0_ |= 0x00000004;
          value_ = value;
          onChanged();
          return this;
        }
        /**
         * <code>optional string value = 3;</code>
         *
         * <pre>
         **列值,timestamp,Datetime是一个long型的数字*
         * </pre>
         */
        public Builder clearValue() {
          bitField0_ = (bitField0_ & ~0x00000004);
          value_ = getDefaultInstance().getValue();
          onChanged();
          return this;
        }
        /**
         * <code>optional string value = 3;</code>
         *
         * <pre>
         **列值,timestamp,Datetime是一个long型的数字*
         * </pre>
         */
        public Builder setValueBytes(
            com.google.protobuf.ByteString value) {
          if (value == null) {
      throw new NullPointerException();
    }
    bitField0_ |= 0x00000004;
          value_ = value;
          onChanged();
          return this;
        }
  
        private boolean isPrimaryKey_ ;
        /**
         * <code>optional bool isPrimaryKey = 4;</code>
         *
         * <pre>
         **当前列是否是主键*
         * </pre>
         */
        public boolean hasIsPrimaryKey() {
          return ((bitField0_ & 0x00000008) == 0x00000008);
        }
        /**
         * <code>optional bool isPrimaryKey = 4;</code>
         *
         * <pre>
         **当前列是否是主键*
         * </pre>
         */
        public boolean getIsPrimaryKey() {
          return isPrimaryKey_;
        }
        /**
         * <code>optional bool isPrimaryKey = 4;</code>
         *
         * <pre>
         **当前列是否是主键*
         * </pre>
         */
        public Builder setIsPrimaryKey(boolean value) {
          bitField0_ |= 0x00000008;
          isPrimaryKey_ = value;
          onChanged();
          return this;
        }
        /**
         * <code>optional bool isPrimaryKey = 4;</code>
         *
         * <pre>
         **当前列是否是主键*
         * </pre>
         */
        public Builder clearIsPrimaryKey() {
          bitField0_ = (bitField0_ & ~0x00000008);
          isPrimaryKey_ = false;
          onChanged();
          return this;
        }
  
        private boolean isNull_ ;
        /**
         * <code>optional bool isNull = 5;</code>
         *
         * <pre>
         **当前列是否可以为空*
         * </pre>
         */
        public boolean hasIsNull() {
          return ((bitField0_ & 0x00000010) == 0x00000010);
        }
        /**
         * <code>optional bool isNull = 5;</code>
         *
         * <pre>
         **当前列是否可以为空*
         * </pre>
         */
        public boolean getIsNull() {
          return isNull_;
        }
        /**
         * <code>optional bool isNull = 5;</code>
         *
         * <pre>
         **当前列是否可以为空*
         * </pre>
         */
        public Builder setIsNull(boolean value) {
          bitField0_ |= 0x00000010;
          isNull_ = value;
          onChanged();
          return this;
        }
        /**
         * <code>optional bool isNull = 5;</code>
         *
         * <pre>
         **当前列是否可以为空*
         * </pre>
         */
        public Builder clearIsNull() {
          bitField0_ = (bitField0_ & ~0x00000010);
          isNull_ = false;
          onChanged();
          return this;
        }
  
        private int type_ ;
        /**
         * <code>optional int32 type = 6;</code>
         *
         * <pre>
         **当前列的数据类型*
         * </pre>
         */
        public boolean hasType() {
          return ((bitField0_ & 0x00000020) == 0x00000020);
        }
        /**
         * <code>optional int32 type = 6;</code>
         *
         * <pre>
         **当前列的数据类型*
         * </pre>
         */
        public int getType() {
          return type_;
        }
        /**
         * <code>optional int32 type = 6;</code>
         *
         * <pre>
         **当前列的数据类型*
         * </pre>
         */
        public Builder setType(int value) {
          bitField0_ |= 0x00000020;
          type_ = value;
          onChanged();
          return this;
        }
        /**
         * <code>optional int32 type = 6;</code>
         *
         * <pre>
         **当前列的数据类型*
         * </pre>
         */
        public Builder clearType() {
          bitField0_ = (bitField0_ & ~0x00000020);
          type_ = 0;
          onChanged();
          return this;
        }
  
        private boolean isUpdate_ ;
        /**
         * <code>optional bool isUpdate = 7;</code>
         *
         * <pre>
         **当前列是否发生真实变更*
         * </pre>
         */
        public boolean hasIsUpdate() {
          return ((bitField0_ & 0x00000040) == 0x00000040);
        }
        /**
         * <code>optional bool isUpdate = 7;</code>
         *
         * <pre>
         **当前列是否发生真实变更*
         * </pre>
         */
        public boolean getIsUpdate() {
          return isUpdate_;
        }
        /**
         * <code>optional bool isUpdate = 7;</code>
         *
         * <pre>
         **当前列是否发生真实变更*
         * </pre>
         */
        public Builder setIsUpdate(boolean value) {
          bitField0_ |= 0x00000040;
          isUpdate_ = value;
          onChanged();
          return this;
        }
        /**
         * <code>optional bool isUpdate = 7;</code>
         *
         * <pre>
         **当前列是否发生真实变更*
         * </pre>
         */
        public Builder clearIsUpdate() {
          bitField0_ = (bitField0_ & ~0x00000040);
          isUpdate_ = false;
          onChanged();
          return this;
        }
  
        // @@protoc_insertion_point(builder_scope:com.alibaba.otter.node.etl.model.protobuf.Column)
      }
  
      static {
        defaultInstance = new Column(true);
        defaultInstance.initFields();
      }
  
      // @@protoc_insertion_point(class_scope:com.alibaba.otter.node.etl.model.protobuf.Column)
    }
  
    public interface FileDataOrBuilder extends
        // @@protoc_insertion_point(interface_extends:com.alibaba.otter.node.etl.model.protobuf.FileData)
        com.google.protobuf.MessageOrBuilder {
  
      /**
       * <code>optional string eventType = 1;</code>
       *
       * <pre>
       **变更数据的操作类型(I/U/D/C/A/E)*
       * </pre>
       */
      boolean hasEventType();
      /**
       * <code>optional string eventType = 1;</code>
       *
       * <pre>
       **变更数据的操作类型(I/U/D/C/A/E)*
       * </pre>
       */
      java.lang.String getEventType();
      /**
       * <code>optional string eventType = 1;</code>
       *
       * <pre>
       **变更数据的操作类型(I/U/D/C/A/E)*
       * </pre>
       */
      com.google.protobuf.ByteString
          getEventTypeBytes();
  
      /**
       * <code>optional string namespace = 2;</code>
       *
       * <pre>
       **Aranda中特有的*
       * </pre>
       */
      boolean hasNamespace();
      /**
       * <code>optional string namespace = 2;</code>
       *
       * <pre>
       **Aranda中特有的*
       * </pre>
       */
      java.lang.String getNamespace();
      /**
       * <code>optional string namespace = 2;</code>
       *
       * <pre>
       **Aranda中特有的*
       * </pre>
       */
      com.google.protobuf.ByteString
          getNamespaceBytes();
  
      /**
       * <code>optional string path = 3;</code>
       *
       * <pre>
       **文件的路径*
       * </pre>
       */
      boolean hasPath();
      /**
       * <code>optional string path = 3;</code>
       *
       * <pre>
       **文件的路径*
       * </pre>
       */
      java.lang.String getPath();
      /**
       * <code>optional string path = 3;</code>
       *
       * <pre>
       **文件的路径*
       * </pre>
       */
      com.google.protobuf.ByteString
          getPathBytes();
  
      /**
       * <code>optional int64 lastModifiedTime = 4;</code>
       *
       * <pre>
       **文件最后一次修改时间*
       * </pre>
       */
      boolean hasLastModifiedTime();
      /**
       * <code>optional int64 lastModifiedTime = 4;</code>
       *
       * <pre>
       **文件最后一次修改时间*
       * </pre>
       */
      long getLastModifiedTime();
  
      /**
       * <code>optional int64 size = 5;</code>
       *
       * <pre>
       **文件的大小*
       * </pre>
       */
      boolean hasSize();
      /**
       * <code>optional int64 size = 5;</code>
       *
       * <pre>
       **文件的大小*
       * </pre>
       */
      long getSize();
  
      /**
       * <code>optional int64 tableId = 6;</code>
       */
      boolean hasTableId();
      /**
       * <code>optional int64 tableId = 6;</code>
       */
      long getTableId();
  
      /**
       * <code>optional int64 pairId = 9;</code>
       *
       * <pre>
       **映射规则id*
       * </pre>
       */
      boolean hasPairId();
      /**
       * <code>optional int64 pairId = 9;</code>
       *
       * <pre>
       **映射规则id*
       * </pre>
       */
      long getPairId();
    }
    /**
     * Protobuf type {@code com.alibaba.otter.node.etl.model.protobuf.FileData}
     *
     * <pre>
     **文件对象*
     * </pre>
     */
    public static final class FileData extends
        com.google.protobuf.GeneratedMessage implements
        // @@protoc_insertion_point(message_implements:com.alibaba.otter.node.etl.model.protobuf.FileData)
        FileDataOrBuilder {
      // Use FileData.newBuilder() to construct.
      private FileData(com.google.protobuf.GeneratedMessage.Builder<?> builder) {
        super(builder);
        this.unknownFields = builder.getUnknownFields();
      }
      private FileData(boolean noInit) { this.unknownFields = com.google.protobuf.UnknownFieldSet.getDefaultInstance(); }
  
      private static final FileData defaultInstance;
      public static FileData getDefaultInstance() {
        return defaultInstance;
      }
  
      public FileData getDefaultInstanceForType() {
        return defaultInstance;
      }
  
      private final com.google.protobuf.UnknownFieldSet unknownFields;
      @java.lang.Override
      public final com.google.protobuf.UnknownFieldSet
          getUnknownFields() {
        return this.unknownFields;
      }
      private FileData(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws com.google.protobuf.InvalidProtocolBufferException {
        initFields();
        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;
              default: {
                if (!parseUnknownField(input, unknownFields,
                                       extensionRegistry, tag)) {
                  done = true;
                }
                break;
              }
              case 10: {
                com.google.protobuf.ByteString bs = input.readBytes();
                bitField0_ |= 0x00000001;
                eventType_ = bs;
                break;
              }
              case 18: {
                com.google.protobuf.ByteString bs = input.readBytes();
                bitField0_ |= 0x00000002;
                namespace_ = bs;
                break;
              }
              case 26: {
                com.google.protobuf.ByteString bs = input.readBytes();
                bitField0_ |= 0x00000004;
                path_ = bs;
                break;
              }
              case 32: {
                bitField0_ |= 0x00000008;
                lastModifiedTime_ = input.readInt64();
                break;
              }
              case 40: {
                bitField0_ |= 0x00000010;
                size_ = input.readInt64();
                break;
              }
              case 48: {
                bitField0_ |= 0x00000020;
                tableId_ = input.readInt64();
                break;
              }
              case 72: {
                bitField0_ |= 0x00000040;
                pairId_ = input.readInt64();
                break;
              }
            }
          }
        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
          throw e.setUnfinishedMessage(this);
        } catch (java.io.IOException e) {
          throw new com.google.protobuf.InvalidProtocolBufferException(
              e.getMessage()).setUnfinishedMessage(this);
        } finally {
          this.unknownFields = unknownFields.build();
          makeExtensionsImmutable();
        }
      }
      public static final com.google.protobuf.Descriptors.Descriptor
          getDescriptor() {
        return com.alibaba.otter.node.etl.model.protobuf.BatchProto.internal_static_com_alibaba_otter_node_etl_model_protobuf_FileData_descriptor;
      }
  
      protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return com.alibaba.otter.node.etl.model.protobuf.BatchProto.internal_static_com_alibaba_otter_node_etl_model_protobuf_FileData_fieldAccessorTable
            .ensureFieldAccessorsInitialized(
                com.alibaba.otter.node.etl.model.protobuf.BatchProto.FileData.class, com.alibaba.otter.node.etl.model.protobuf.BatchProto.FileData.Builder.class);
      }
  
      public static com.google.protobuf.Parser<FileData> PARSER =
          new com.google.protobuf.AbstractParser<FileData>() {
        public FileData parsePartialFrom(
            com.google.protobuf.CodedInputStream input,
            com.google.protobuf.ExtensionRegistryLite extensionRegistry)
            throws com.google.protobuf.InvalidProtocolBufferException {
          return new FileData(input, extensionRegistry);
        }
      };
  
      @java.lang.Override
      public com.google.protobuf.Parser<FileData> getParserForType() {
        return PARSER;
      }
  
      private int bitField0_;
      public static final int EVENTTYPE_FIELD_NUMBER = 1;
      private java.lang.Object eventType_;
      /**
       * <code>optional string eventType = 1;</code>
       *
       * <pre>
       **变更数据的操作类型(I/U/D/C/A/E)*
       * </pre>
       */
      public boolean hasEventType() {
        return ((bitField0_ & 0x00000001) == 0x00000001);
      }
      /**
       * <code>optional string eventType = 1;</code>
       *
       * <pre>
       **变更数据的操作类型(I/U/D/C/A/E)*
       * </pre>
       */
      public java.lang.String getEventType() {
        java.lang.Object ref = eventType_;
        if (ref instanceof java.lang.String) {
          return (java.lang.String) ref;
        } else {
          com.google.protobuf.ByteString bs = 
              (com.google.protobuf.ByteString) ref;
          java.lang.String s = bs.toStringUtf8();
          if (bs.isValidUtf8()) {
            eventType_ = s;
          }
          return s;
        }
      }
      /**
       * <code>optional string eventType = 1;</code>
       *
       * <pre>
       **变更数据的操作类型(I/U/D/C/A/E)*
       * </pre>
       */
      public com.google.protobuf.ByteString
          getEventTypeBytes() {
        java.lang.Object ref = eventType_;
        if (ref instanceof java.lang.String) {
          com.google.protobuf.ByteString b = 
              com.google.protobuf.ByteString.copyFromUtf8(
                  (java.lang.String) ref);
          eventType_ = b;
          return b;
        } else {
          return (com.google.protobuf.ByteString) ref;
        }
      }
  
      public static final int NAMESPACE_FIELD_NUMBER = 2;
      private java.lang.Object namespace_;
      /**
       * <code>optional string namespace = 2;</code>
       *
       * <pre>
       **Aranda中特有的*
       * </pre>
       */
      public boolean hasNamespace() {
        return ((bitField0_ & 0x00000002) == 0x00000002);
      }
      /**
       * <code>optional string namespace = 2;</code>
       *
       * <pre>
       **Aranda中特有的*
       * </pre>
       */
      public java.lang.String getNamespace() {
        java.lang.Object ref = namespace_;
        if (ref instanceof java.lang.String) {
          return (java.lang.String) ref;
        } else {
          com.google.protobuf.ByteString bs = 
              (com.google.protobuf.ByteString) ref;
          java.lang.String s = bs.toStringUtf8();
          if (bs.isValidUtf8()) {
            namespace_ = s;
          }
          return s;
        }
      }
      /**
       * <code>optional string namespace = 2;</code>
       *
       * <pre>
       **Aranda中特有的*
       * </pre>
       */
      public com.google.protobuf.ByteString
          getNamespaceBytes() {
        java.lang.Object ref = namespace_;
        if (ref instanceof java.lang.String) {
          com.google.protobuf.ByteString b = 
              com.google.protobuf.ByteString.copyFromUtf8(
                  (java.lang.String) ref);
          namespace_ = b;
          return b;
        } else {
          return (com.google.protobuf.ByteString) ref;
        }
      }
  
      public static final int PATH_FIELD_NUMBER = 3;
      private java.lang.Object path_;
      /**
       * <code>optional string path = 3;</code>
       *
       * <pre>
       **文件的路径*
       * </pre>
       */
      public boolean hasPath() {
        return ((bitField0_ & 0x00000004) == 0x00000004);
      }
      /**
       * <code>optional string path = 3;</code>
       *
       * <pre>
       **文件的路径*
       * </pre>
       */
      public java.lang.String getPath() {
        java.lang.Object ref = path_;
        if (ref instanceof java.lang.String) {
          return (java.lang.String) ref;
        } else {
          com.google.protobuf.ByteString bs = 
              (com.google.protobuf.ByteString) ref;
          java.lang.String s = bs.toStringUtf8();
          if (bs.isValidUtf8()) {
            path_ = s;
          }
          return s;
        }
      }
      /**
       * <code>optional string path = 3;</code>
       *
       * <pre>
       **文件的路径*
       * </pre>
       */
      public com.google.protobuf.ByteString
          getPathBytes() {
        java.lang.Object ref = path_;
        if (ref instanceof java.lang.String) {
          com.google.protobuf.ByteString b = 
              com.google.protobuf.ByteString.copyFromUtf8(
                  (java.lang.String) ref);
          path_ = b;
          return b;
        } else {
          return (com.google.protobuf.ByteString) ref;
        }
      }
  
      public static final int LASTMODIFIEDTIME_FIELD_NUMBER = 4;
      private long lastModifiedTime_;
      /**
       * <code>optional int64 lastModifiedTime = 4;</code>
       *
       * <pre>
       **文件最后一次修改时间*
       * </pre>
       */
      public boolean hasLastModifiedTime() {
        return ((bitField0_ & 0x00000008) == 0x00000008);
      }
      /**
       * <code>optional int64 lastModifiedTime = 4;</code>
       *
       * <pre>
       **文件最后一次修改时间*
       * </pre>
       */
      public long getLastModifiedTime() {
        return lastModifiedTime_;
      }
  
      public static final int SIZE_FIELD_NUMBER = 5;
      private long size_;
      /**
       * <code>optional int64 size = 5;</code>
       *
       * <pre>
       **文件的大小*
       * </pre>
       */
      public boolean hasSize() {
        return ((bitField0_ & 0x00000010) == 0x00000010);
      }
      /**
       * <code>optional int64 size = 5;</code>
       *
       * <pre>
       **文件的大小*
       * </pre>
       */
      public long getSize() {
        return size_;
      }
  
      public static final int TABLEID_FIELD_NUMBER = 6;
      private long tableId_;
      /**
       * <code>optional int64 tableId = 6;</code>
       */
      public boolean hasTableId() {
        return ((bitField0_ & 0x00000020) == 0x00000020);
      }
      /**
       * <code>optional int64 tableId = 6;</code>
       */
      public long getTableId() {
        return tableId_;
      }
  
      public static final int PAIRID_FIELD_NUMBER = 9;
      private long pairId_;
      /**
       * <code>optional int64 pairId = 9;</code>
       *
       * <pre>
       **映射规则id*
       * </pre>
       */
      public boolean hasPairId() {
        return ((bitField0_ & 0x00000040) == 0x00000040);
      }
      /**
       * <code>optional int64 pairId = 9;</code>
       *
       * <pre>
       **映射规则id*
       * </pre>
       */
      public long getPairId() {
        return pairId_;
      }
  
      private void initFields() {
        eventType_ = "";
        namespace_ = "";
        path_ = "";
        lastModifiedTime_ = 0L;
        size_ = 0L;
        tableId_ = 0L;
        pairId_ = 0L;
      }
      private byte memoizedIsInitialized = -1;
      public final boolean isInitialized() {
        byte isInitialized = memoizedIsInitialized;
        if (isInitialized == 1) return true;
        if (isInitialized == 0) return false;
  
        memoizedIsInitialized = 1;
        return true;
      }
  
      public void writeTo(com.google.protobuf.CodedOutputStream output)
                          throws java.io.IOException {
        getSerializedSize();
        if (((bitField0_ & 0x00000001) == 0x00000001)) {
          output.writeBytes(1, getEventTypeBytes());
        }
        if (((bitField0_ & 0x00000002) == 0x00000002)) {
          output.writeBytes(2, getNamespaceBytes());
        }
        if (((bitField0_ & 0x00000004) == 0x00000004)) {
          output.writeBytes(3, getPathBytes());
        }
        if (((bitField0_ & 0x00000008) == 0x00000008)) {
          output.writeInt64(4, lastModifiedTime_);
        }
        if (((bitField0_ & 0x00000010) == 0x00000010)) {
          output.writeInt64(5, size_);
        }
        if (((bitField0_ & 0x00000020) == 0x00000020)) {
          output.writeInt64(6, tableId_);
        }
        if (((bitField0_ & 0x00000040) == 0x00000040)) {
          output.writeInt64(9, pairId_);
        }
        getUnknownFields().writeTo(output);
      }
  
      private int memoizedSerializedSize = -1;
      public int getSerializedSize() {
        int size = memoizedSerializedSize;
        if (size != -1) return size;
  
        size = 0;
        if (((bitField0_ & 0x00000001) == 0x00000001)) {
          size += com.google.protobuf.CodedOutputStream
            .computeBytesSize(1, getEventTypeBytes());
        }
        if (((bitField0_ & 0x00000002) == 0x00000002)) {
          size += com.google.protobuf.CodedOutputStream
            .computeBytesSize(2, getNamespaceBytes());
        }
        if (((bitField0_ & 0x00000004) == 0x00000004)) {
          size += com.google.protobuf.CodedOutputStream
            .computeBytesSize(3, getPathBytes());
        }
        if (((bitField0_ & 0x00000008) == 0x00000008)) {
          size += com.google.protobuf.CodedOutputStream
            .computeInt64Size(4, lastModifiedTime_);
        }
        if (((bitField0_ & 0x00000010) == 0x00000010)) {
          size += com.google.protobuf.CodedOutputStream
            .computeInt64Size(5, size_);
        }
        if (((bitField0_ & 0x00000020) == 0x00000020)) {
          size += com.google.protobuf.CodedOutputStream
            .computeInt64Size(6, tableId_);
        }
        if (((bitField0_ & 0x00000040) == 0x00000040)) {
          size += com.google.protobuf.CodedOutputStream
            .computeInt64Size(9, pairId_);
        }
        size += getUnknownFields().getSerializedSize();
        memoizedSerializedSize = size;
        return size;
      }
  
      private static final long serialVersionUID = 0L;
      @java.lang.Override
      protected java.lang.Object writeReplace()
          throws java.io.ObjectStreamException {
        return super.writeReplace();
      }
  
      public static com.alibaba.otter.node.etl.model.protobuf.BatchProto.FileData parseFrom(
          com.google.protobuf.ByteString data)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return PARSER.parseFrom(data);
      }
      public static com.alibaba.otter.node.etl.model.protobuf.BatchProto.FileData parseFrom(
          com.google.protobuf.ByteString data,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return PARSER.parseFrom(data, extensionRegistry);
      }
      public static com.alibaba.otter.node.etl.model.protobuf.BatchProto.FileData parseFrom(byte[] data)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return PARSER.parseFrom(data);
      }
      public static com.alibaba.otter.node.etl.model.protobuf.BatchProto.FileData parseFrom(
          byte[] data,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return PARSER.parseFrom(data, extensionRegistry);
      }
      public static com.alibaba.otter.node.etl.model.protobuf.BatchProto.FileData parseFrom(java.io.InputStream input)
          throws java.io.IOException {
        return PARSER.parseFrom(input);
      }
      public static com.alibaba.otter.node.etl.model.protobuf.BatchProto.FileData parseFrom(
          java.io.InputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        return PARSER.parseFrom(input, extensionRegistry);
      }
      public static com.alibaba.otter.node.etl.model.protobuf.BatchProto.FileData parseDelimitedFrom(java.io.InputStream input)
          throws java.io.IOException {
        return PARSER.parseDelimitedFrom(input);
      }
      public static com.alibaba.otter.node.etl.model.protobuf.BatchProto.FileData parseDelimitedFrom(
          java.io.InputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        return PARSER.parseDelimitedFrom(input, extensionRegistry);
      }
      public static com.alibaba.otter.node.etl.model.protobuf.BatchProto.FileData parseFrom(
          com.google.protobuf.CodedInputStream input)
          throws java.io.IOException {
        return PARSER.parseFrom(input);
      }
      public static com.alibaba.otter.node.etl.model.protobuf.BatchProto.FileData parseFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        return PARSER.parseFrom(input, extensionRegistry);
      }
  
      public static Builder newBuilder() { return Builder.create(); }
      public Builder newBuilderForType() { return newBuilder(); }
      public static Builder newBuilder(com.alibaba.otter.node.etl.model.protobuf.BatchProto.FileData prototype) {
        return newBuilder().mergeFrom(prototype);
      }
      public Builder toBuilder() { return newBuilder(this); }
  
      @java.lang.Override
      protected Builder newBuilderForType(
          com.google.protobuf.GeneratedMessage.BuilderParent parent) {
        Builder builder = new Builder(parent);
        return builder;
      }
      /**
       * Protobuf type {@code com.alibaba.otter.node.etl.model.protobuf.FileData}
       *
       * <pre>
       **文件对象*
       * </pre>
       */
      public static final class Builder extends
          com.google.protobuf.GeneratedMessage.Builder<Builder> implements
          // @@protoc_insertion_point(builder_implements:com.alibaba.otter.node.etl.model.protobuf.FileData)
          com.alibaba.otter.node.etl.model.protobuf.BatchProto.FileDataOrBuilder {
        public static final com.google.protobuf.Descriptors.Descriptor
            getDescriptor() {
          return com.alibaba.otter.node.etl.model.protobuf.BatchProto.internal_static_com_alibaba_otter_node_etl_model_protobuf_FileData_descriptor;
        }
  
        protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
            internalGetFieldAccessorTable() {
          return com.alibaba.otter.node.etl.model.protobuf.BatchProto.internal_static_com_alibaba_otter_node_etl_model_protobuf_FileData_fieldAccessorTable
              .ensureFieldAccessorsInitialized(
                  com.alibaba.otter.node.etl.model.protobuf.BatchProto.FileData.class, com.alibaba.otter.node.etl.model.protobuf.BatchProto.FileData.Builder.class);
        }
  
        // Construct using com.alibaba.otter.node.etl.model.protobuf.BatchProto.FileData.newBuilder()
        private Builder() {
          maybeForceBuilderInitialization();
        }
  
        private Builder(
            com.google.protobuf.GeneratedMessage.BuilderParent parent) {
          super(parent);
          maybeForceBuilderInitialization();
        }
        private void maybeForceBuilderInitialization() {
          if (com.google.protobuf.GeneratedMessage.alwaysUseFieldBuilders) {
          }
        }
        private static Builder create() {
          return new Builder();
        }
  
        public Builder clear() {
          super.clear();
          eventType_ = "";
          bitField0_ = (bitField0_ & ~0x00000001);
          namespace_ = "";
          bitField0_ = (bitField0_ & ~0x00000002);
          path_ = "";
          bitField0_ = (bitField0_ & ~0x00000004);
          lastModifiedTime_ = 0L;
          bitField0_ = (bitField0_ & ~0x00000008);
          size_ = 0L;
          bitField0_ = (bitField0_ & ~0x00000010);
          tableId_ = 0L;
          bitField0_ = (bitField0_ & ~0x00000020);
          pairId_ = 0L;
          bitField0_ = (bitField0_ & ~0x00000040);
          return this;
        }
  
        public Builder clone() {
          return create().mergeFrom(buildPartial());
        }
  
        public com.google.protobuf.Descriptors.Descriptor
            getDescriptorForType() {
          return com.alibaba.otter.node.etl.model.protobuf.BatchProto.internal_static_com_alibaba_otter_node_etl_model_protobuf_FileData_descriptor;
        }
  
        public com.alibaba.otter.node.etl.model.protobuf.BatchProto.FileData getDefaultInstanceForType() {
          return com.alibaba.otter.node.etl.model.protobuf.BatchProto.FileData.getDefaultInstance();
        }
  
        public com.alibaba.otter.node.etl.model.protobuf.BatchProto.FileData build() {
          com.alibaba.otter.node.etl.model.protobuf.BatchProto.FileData result = buildPartial();
          if (!result.isInitialized()) {
            throw newUninitializedMessageException(result);
          }
          return result;
        }
  
        public com.alibaba.otter.node.etl.model.protobuf.BatchProto.FileData buildPartial() {
          com.alibaba.otter.node.etl.model.protobuf.BatchProto.FileData result = new com.alibaba.otter.node.etl.model.protobuf.BatchProto.FileData(this);
          int from_bitField0_ = bitField0_;
          int to_bitField0_ = 0;
          if (((from_bitField0_ & 0x00000001) == 0x00000001)) {
            to_bitField0_ |= 0x00000001;
          }
          result.eventType_ = eventType_;
          if (((from_bitField0_ & 0x00000002) == 0x00000002)) {
            to_bitField0_ |= 0x00000002;
          }
          result.namespace_ = namespace_;
          if (((from_bitField0_ & 0x00000004) == 0x00000004)) {
            to_bitField0_ |= 0x00000004;
          }
          result.path_ = path_;
          if (((from_bitField0_ & 0x00000008) == 0x00000008)) {
            to_bitField0_ |= 0x00000008;
          }
          result.lastModifiedTime_ = lastModifiedTime_;
          if (((from_bitField0_ & 0x00000010) == 0x00000010)) {
            to_bitField0_ |= 0x00000010;
          }
          result.size_ = size_;
          if (((from_bitField0_ & 0x00000020) == 0x00000020)) {
            to_bitField0_ |= 0x00000020;
          }
          result.tableId_ = tableId_;
          if (((from_bitField0_ & 0x00000040) == 0x00000040)) {
            to_bitField0_ |= 0x00000040;
          }
          result.pairId_ = pairId_;
          result.bitField0_ = to_bitField0_;
          onBuilt();
          return result;
        }
  
        public Builder mergeFrom(com.google.protobuf.Message other) {
          if (other instanceof com.alibaba.otter.node.etl.model.protobuf.BatchProto.FileData) {
            return mergeFrom((com.alibaba.otter.node.etl.model.protobuf.BatchProto.FileData)other);
          } else {
            super.mergeFrom(other);
            return this;
          }
        }
  
        public Builder mergeFrom(com.alibaba.otter.node.etl.model.protobuf.BatchProto.FileData other) {
          if (other == com.alibaba.otter.node.etl.model.protobuf.BatchProto.FileData.getDefaultInstance()) return this;
          if (other.hasEventType()) {
            bitField0_ |= 0x00000001;
            eventType_ = other.eventType_;
            onChanged();
          }
          if (other.hasNamespace()) {
            bitField0_ |= 0x00000002;
            namespace_ = other.namespace_;
            onChanged();
          }
          if (other.hasPath()) {
            bitField0_ |= 0x00000004;
            path_ = other.path_;
            onChanged();
          }
          if (other.hasLastModifiedTime()) {
            setLastModifiedTime(other.getLastModifiedTime());
          }
          if (other.hasSize()) {
            setSize(other.getSize());
          }
          if (other.hasTableId()) {
            setTableId(other.getTableId());
          }
          if (other.hasPairId()) {
            setPairId(other.getPairId());
          }
          this.mergeUnknownFields(other.getUnknownFields());
          return this;
        }
  
        public final boolean isInitialized() {
          return true;
        }
  
        public Builder mergeFrom(
            com.google.protobuf.CodedInputStream input,
            com.google.protobuf.ExtensionRegistryLite extensionRegistry)
            throws java.io.IOException {
          com.alibaba.otter.node.etl.model.protobuf.BatchProto.FileData parsedMessage = null;
          try {
            parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry);
          } catch (com.google.protobuf.InvalidProtocolBufferException e) {
            parsedMessage = (com.alibaba.otter.node.etl.model.protobuf.BatchProto.FileData) e.getUnfinishedMessage();
            throw e;
          } finally {
            if (parsedMessage != null) {
              mergeFrom(parsedMessage);
            }
          }
          return this;
        }
        private int bitField0_;
  
        private java.lang.Object eventType_ = "";
        /**
         * <code>optional string eventType = 1;</code>
         *
         * <pre>
         **变更数据的操作类型(I/U/D/C/A/E)*
         * </pre>
         */
        public boolean hasEventType() {
          return ((bitField0_ & 0x00000001) == 0x00000001);
        }
        /**
         * <code>optional string eventType = 1;</code>
         *
         * <pre>
         **变更数据的操作类型(I/U/D/C/A/E)*
         * </pre>
         */
        public java.lang.String getEventType() {
          java.lang.Object ref = eventType_;
          if (!(ref instanceof java.lang.String)) {
            com.google.protobuf.ByteString bs =
                (com.google.protobuf.ByteString) ref;
            java.lang.String s = bs.toStringUtf8();
            if (bs.isValidUtf8()) {
              eventType_ = s;
            }
            return s;
          } else {
            return (java.lang.String) ref;
          }
        }
        /**
         * <code>optional string eventType = 1;</code>
         *
         * <pre>
         **变更数据的操作类型(I/U/D/C/A/E)*
         * </pre>
         */
        public com.google.protobuf.ByteString
            getEventTypeBytes() {
          java.lang.Object ref = eventType_;
          if (ref instanceof String) {
            com.google.protobuf.ByteString b = 
                com.google.protobuf.ByteString.copyFromUtf8(
                    (java.lang.String) ref);
            eventType_ = b;
            return b;
          } else {
            return (com.google.protobuf.ByteString) ref;
          }
        }
        /**
         * <code>optional string eventType = 1;</code>
         *
         * <pre>
         **变更数据的操作类型(I/U/D/C/A/E)*
         * </pre>
         */
        public Builder setEventType(
            java.lang.String value) {
          if (value == null) {
      throw new NullPointerException();
    }
    bitField0_ |= 0x00000001;
          eventType_ = value;
          onChanged();
          return this;
        }
        /**
         * <code>optional string eventType = 1;</code>
         *
         * <pre>
         **变更数据的操作类型(I/U/D/C/A/E)*
         * </pre>
         */
        public Builder clearEventType() {
          bitField0_ = (bitField0_ & ~0x00000001);
          eventType_ = getDefaultInstance().getEventType();
          onChanged();
          return this;
        }
        /**
         * <code>optional string eventType = 1;</code>
         *
         * <pre>
         **变更数据的操作类型(I/U/D/C/A/E)*
         * </pre>
         */
        public Builder setEventTypeBytes(
            com.google.protobuf.ByteString value) {
          if (value == null) {
      throw new NullPointerException();
    }
    bitField0_ |= 0x00000001;
          eventType_ = value;
          onChanged();
          return this;
        }
  
        private java.lang.Object namespace_ = "";
        /**
         * <code>optional string namespace = 2;</code>
         *
         * <pre>
         **Aranda中特有的*
         * </pre>
         */
        public boolean hasNamespace() {
          return ((bitField0_ & 0x00000002) == 0x00000002);
        }
        /**
         * <code>optional string namespace = 2;</code>
         *
         * <pre>
         **Aranda中特有的*
         * </pre>
         */
        public java.lang.String getNamespace() {
          java.lang.Object ref = namespace_;
          if (!(ref instanceof java.lang.String)) {
            com.google.protobuf.ByteString bs =
                (com.google.protobuf.ByteString) ref;
            java.lang.String s = bs.toStringUtf8();
            if (bs.isValidUtf8()) {
              namespace_ = s;
            }
            return s;
          } else {
            return (java.lang.String) ref;
          }
        }
        /**
         * <code>optional string namespace = 2;</code>
         *
         * <pre>
         **Aranda中特有的*
         * </pre>
         */
        public com.google.protobuf.ByteString
            getNamespaceBytes() {
          java.lang.Object ref = namespace_;
          if (ref instanceof String) {
            com.google.protobuf.ByteString b = 
                com.google.protobuf.ByteString.copyFromUtf8(
                    (java.lang.String) ref);
            namespace_ = b;
            return b;
          } else {
            return (com.google.protobuf.ByteString) ref;
          }
        }
        /**
         * <code>optional string namespace = 2;</code>
         *
         * <pre>
         **Aranda中特有的*
         * </pre>
         */
        public Builder setNamespace(
            java.lang.String value) {
          if (value == null) {
      throw new NullPointerException();
    }
    bitField0_ |= 0x00000002;
          namespace_ = value;
          onChanged();
          return this;
        }
        /**
         * <code>optional string namespace = 2;</code>
         *
         * <pre>
         **Aranda中特有的*
         * </pre>
         */
        public Builder clearNamespace() {
          bitField0_ = (bitField0_ & ~0x00000002);
          namespace_ = getDefaultInstance().getNamespace();
          onChanged();
          return this;
        }
        /**
         * <code>optional string namespace = 2;</code>
         *
         * <pre>
         **Aranda中特有的*
         * </pre>
         */
        public Builder setNamespaceBytes(
            com.google.protobuf.ByteString value) {
          if (value == null) {
      throw new NullPointerException();
    }
    bitField0_ |= 0x00000002;
          namespace_ = value;
          onChanged();
          return this;
        }
  
        private java.lang.Object path_ = "";
        /**
         * <code>optional string path = 3;</code>
         *
         * <pre>
         **文件的路径*
         * </pre>
         */
        public boolean hasPath() {
          return ((bitField0_ & 0x00000004) == 0x00000004);
        }
        /**
         * <code>optional string path = 3;</code>
         *
         * <pre>
         **文件的路径*
         * </pre>
         */
        public java.lang.String getPath() {
          java.lang.Object ref = path_;
          if (!(ref instanceof java.lang.String)) {
            com.google.protobuf.ByteString bs =
                (com.google.protobuf.ByteString) ref;
            java.lang.String s = bs.toStringUtf8();
            if (bs.isValidUtf8()) {
              path_ = s;
            }
            return s;
          } else {
            return (java.lang.String) ref;
          }
        }
        /**
         * <code>optional string path = 3;</code>
         *
         * <pre>
         **文件的路径*
         * </pre>
         */
        public com.google.protobuf.ByteString
            getPathBytes() {
          java.lang.Object ref = path_;
          if (ref instanceof String) {
            com.google.protobuf.ByteString b = 
                com.google.protobuf.ByteString.copyFromUtf8(
                    (java.lang.String) ref);
            path_ = b;
            return b;
          } else {
            return (com.google.protobuf.ByteString) ref;
          }
        }
        /**
         * <code>optional string path = 3;</code>
         *
         * <pre>
         **文件的路径*
         * </pre>
         */
        public Builder setPath(
            java.lang.String value) {
          if (value == null) {
      throw new NullPointerException();
    }
    bitField0_ |= 0x00000004;
          path_ = value;
          onChanged();
          return this;
        }
        /**
         * <code>optional string path = 3;</code>
         *
         * <pre>
         **文件的路径*
         * </pre>
         */
        public Builder clearPath() {
          bitField0_ = (bitField0_ & ~0x00000004);
          path_ = getDefaultInstance().getPath();
          onChanged();
          return this;
        }
        /**
         * <code>optional string path = 3;</code>
         *
         * <pre>
         **文件的路径*
         * </pre>
         */
        public Builder setPathBytes(
            com.google.protobuf.ByteString value) {
          if (value == null) {
      throw new NullPointerException();
    }
    bitField0_ |= 0x00000004;
          path_ = value;
          onChanged();
          return this;
        }
  
        private long lastModifiedTime_ ;
        /**
         * <code>optional int64 lastModifiedTime = 4;</code>
         *
         * <pre>
         **文件最后一次修改时间*
         * </pre>
         */
        public boolean hasLastModifiedTime() {
          return ((bitField0_ & 0x00000008) == 0x00000008);
        }
        /**
         * <code>optional int64 lastModifiedTime = 4;</code>
         *
         * <pre>
         **文件最后一次修改时间*
         * </pre>
         */
        public long getLastModifiedTime() {
          return lastModifiedTime_;
        }
        /**
         * <code>optional int64 lastModifiedTime = 4;</code>
         *
         * <pre>
         **文件最后一次修改时间*
         * </pre>
         */
        public Builder setLastModifiedTime(long value) {
          bitField0_ |= 0x00000008;
          lastModifiedTime_ = value;
          onChanged();
          return this;
        }
        /**
         * <code>optional int64 lastModifiedTime = 4;</code>
         *
         * <pre>
         **文件最后一次修改时间*
         * </pre>
         */
        public Builder clearLastModifiedTime() {
          bitField0_ = (bitField0_ & ~0x00000008);
          lastModifiedTime_ = 0L;
          onChanged();
          return this;
        }
  
        private long size_ ;
        /**
         * <code>optional int64 size = 5;</code>
         *
         * <pre>
         **文件的大小*
         * </pre>
         */
        public boolean hasSize() {
          return ((bitField0_ & 0x00000010) == 0x00000010);
        }
        /**
         * <code>optional int64 size = 5;</code>
         *
         * <pre>
         **文件的大小*
         * </pre>
         */
        public long getSize() {
          return size_;
        }
        /**
         * <code>optional int64 size = 5;</code>
         *
         * <pre>
         **文件的大小*
         * </pre>
         */
        public Builder setSize(long value) {
          bitField0_ |= 0x00000010;
          size_ = value;
          onChanged();
          return this;
        }
        /**
         * <code>optional int64 size = 5;</code>
         *
         * <pre>
         **文件的大小*
         * </pre>
         */
        public Builder clearSize() {
          bitField0_ = (bitField0_ & ~0x00000010);
          size_ = 0L;
          onChanged();
          return this;
        }
  
        private long tableId_ ;
        /**
         * <code>optional int64 tableId = 6;</code>
         */
        public boolean hasTableId() {
          return ((bitField0_ & 0x00000020) == 0x00000020);
        }
        /**
         * <code>optional int64 tableId = 6;</code>
         */
        public long getTableId() {
          return tableId_;
        }
        /**
         * <code>optional int64 tableId = 6;</code>
         */
        public Builder setTableId(long value) {
          bitField0_ |= 0x00000020;
          tableId_ = value;
          onChanged();
          return this;
        }
        /**
         * <code>optional int64 tableId = 6;</code>
         */
        public Builder clearTableId() {
          bitField0_ = (bitField0_ & ~0x00000020);
          tableId_ = 0L;
          onChanged();
          return this;
        }
  
        private long pairId_ ;
        /**
         * <code>optional int64 pairId = 9;</code>
         *
         * <pre>
         **映射规则id*
         * </pre>
         */
        public boolean hasPairId() {
          return ((bitField0_ & 0x00000040) == 0x00000040);
        }
        /**
         * <code>optional int64 pairId = 9;</code>
         *
         * <pre>
         **映射规则id*
         * </pre>
         */
        public long getPairId() {
          return pairId_;
        }
        /**
         * <code>optional int64 pairId = 9;</code>
         *
         * <pre>
         **映射规则id*
         * </pre>
         */
        public Builder setPairId(long value) {
          bitField0_ |= 0x00000040;
          pairId_ = value;
          onChanged();
          return this;
        }
        /**
         * <code>optional int64 pairId = 9;</code>
         *
         * <pre>
         **映射规则id*
         * </pre>
         */
        public Builder clearPairId() {
          bitField0_ = (bitField0_ & ~0x00000040);
          pairId_ = 0L;
          onChanged();
          return this;
        }
  
        // @@protoc_insertion_point(builder_scope:com.alibaba.otter.node.etl.model.protobuf.FileData)
      }
  
      static {
        defaultInstance = new FileData(true);
        defaultInstance.initFields();
      }
  
      // @@protoc_insertion_point(class_scope:com.alibaba.otter.node.etl.model.protobuf.FileData)
    }
  
    private static final com.google.protobuf.Descriptors.Descriptor
      internal_static_com_alibaba_otter_node_etl_model_protobuf_Identity_descriptor;
    private static
      com.google.protobuf.GeneratedMessage.FieldAccessorTable
        internal_static_com_alibaba_otter_node_etl_model_protobuf_Identity_fieldAccessorTable;
    private static final com.google.protobuf.Descriptors.Descriptor
      internal_static_com_alibaba_otter_node_etl_model_protobuf_RowBatch_descriptor;
    private static
      com.google.protobuf.GeneratedMessage.FieldAccessorTable
        internal_static_com_alibaba_otter_node_etl_model_protobuf_RowBatch_fieldAccessorTable;
    private static final com.google.protobuf.Descriptors.Descriptor
      internal_static_com_alibaba_otter_node_etl_model_protobuf_FileBatch_descriptor;
    private static
      com.google.protobuf.GeneratedMessage.FieldAccessorTable
        internal_static_com_alibaba_otter_node_etl_model_protobuf_FileBatch_fieldAccessorTable;
    private static final com.google.protobuf.Descriptors.Descriptor
      internal_static_com_alibaba_otter_node_etl_model_protobuf_RowData_descriptor;
    private static
      com.google.protobuf.GeneratedMessage.FieldAccessorTable
        internal_static_com_alibaba_otter_node_etl_model_protobuf_RowData_fieldAccessorTable;
    private static final com.google.protobuf.Descriptors.Descriptor
      internal_static_com_alibaba_otter_node_etl_model_protobuf_Column_descriptor;
    private static
      com.google.protobuf.GeneratedMessage.FieldAccessorTable
        internal_static_com_alibaba_otter_node_etl_model_protobuf_Column_fieldAccessorTable;
    private static final com.google.protobuf.Descriptors.Descriptor
      internal_static_com_alibaba_otter_node_etl_model_protobuf_FileData_descriptor;
    private static
      com.google.protobuf.GeneratedMessage.FieldAccessorTable
        internal_static_com_alibaba_otter_node_etl_model_protobuf_FileData_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\013Batch.proto\022)com.alibaba.otter.node.et" +
        "l.model.protobuf\"D\n\010Identity\022\021\n\tchannelI" +
        "d\030\001 \001(\003\022\022\n\npipelineId\030\002 \001(\003\022\021\n\tprocessId" +
        "\030\003 \001(\003\"\223\001\n\010RowBatch\022E\n\010identity\030\001 \001(\01323." +
        "com.alibaba.otter.node.etl.model.protobu" +
        "f.Identity\022@\n\004rows\030\002 \003(\01322.com.alibaba.o" +
        "tter.node.etl.model.protobuf.RowData\"\226\001\n" +
        "\tFileBatch\022E\n\010identity\030\001 \001(\01323.com.aliba" +
        "ba.otter.node.etl.model.protobuf.Identit" +
        "y\022B\n\005files\030\002 \003(\01323.com.alibaba.otter.nod",
        "e.etl.model.protobuf.FileData\"\324\003\n\007RowDat" +
        "a\022\017\n\007tableId\030\001 \001(\003\022\022\n\nschemaName\030\002 \001(\t\022\021" +
        "\n\ttableName\030\003 \001(\t\022\021\n\teventType\030\004 \001(\t\022B\n\007" +
        "oldKeys\030\005 \003(\01321.com.alibaba.otter.node.e" +
        "tl.model.protobuf.Column\022?\n\004keys\030\006 \003(\01321" +
        ".com.alibaba.otter.node.etl.model.protob" +
        "uf.Column\022B\n\007columns\030\007 \003(\01321.com.alibaba" +
        ".otter.node.etl.model.protobuf.Column\022\023\n" +
        "\013executeTime\030\010 \001(\003\022\016\n\006pairId\030\t \001(\003\022\020\n\010sy" +
        "ncMode\030\n \001(\t\022\027\n\017syncConsistency\030\013 \001(\t\022\014\n",
        "\004size\030\014 \001(\003\022\016\n\006remedy\030\r \001(\010\022\013\n\003sql\030\016 \001(\t" +
        "\022\025\n\rddlSchemaName\030\017 \001(\t\022\014\n\004hint\030\020 \001(\t\022\025\n" +
        "\rwithoutSchema\030\021 \001(\010\"z\n\006Column\022\r\n\005index\030" +
        "\001 \001(\005\022\014\n\004name\030\002 \001(\t\022\r\n\005value\030\003 \001(\t\022\024\n\014is" +
        "PrimaryKey\030\004 \001(\010\022\016\n\006isNull\030\005 \001(\010\022\014\n\004type" +
        "\030\006 \001(\005\022\020\n\010isUpdate\030\007 \001(\010\"\207\001\n\010FileData\022\021\n" +
        "\teventType\030\001 \001(\t\022\021\n\tnamespace\030\002 \001(\t\022\014\n\004p" +
        "ath\030\003 \001(\t\022\030\n\020lastModifiedTime\030\004 \001(\003\022\014\n\004s" +
        "ize\030\005 \001(\003\022\017\n\007tableId\030\006 \001(\003\022\016\n\006pairId\030\t \001" +
        "(\003B\016B\nBatchProtoH\001"
      };
      com.google.protobuf.Descriptors.FileDescriptor.InternalDescriptorAssigner assigner =
          new com.google.protobuf.Descriptors.FileDescriptor.    InternalDescriptorAssigner() {
            public com.google.protobuf.ExtensionRegistry assignDescriptors(
                com.google.protobuf.Descriptors.FileDescriptor root) {
              descriptor = root;
              return null;
            }
          };
      com.google.protobuf.Descriptors.FileDescriptor
        .internalBuildGeneratedFileFrom(descriptorData,
          new com.google.protobuf.Descriptors.FileDescriptor[] {
          }, assigner);
      internal_static_com_alibaba_otter_node_etl_model_protobuf_Identity_descriptor =
        getDescriptor().getMessageTypes().get(0);
      internal_static_com_alibaba_otter_node_etl_model_protobuf_Identity_fieldAccessorTable = new
        com.google.protobuf.GeneratedMessage.FieldAccessorTable(
          internal_static_com_alibaba_otter_node_etl_model_protobuf_Identity_descriptor,
          new java.lang.String[] { "ChannelId", "PipelineId", "ProcessId", });
      internal_static_com_alibaba_otter_node_etl_model_protobuf_RowBatch_descriptor =
        getDescriptor().getMessageTypes().get(1);
      internal_static_com_alibaba_otter_node_etl_model_protobuf_RowBatch_fieldAccessorTable = new
        com.google.protobuf.GeneratedMessage.FieldAccessorTable(
          internal_static_com_alibaba_otter_node_etl_model_protobuf_RowBatch_descriptor,
          new java.lang.String[] { "Identity", "Rows", });
      internal_static_com_alibaba_otter_node_etl_model_protobuf_FileBatch_descriptor =
        getDescriptor().getMessageTypes().get(2);
      internal_static_com_alibaba_otter_node_etl_model_protobuf_FileBatch_fieldAccessorTable = new
        com.google.protobuf.GeneratedMessage.FieldAccessorTable(
          internal_static_com_alibaba_otter_node_etl_model_protobuf_FileBatch_descriptor,
          new java.lang.String[] { "Identity", "Files", });
      internal_static_com_alibaba_otter_node_etl_model_protobuf_RowData_descriptor =
        getDescriptor().getMessageTypes().get(3);
      internal_static_com_alibaba_otter_node_etl_model_protobuf_RowData_fieldAccessorTable = new
        com.google.protobuf.GeneratedMessage.FieldAccessorTable(
          internal_static_com_alibaba_otter_node_etl_model_protobuf_RowData_descriptor,
          new java.lang.String[] { "TableId", "SchemaName", "TableName", "EventType", "OldKeys", "Keys", "Columns", "ExecuteTime", "PairId", "SyncMode", "SyncConsistency", "Size", "Remedy", "Sql", "DdlSchemaName", "Hint", "WithoutSchema", });
      internal_static_com_alibaba_otter_node_etl_model_protobuf_Column_descriptor =
        getDescriptor().getMessageTypes().get(4);
      internal_static_com_alibaba_otter_node_etl_model_protobuf_Column_fieldAccessorTable = new
        com.google.protobuf.GeneratedMessage.FieldAccessorTable(
          internal_static_com_alibaba_otter_node_etl_model_protobuf_Column_descriptor,
          new java.lang.String[] { "Index", "Name", "Value", "IsPrimaryKey", "IsNull", "Type", "IsUpdate", });
      internal_static_com_alibaba_otter_node_etl_model_protobuf_FileData_descriptor =
        getDescriptor().getMessageTypes().get(5);
      internal_static_com_alibaba_otter_node_etl_model_protobuf_FileData_fieldAccessorTable = new
        com.google.protobuf.GeneratedMessage.FieldAccessorTable(
          internal_static_com_alibaba_otter_node_etl_model_protobuf_FileData_descriptor,
          new java.lang.String[] { "EventType", "Namespace", "Path", "LastModifiedTime", "Size", "TableId", "PairId", });
    }
  
    // @@protoc_insertion_point(outer_class_scope)
  }
  