content: // Generated by the protocol buffer compiler.  DO NOT EDIT!
  // source: lot/ddl.proto
  
  package apsara.odps.lot;
  
  public final class DDLProtos {
    private DDLProtos() {}
    public static void registerAllExtensions(
        com.google.protobuf.ExtensionRegistry registry) {
    }
    public interface CreateTableAsOrBuilder
        extends com.google.protobuf.MessageOrBuilder {
      
      // required .apsara.odps.lot.LogicalOperatorTree Lot = 1;
      boolean hasLot();
      Lot.LogicalOperatorTree getLot();
      Lot.LogicalOperatorTreeOrBuilder getLotOrBuilder();
      
      // repeated group Properties = 2 {
      java.util.List<CreateTableAs.Properties>
          getPropertiesList();
      CreateTableAs.Properties getProperties(int index);
      int getPropertiesCount();
      java.util.List<? extends CreateTableAs.PropertiesOrBuilder>
          getPropertiesOrBuilderList();
      CreateTableAs.PropertiesOrBuilder getPropertiesOrBuilder(
          int index);
      
      // optional bool IfNotExists = 3 [default = false];
      boolean hasIfNotExists();
      boolean getIfNotExists();
      
      // optional int32 LifeCycle = 4;
      boolean hasLifeCycle();
      int getLifeCycle();
    }
    public static final class CreateTableAs extends
        com.google.protobuf.GeneratedMessage
        implements CreateTableAsOrBuilder {
      // Use CreateTableAs.newBuilder() to construct.
      private CreateTableAs(Builder builder) {
        super(builder);
      }
      private CreateTableAs(boolean noInit) {}
      
      private static final CreateTableAs defaultInstance;
      public static CreateTableAs getDefaultInstance() {
        return defaultInstance;
      }
      
      public CreateTableAs getDefaultInstanceForType() {
        return defaultInstance;
      }
      
      public static final com.google.protobuf.Descriptors.Descriptor
          getDescriptor() {
        return DDLProtos.internal_static_apsara_odps_lot_CreateTableAs_descriptor;
      }
      
      protected FieldAccessorTable
          internalGetFieldAccessorTable() {
        return DDLProtos.internal_static_apsara_odps_lot_CreateTableAs_fieldAccessorTable;
      }
      
      public interface PropertiesOrBuilder
          extends com.google.protobuf.MessageOrBuilder {
        
        // required string Key = 1;
        boolean hasKey();
        String getKey();
        
        // required string Value = 2;
        boolean hasValue();
        String getValue();
      }
      public static final class Properties extends
          com.google.protobuf.GeneratedMessage
          implements PropertiesOrBuilder {
        // Use Properties.newBuilder() to construct.
        private Properties(Builder builder) {
          super(builder);
        }
        private Properties(boolean noInit) {}
        
        private static final Properties defaultInstance;
        public static Properties getDefaultInstance() {
          return defaultInstance;
        }
        
        public Properties getDefaultInstanceForType() {
          return defaultInstance;
        }
        
        public static final com.google.protobuf.Descriptors.Descriptor
            getDescriptor() {
          return DDLProtos.internal_static_apsara_odps_lot_CreateTableAs_Properties_descriptor;
        }
        
        protected FieldAccessorTable
            internalGetFieldAccessorTable() {
          return DDLProtos.internal_static_apsara_odps_lot_CreateTableAs_Properties_fieldAccessorTable;
        }
        
        private int bitField0_;
        // required string Key = 1;
        public static final int KEY_FIELD_NUMBER = 1;
        private Object key_;
        public boolean hasKey() {
          return ((bitField0_ & 0x00000001) == 0x00000001);
        }
        public String getKey() {
          Object ref = key_;
          if (ref instanceof String) {
            return (String) ref;
          } else {
            com.google.protobuf.ByteString bs = 
                (com.google.protobuf.ByteString) ref;
            String s = bs.toStringUtf8();
            if (com.google.protobuf.Internal.isValidUtf8(bs)) {
              key_ = s;
            }
            return s;
          }
        }
        private com.google.protobuf.ByteString getKeyBytes() {
          Object ref = key_;
          if (ref instanceof String) {
            com.google.protobuf.ByteString b = 
                com.google.protobuf.ByteString.copyFromUtf8((String) ref);
            key_ = b;
            return b;
          } else {
            return (com.google.protobuf.ByteString) ref;
          }
        }
        
        // required string Value = 2;
        public static final int VALUE_FIELD_NUMBER = 2;
        private Object value_;
        public boolean hasValue() {
          return ((bitField0_ & 0x00000002) == 0x00000002);
        }
        public String getValue() {
          Object ref = value_;
          if (ref instanceof String) {
            return (String) ref;
          } else {
            com.google.protobuf.ByteString bs = 
                (com.google.protobuf.ByteString) ref;
            String s = bs.toStringUtf8();
            if (com.google.protobuf.Internal.isValidUtf8(bs)) {
              value_ = s;
            }
            return s;
          }
        }
        private com.google.protobuf.ByteString getValueBytes() {
          Object ref = value_;
          if (ref instanceof String) {
            com.google.protobuf.ByteString b = 
                com.google.protobuf.ByteString.copyFromUtf8((String) ref);
            value_ = b;
            return b;
          } else {
            return (com.google.protobuf.ByteString) ref;
          }
        }
        
        private void initFields() {
          key_ = "";
          value_ = "";
        }
        private byte memoizedIsInitialized = -1;
        public final boolean isInitialized() {
          byte isInitialized = memoizedIsInitialized;
          if (isInitialized != -1) return isInitialized == 1;
          
          if (!hasKey()) {
            memoizedIsInitialized = 0;
            return false;
          }
          if (!hasValue()) {
            memoizedIsInitialized = 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, getKeyBytes());
          }
          if (((bitField0_ & 0x00000002) == 0x00000002)) {
            output.writeBytes(2, getValueBytes());
          }
          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, getKeyBytes());
          }
          if (((bitField0_ & 0x00000002) == 0x00000002)) {
            size += com.google.protobuf.CodedOutputStream
              .computeBytesSize(2, getValueBytes());
          }
          size += getUnknownFields().getSerializedSize();
          memoizedSerializedSize = size;
          return size;
        }
        
        private static final long serialVersionUID = 0L;
        @Override
        protected Object writeReplace()
            throws java.io.ObjectStreamException {
          return super.writeReplace();
        }
        
        public static Properties parseFrom(
            com.google.protobuf.ByteString data)
            throws com.google.protobuf.InvalidProtocolBufferException {
          return newBuilder().mergeFrom(data).buildParsed();
        }
        public static Properties parseFrom(
            com.google.protobuf.ByteString data,
            com.google.protobuf.ExtensionRegistryLite extensionRegistry)
            throws com.google.protobuf.InvalidProtocolBufferException {
          return newBuilder().mergeFrom(data, extensionRegistry)
                   .buildParsed();
        }
        public static Properties parseFrom(byte[] data)
            throws com.google.protobuf.InvalidProtocolBufferException {
          return newBuilder().mergeFrom(data).buildParsed();
        }
        public static Properties parseFrom(
            byte[] data,
            com.google.protobuf.ExtensionRegistryLite extensionRegistry)
            throws com.google.protobuf.InvalidProtocolBufferException {
          return newBuilder().mergeFrom(data, extensionRegistry)
                   .buildParsed();
        }
        public static Properties parseFrom(java.io.InputStream input)
            throws java.io.IOException {
          return newBuilder().mergeFrom(input).buildParsed();
        }
        public static Properties parseFrom(
            java.io.InputStream input,
            com.google.protobuf.ExtensionRegistryLite extensionRegistry)
            throws java.io.IOException {
          return newBuilder().mergeFrom(input, extensionRegistry)
                   .buildParsed();
        }
        public static Properties parseDelimitedFrom(java.io.InputStream input)
            throws java.io.IOException {
          Builder builder = newBuilder();
          if (builder.mergeDelimitedFrom(input)) {
            return builder.buildParsed();
          } else {
            return null;
          }
        }
        public static Properties parseDelimitedFrom(
            java.io.InputStream input,
            com.google.protobuf.ExtensionRegistryLite extensionRegistry)
            throws java.io.IOException {
          Builder builder = newBuilder();
          if (builder.mergeDelimitedFrom(input, extensionRegistry)) {
            return builder.buildParsed();
          } else {
            return null;
          }
        }
        public static Properties parseFrom(
            com.google.protobuf.CodedInputStream input)
            throws java.io.IOException {
          return newBuilder().mergeFrom(input).buildParsed();
        }
        public static Properties parseFrom(
            com.google.protobuf.CodedInputStream input,
            com.google.protobuf.ExtensionRegistryLite extensionRegistry)
            throws java.io.IOException {
          return newBuilder().mergeFrom(input, extensionRegistry)
                   .buildParsed();
        }
        
        public static Builder newBuilder() { return Builder.create(); }
        public Builder newBuilderForType() { return newBuilder(); }
        public static Builder newBuilder(Properties prototype) {
          return newBuilder().mergeFrom(prototype);
        }
        public Builder toBuilder() { return newBuilder(this); }
        
        @Override
        protected Builder newBuilderForType(
            BuilderParent parent) {
          Builder builder = new Builder(parent);
          return builder;
        }
        public static final class Builder extends
            com.google.protobuf.GeneratedMessage.Builder<Builder>
           implements PropertiesOrBuilder {
          public static final com.google.protobuf.Descriptors.Descriptor
              getDescriptor() {
            return DDLProtos.internal_static_apsara_odps_lot_CreateTableAs_Properties_descriptor;
          }
          
          protected FieldAccessorTable
              internalGetFieldAccessorTable() {
            return DDLProtos.internal_static_apsara_odps_lot_CreateTableAs_Properties_fieldAccessorTable;
          }
          
          // Construct using apsara.odps.lot.DDLProtos.CreateTableAs.Properties.newBuilder()
          private Builder() {
            maybeForceBuilderInitialization();
          }
          
          private Builder(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();
            key_ = "";
            bitField0_ = (bitField0_ & ~0x00000001);
            value_ = "";
            bitField0_ = (bitField0_ & ~0x00000002);
            return this;
          }
          
          public Builder clone() {
            return create().mergeFrom(buildPartial());
          }
          
          public com.google.protobuf.Descriptors.Descriptor
              getDescriptorForType() {
            return Properties.getDescriptor();
          }
          
          public Properties getDefaultInstanceForType() {
            return Properties.getDefaultInstance();
          }
          
          public Properties build() {
            Properties result = buildPartial();
            if (!result.isInitialized()) {
              throw newUninitializedMessageException(result);
            }
            return result;
          }
          
          private Properties buildParsed()
              throws com.google.protobuf.InvalidProtocolBufferException {
            Properties result = buildPartial();
            if (!result.isInitialized()) {
              throw newUninitializedMessageException(
                result).asInvalidProtocolBufferException();
            }
            return result;
          }
          
          public Properties buildPartial() {
            Properties result = new Properties(this);
            int from_bitField0_ = bitField0_;
            int to_bitField0_ = 0;
            if (((from_bitField0_ & 0x00000001) == 0x00000001)) {
              to_bitField0_ |= 0x00000001;
            }
            result.key_ = key_;
            if (((from_bitField0_ & 0x00000002) == 0x00000002)) {
              to_bitField0_ |= 0x00000002;
            }
            result.value_ = value_;
            result.bitField0_ = to_bitField0_;
            onBuilt();
            return result;
          }
          
          public Builder mergeFrom(com.google.protobuf.Message other) {
            if (other instanceof Properties) {
              return mergeFrom((Properties)other);
            } else {
              super.mergeFrom(other);
              return this;
            }
          }
          
          public Builder mergeFrom(Properties other) {
            if (other == Properties.getDefaultInstance()) return this;
            if (other.hasKey()) {
              setKey(other.getKey());
            }
            if (other.hasValue()) {
              setValue(other.getValue());
            }
            this.mergeUnknownFields(other.getUnknownFields());
            return this;
          }
          
          public final boolean isInitialized() {
            if (!hasKey()) {
              
              return false;
            }
            if (!hasValue()) {
              
              return false;
            }
            return true;
          }
          
          public Builder mergeFrom(
              com.google.protobuf.CodedInputStream input,
              com.google.protobuf.ExtensionRegistryLite extensionRegistry)
              throws java.io.IOException {
            com.google.protobuf.UnknownFieldSet.Builder unknownFields =
              com.google.protobuf.UnknownFieldSet.newBuilder(
                this.getUnknownFields());
            while (true) {
              int tag = input.readTag();
              switch (tag) {
                case 0:
                  this.setUnknownFields(unknownFields.build());
                  onChanged();
                  return this;
                default: {
                  if (!parseUnknownField(input, unknownFields,
                                         extensionRegistry, tag)) {
                    this.setUnknownFields(unknownFields.build());
                    onChanged();
                    return this;
                  }
                  break;
                }
                case 10: {
                  bitField0_ |= 0x00000001;
                  key_ = input.readBytes();
                  break;
                }
                case 18: {
                  bitField0_ |= 0x00000002;
                  value_ = input.readBytes();
                  break;
                }
              }
            }
          }
          
          private int bitField0_;
          
          // required string Key = 1;
          private Object key_ = "";
          public boolean hasKey() {
            return ((bitField0_ & 0x00000001) == 0x00000001);
          }
          public String getKey() {
            Object ref = key_;
            if (!(ref instanceof String)) {
              String s = ((com.google.protobuf.ByteString) ref).toStringUtf8();
              key_ = s;
              return s;
            } else {
              return (String) ref;
            }
          }
          public Builder setKey(String value) {
            if (value == null) {
      throw new NullPointerException();
    }
    bitField0_ |= 0x00000001;
            key_ = value;
            onChanged();
            return this;
          }
          public Builder clearKey() {
            bitField0_ = (bitField0_ & ~0x00000001);
            key_ = getDefaultInstance().getKey();
            onChanged();
            return this;
          }
          void setKey(com.google.protobuf.ByteString value) {
            bitField0_ |= 0x00000001;
            key_ = value;
            onChanged();
          }
          
          // required string Value = 2;
          private Object value_ = "";
          public boolean hasValue() {
            return ((bitField0_ & 0x00000002) == 0x00000002);
          }
          public String getValue() {
            Object ref = value_;
            if (!(ref instanceof String)) {
              String s = ((com.google.protobuf.ByteString) ref).toStringUtf8();
              value_ = s;
              return s;
            } else {
              return (String) ref;
            }
          }
          public Builder setValue(String value) {
            if (value == null) {
      throw new NullPointerException();
    }
    bitField0_ |= 0x00000002;
            value_ = value;
            onChanged();
            return this;
          }
          public Builder clearValue() {
            bitField0_ = (bitField0_ & ~0x00000002);
            value_ = getDefaultInstance().getValue();
            onChanged();
            return this;
          }
          void setValue(com.google.protobuf.ByteString value) {
            bitField0_ |= 0x00000002;
            value_ = value;
            onChanged();
          }
          
          // @@protoc_insertion_point(builder_scope:apsara.odps.lot.CreateTableAs.Properties)
        }
        
        static {
          defaultInstance = new Properties(true);
          defaultInstance.initFields();
        }
        
        // @@protoc_insertion_point(class_scope:apsara.odps.lot.CreateTableAs.Properties)
      }
      
      private int bitField0_;
      // required .apsara.odps.lot.LogicalOperatorTree Lot = 1;
      public static final int LOT_FIELD_NUMBER = 1;
      private Lot.LogicalOperatorTree lot_;
      public boolean hasLot() {
        return ((bitField0_ & 0x00000001) == 0x00000001);
      }
      public Lot.LogicalOperatorTree getLot() {
        return lot_;
      }
      public Lot.LogicalOperatorTreeOrBuilder getLotOrBuilder() {
        return lot_;
      }
      
      // repeated group Properties = 2 {
      public static final int PROPERTIES_FIELD_NUMBER = 2;
      private java.util.List<Properties> properties_;
      public java.util.List<Properties> getPropertiesList() {
        return properties_;
      }
      public java.util.List<? extends PropertiesOrBuilder>
          getPropertiesOrBuilderList() {
        return properties_;
      }
      public int getPropertiesCount() {
        return properties_.size();
      }
      public Properties getProperties(int index) {
        return properties_.get(index);
      }
      public PropertiesOrBuilder getPropertiesOrBuilder(
          int index) {
        return properties_.get(index);
      }
      
      // optional bool IfNotExists = 3 [default = false];
      public static final int IFNOTEXISTS_FIELD_NUMBER = 3;
      private boolean ifNotExists_;
      public boolean hasIfNotExists() {
        return ((bitField0_ & 0x00000002) == 0x00000002);
      }
      public boolean getIfNotExists() {
        return ifNotExists_;
      }
      
      // optional int32 LifeCycle = 4;
      public static final int LIFECYCLE_FIELD_NUMBER = 4;
      private int lifeCycle_;
      public boolean hasLifeCycle() {
        return ((bitField0_ & 0x00000004) == 0x00000004);
      }
      public int getLifeCycle() {
        return lifeCycle_;
      }
      
      private void initFields() {
        lot_ = Lot.LogicalOperatorTree.getDefaultInstance();
        properties_ = java.util.Collections.emptyList();
        ifNotExists_ = false;
        lifeCycle_ = 0;
      }
      private byte memoizedIsInitialized = -1;
      public final boolean isInitialized() {
        byte isInitialized = memoizedIsInitialized;
        if (isInitialized != -1) return isInitialized == 1;
        
        if (!hasLot()) {
          memoizedIsInitialized = 0;
          return false;
        }
        if (!getLot().isInitialized()) {
          memoizedIsInitialized = 0;
          return false;
        }
        for (int i = 0; i < getPropertiesCount(); i++) {
          if (!getProperties(i).isInitialized()) {
            memoizedIsInitialized = 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, lot_);
        }
        for (int i = 0; i < properties_.size(); i++) {
          output.writeGroup(2, properties_.get(i));
        }
        if (((bitField0_ & 0x00000002) == 0x00000002)) {
          output.writeBool(3, ifNotExists_);
        }
        if (((bitField0_ & 0x00000004) == 0x00000004)) {
          output.writeInt32(4, lifeCycle_);
        }
        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, lot_);
        }
        for (int i = 0; i < properties_.size(); i++) {
          size += com.google.protobuf.CodedOutputStream
            .computeGroupSize(2, properties_.get(i));
        }
        if (((bitField0_ & 0x00000002) == 0x00000002)) {
          size += com.google.protobuf.CodedOutputStream
            .computeBoolSize(3, ifNotExists_);
        }
        if (((bitField0_ & 0x00000004) == 0x00000004)) {
          size += com.google.protobuf.CodedOutputStream
            .computeInt32Size(4, lifeCycle_);
        }
        size += getUnknownFields().getSerializedSize();
        memoizedSerializedSize = size;
        return size;
      }
      
      private static final long serialVersionUID = 0L;
      @Override
      protected Object writeReplace()
          throws java.io.ObjectStreamException {
        return super.writeReplace();
      }
      
      public static CreateTableAs parseFrom(
          com.google.protobuf.ByteString data)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return newBuilder().mergeFrom(data).buildParsed();
      }
      public static CreateTableAs parseFrom(
          com.google.protobuf.ByteString data,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return newBuilder().mergeFrom(data, extensionRegistry)
                 .buildParsed();
      }
      public static CreateTableAs parseFrom(byte[] data)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return newBuilder().mergeFrom(data).buildParsed();
      }
      public static CreateTableAs parseFrom(
          byte[] data,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return newBuilder().mergeFrom(data, extensionRegistry)
                 .buildParsed();
      }
      public static CreateTableAs parseFrom(java.io.InputStream input)
          throws java.io.IOException {
        return newBuilder().mergeFrom(input).buildParsed();
      }
      public static CreateTableAs parseFrom(
          java.io.InputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        return newBuilder().mergeFrom(input, extensionRegistry)
                 .buildParsed();
      }
      public static CreateTableAs parseDelimitedFrom(java.io.InputStream input)
          throws java.io.IOException {
        Builder builder = newBuilder();
        if (builder.mergeDelimitedFrom(input)) {
          return builder.buildParsed();
        } else {
          return null;
        }
      }
      public static CreateTableAs parseDelimitedFrom(
          java.io.InputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        Builder builder = newBuilder();
        if (builder.mergeDelimitedFrom(input, extensionRegistry)) {
          return builder.buildParsed();
        } else {
          return null;
        }
      }
      public static CreateTableAs parseFrom(
          com.google.protobuf.CodedInputStream input)
          throws java.io.IOException {
        return newBuilder().mergeFrom(input).buildParsed();
      }
      public static CreateTableAs parseFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        return newBuilder().mergeFrom(input, extensionRegistry)
                 .buildParsed();
      }
      
      public static Builder newBuilder() { return Builder.create(); }
      public Builder newBuilderForType() { return newBuilder(); }
      public static Builder newBuilder(CreateTableAs prototype) {
        return newBuilder().mergeFrom(prototype);
      }
      public Builder toBuilder() { return newBuilder(this); }
      
      @Override
      protected Builder newBuilderForType(
          BuilderParent parent) {
        Builder builder = new Builder(parent);
        return builder;
      }
      public static final class Builder extends
          com.google.protobuf.GeneratedMessage.Builder<Builder>
         implements CreateTableAsOrBuilder {
        public static final com.google.protobuf.Descriptors.Descriptor
            getDescriptor() {
          return DDLProtos.internal_static_apsara_odps_lot_CreateTableAs_descriptor;
        }
        
        protected FieldAccessorTable
            internalGetFieldAccessorTable() {
          return DDLProtos.internal_static_apsara_odps_lot_CreateTableAs_fieldAccessorTable;
        }
        
        // Construct using apsara.odps.lot.DDLProtos.CreateTableAs.newBuilder()
        private Builder() {
          maybeForceBuilderInitialization();
        }
        
        private Builder(BuilderParent parent) {
          super(parent);
          maybeForceBuilderInitialization();
        }
        private void maybeForceBuilderInitialization() {
          if (com.google.protobuf.GeneratedMessage.alwaysUseFieldBuilders) {
            getLotFieldBuilder();
            getPropertiesFieldBuilder();
          }
        }
        private static Builder create() {
          return new Builder();
        }
        
        public Builder clear() {
          super.clear();
          if (lotBuilder_ == null) {
            lot_ = Lot.LogicalOperatorTree.getDefaultInstance();
          } else {
            lotBuilder_.clear();
          }
          bitField0_ = (bitField0_ & ~0x00000001);
          if (propertiesBuilder_ == null) {
            properties_ = java.util.Collections.emptyList();
            bitField0_ = (bitField0_ & ~0x00000002);
          } else {
            propertiesBuilder_.clear();
          }
          ifNotExists_ = false;
          bitField0_ = (bitField0_ & ~0x00000004);
          lifeCycle_ = 0;
          bitField0_ = (bitField0_ & ~0x00000008);
          return this;
        }
        
        public Builder clone() {
          return create().mergeFrom(buildPartial());
        }
        
        public com.google.protobuf.Descriptors.Descriptor
            getDescriptorForType() {
          return CreateTableAs.getDescriptor();
        }
        
        public CreateTableAs getDefaultInstanceForType() {
          return CreateTableAs.getDefaultInstance();
        }
        
        public CreateTableAs build() {
          CreateTableAs result = buildPartial();
          if (!result.isInitialized()) {
            throw newUninitializedMessageException(result);
          }
          return result;
        }
        
        private CreateTableAs buildParsed()
            throws com.google.protobuf.InvalidProtocolBufferException {
          CreateTableAs result = buildPartial();
          if (!result.isInitialized()) {
            throw newUninitializedMessageException(
              result).asInvalidProtocolBufferException();
          }
          return result;
        }
        
        public CreateTableAs buildPartial() {
          CreateTableAs result = new CreateTableAs(this);
          int from_bitField0_ = bitField0_;
          int to_bitField0_ = 0;
          if (((from_bitField0_ & 0x00000001) == 0x00000001)) {
            to_bitField0_ |= 0x00000001;
          }
          if (lotBuilder_ == null) {
            result.lot_ = lot_;
          } else {
            result.lot_ = lotBuilder_.build();
          }
          if (propertiesBuilder_ == null) {
            if (((bitField0_ & 0x00000002) == 0x00000002)) {
              properties_ = java.util.Collections.unmodifiableList(properties_);
              bitField0_ = (bitField0_ & ~0x00000002);
            }
            result.properties_ = properties_;
          } else {
            result.properties_ = propertiesBuilder_.build();
          }
          if (((from_bitField0_ & 0x00000004) == 0x00000004)) {
            to_bitField0_ |= 0x00000002;
          }
          result.ifNotExists_ = ifNotExists_;
          if (((from_bitField0_ & 0x00000008) == 0x00000008)) {
            to_bitField0_ |= 0x00000004;
          }
          result.lifeCycle_ = lifeCycle_;
          result.bitField0_ = to_bitField0_;
          onBuilt();
          return result;
        }
        
        public Builder mergeFrom(com.google.protobuf.Message other) {
          if (other instanceof CreateTableAs) {
            return mergeFrom((CreateTableAs)other);
          } else {
            super.mergeFrom(other);
            return this;
          }
        }
        
        public Builder mergeFrom(CreateTableAs other) {
          if (other == CreateTableAs.getDefaultInstance()) return this;
          if (other.hasLot()) {
            mergeLot(other.getLot());
          }
          if (propertiesBuilder_ == null) {
            if (!other.properties_.isEmpty()) {
              if (properties_.isEmpty()) {
                properties_ = other.properties_;
                bitField0_ = (bitField0_ & ~0x00000002);
              } else {
                ensurePropertiesIsMutable();
                properties_.addAll(other.properties_);
              }
              onChanged();
            }
          } else {
            if (!other.properties_.isEmpty()) {
              if (propertiesBuilder_.isEmpty()) {
                propertiesBuilder_.dispose();
                propertiesBuilder_ = null;
                properties_ = other.properties_;
                bitField0_ = (bitField0_ & ~0x00000002);
                propertiesBuilder_ = 
                  com.google.protobuf.GeneratedMessage.alwaysUseFieldBuilders ?
                     getPropertiesFieldBuilder() : null;
              } else {
                propertiesBuilder_.addAllMessages(other.properties_);
              }
            }
          }
          if (other.hasIfNotExists()) {
            setIfNotExists(other.getIfNotExists());
          }
          if (other.hasLifeCycle()) {
            setLifeCycle(other.getLifeCycle());
          }
          this.mergeUnknownFields(other.getUnknownFields());
          return this;
        }
        
        public final boolean isInitialized() {
          if (!hasLot()) {
            
            return false;
          }
          if (!getLot().isInitialized()) {
            
            return false;
          }
          for (int i = 0; i < getPropertiesCount(); i++) {
            if (!getProperties(i).isInitialized()) {
              
              return false;
            }
          }
          return true;
        }
        
        public Builder mergeFrom(
            com.google.protobuf.CodedInputStream input,
            com.google.protobuf.ExtensionRegistryLite extensionRegistry)
            throws java.io.IOException {
          com.google.protobuf.UnknownFieldSet.Builder unknownFields =
            com.google.protobuf.UnknownFieldSet.newBuilder(
              this.getUnknownFields());
          while (true) {
            int tag = input.readTag();
            switch (tag) {
              case 0:
                this.setUnknownFields(unknownFields.build());
                onChanged();
                return this;
              default: {
                if (!parseUnknownField(input, unknownFields,
                                       extensionRegistry, tag)) {
                  this.setUnknownFields(unknownFields.build());
                  onChanged();
                  return this;
                }
                break;
              }
              case 10: {
                Lot.LogicalOperatorTree.Builder subBuilder = Lot.LogicalOperatorTree.newBuilder();
                if (hasLot()) {
                  subBuilder.mergeFrom(getLot());
                }
                input.readMessage(subBuilder, extensionRegistry);
                setLot(subBuilder.buildPartial());
                break;
              }
              case 19: {
                Properties.Builder subBuilder = Properties.newBuilder();
                input.readGroup(2, subBuilder, extensionRegistry);
                addProperties(subBuilder.buildPartial());
                break;
              }
              case 24: {
                bitField0_ |= 0x00000004;
                ifNotExists_ = input.readBool();
                break;
              }
              case 32: {
                bitField0_ |= 0x00000008;
                lifeCycle_ = input.readInt32();
                break;
              }
            }
          }
        }
        
        private int bitField0_;
        
        // required .apsara.odps.lot.LogicalOperatorTree Lot = 1;
        private Lot.LogicalOperatorTree lot_ = Lot.LogicalOperatorTree.getDefaultInstance();
        private com.google.protobuf.SingleFieldBuilder<
            Lot.LogicalOperatorTree, Lot.LogicalOperatorTree.Builder, Lot.LogicalOperatorTreeOrBuilder> lotBuilder_;
        public boolean hasLot() {
          return ((bitField0_ & 0x00000001) == 0x00000001);
        }
        public Lot.LogicalOperatorTree getLot() {
          if (lotBuilder_ == null) {
            return lot_;
          } else {
            return lotBuilder_.getMessage();
          }
        }
        public Builder setLot(Lot.LogicalOperatorTree value) {
          if (lotBuilder_ == null) {
            if (value == null) {
              throw new NullPointerException();
            }
            lot_ = value;
            onChanged();
          } else {
            lotBuilder_.setMessage(value);
          }
          bitField0_ |= 0x00000001;
          return this;
        }
        public Builder setLot(
            Lot.LogicalOperatorTree.Builder builderForValue) {
          if (lotBuilder_ == null) {
            lot_ = builderForValue.build();
            onChanged();
          } else {
            lotBuilder_.setMessage(builderForValue.build());
          }
          bitField0_ |= 0x00000001;
          return this;
        }
        public Builder mergeLot(Lot.LogicalOperatorTree value) {
          if (lotBuilder_ == null) {
            if (((bitField0_ & 0x00000001) == 0x00000001) &&
                lot_ != Lot.LogicalOperatorTree.getDefaultInstance()) {
              lot_ =
                Lot.LogicalOperatorTree.newBuilder(lot_).mergeFrom(value).buildPartial();
            } else {
              lot_ = value;
            }
            onChanged();
          } else {
            lotBuilder_.mergeFrom(value);
          }
          bitField0_ |= 0x00000001;
          return this;
        }
        public Builder clearLot() {
          if (lotBuilder_ == null) {
            lot_ = Lot.LogicalOperatorTree.getDefaultInstance();
            onChanged();
          } else {
            lotBuilder_.clear();
          }
          bitField0_ = (bitField0_ & ~0x00000001);
          return this;
        }
        public Lot.LogicalOperatorTree.Builder getLotBuilder() {
          bitField0_ |= 0x00000001;
          onChanged();
          return getLotFieldBuilder().getBuilder();
        }
        public Lot.LogicalOperatorTreeOrBuilder getLotOrBuilder() {
          if (lotBuilder_ != null) {
            return lotBuilder_.getMessageOrBuilder();
          } else {
            return lot_;
          }
        }
        private com.google.protobuf.SingleFieldBuilder<
            Lot.LogicalOperatorTree, Lot.LogicalOperatorTree.Builder, Lot.LogicalOperatorTreeOrBuilder>
            getLotFieldBuilder() {
          if (lotBuilder_ == null) {
            lotBuilder_ = new com.google.protobuf.SingleFieldBuilder<
                Lot.LogicalOperatorTree, Lot.LogicalOperatorTree.Builder, Lot.LogicalOperatorTreeOrBuilder>(
                    lot_,
                    getParentForChildren(),
                    isClean());
            lot_ = null;
          }
          return lotBuilder_;
        }
        
        // repeated group Properties = 2 {
        private java.util.List<Properties> properties_ =
          java.util.Collections.emptyList();
        private void ensurePropertiesIsMutable() {
          if (!((bitField0_ & 0x00000002) == 0x00000002)) {
            properties_ = new java.util.ArrayList<Properties>(properties_);
            bitField0_ |= 0x00000002;
           }
        }
        
        private com.google.protobuf.RepeatedFieldBuilder<
            Properties, Properties.Builder, PropertiesOrBuilder> propertiesBuilder_;
        
        public java.util.List<Properties> getPropertiesList() {
          if (propertiesBuilder_ == null) {
            return java.util.Collections.unmodifiableList(properties_);
          } else {
            return propertiesBuilder_.getMessageList();
          }
        }
        public int getPropertiesCount() {
          if (propertiesBuilder_ == null) {
            return properties_.size();
          } else {
            return propertiesBuilder_.getCount();
          }
        }
        public Properties getProperties(int index) {
          if (propertiesBuilder_ == null) {
            return properties_.get(index);
          } else {
            return propertiesBuilder_.getMessage(index);
          }
        }
        public Builder setProperties(
            int index, Properties value) {
          if (propertiesBuilder_ == null) {
            if (value == null) {
              throw new NullPointerException();
            }
            ensurePropertiesIsMutable();
            properties_.set(index, value);
            onChanged();
          } else {
            propertiesBuilder_.setMessage(index, value);
          }
          return this;
        }
        public Builder setProperties(
            int index, Properties.Builder builderForValue) {
          if (propertiesBuilder_ == null) {
            ensurePropertiesIsMutable();
            properties_.set(index, builderForValue.build());
            onChanged();
          } else {
            propertiesBuilder_.setMessage(index, builderForValue.build());
          }
          return this;
        }
        public Builder addProperties(Properties value) {
          if (propertiesBuilder_ == null) {
            if (value == null) {
              throw new NullPointerException();
            }
            ensurePropertiesIsMutable();
            properties_.add(value);
            onChanged();
          } else {
            propertiesBuilder_.addMessage(value);
          }
          return this;
        }
        public Builder addProperties(
            int index, Properties value) {
          if (propertiesBuilder_ == null) {
            if (value == null) {
              throw new NullPointerException();
            }
            ensurePropertiesIsMutable();
            properties_.add(index, value);
            onChanged();
          } else {
            propertiesBuilder_.addMessage(index, value);
          }
          return this;
        }
        public Builder addProperties(
            Properties.Builder builderForValue) {
          if (propertiesBuilder_ == null) {
            ensurePropertiesIsMutable();
            properties_.add(builderForValue.build());
            onChanged();
          } else {
            propertiesBuilder_.addMessage(builderForValue.build());
          }
          return this;
        }
        public Builder addProperties(
            int index, Properties.Builder builderForValue) {
          if (propertiesBuilder_ == null) {
            ensurePropertiesIsMutable();
            properties_.add(index, builderForValue.build());
            onChanged();
          } else {
            propertiesBuilder_.addMessage(index, builderForValue.build());
          }
          return this;
        }
        public Builder addAllProperties(
            Iterable<? extends Properties> values) {
          if (propertiesBuilder_ == null) {
            ensurePropertiesIsMutable();
            super.addAll(values, properties_);
            onChanged();
          } else {
            propertiesBuilder_.addAllMessages(values);
          }
          return this;
        }
        public Builder clearProperties() {
          if (propertiesBuilder_ == null) {
            properties_ = java.util.Collections.emptyList();
            bitField0_ = (bitField0_ & ~0x00000002);
            onChanged();
          } else {
            propertiesBuilder_.clear();
          }
          return this;
        }
        public Builder removeProperties(int index) {
          if (propertiesBuilder_ == null) {
            ensurePropertiesIsMutable();
            properties_.remove(index);
            onChanged();
          } else {
            propertiesBuilder_.remove(index);
          }
          return this;
        }
        public Properties.Builder getPropertiesBuilder(
            int index) {
          return getPropertiesFieldBuilder().getBuilder(index);
        }
        public PropertiesOrBuilder getPropertiesOrBuilder(
            int index) {
          if (propertiesBuilder_ == null) {
            return properties_.get(index);  } else {
            return propertiesBuilder_.getMessageOrBuilder(index);
          }
        }
        public java.util.List<? extends PropertiesOrBuilder>
             getPropertiesOrBuilderList() {
          if (propertiesBuilder_ != null) {
            return propertiesBuilder_.getMessageOrBuilderList();
          } else {
            return java.util.Collections.unmodifiableList(properties_);
          }
        }
        public Properties.Builder addPropertiesBuilder() {
          return getPropertiesFieldBuilder().addBuilder(
              Properties.getDefaultInstance());
        }
        public Properties.Builder addPropertiesBuilder(
            int index) {
          return getPropertiesFieldBuilder().addBuilder(
              index, Properties.getDefaultInstance());
        }
        public java.util.List<Properties.Builder>
             getPropertiesBuilderList() {
          return getPropertiesFieldBuilder().getBuilderList();
        }
        private com.google.protobuf.RepeatedFieldBuilder<
            Properties, Properties.Builder, PropertiesOrBuilder>
            getPropertiesFieldBuilder() {
          if (propertiesBuilder_ == null) {
            propertiesBuilder_ = new com.google.protobuf.RepeatedFieldBuilder<
                Properties, Properties.Builder, PropertiesOrBuilder>(
                    properties_,
                    ((bitField0_ & 0x00000002) == 0x00000002),
                    getParentForChildren(),
                    isClean());
            properties_ = null;
          }
          return propertiesBuilder_;
        }
        
        // optional bool IfNotExists = 3 [default = false];
        private boolean ifNotExists_ ;
        public boolean hasIfNotExists() {
          return ((bitField0_ & 0x00000004) == 0x00000004);
        }
        public boolean getIfNotExists() {
          return ifNotExists_;
        }
        public Builder setIfNotExists(boolean value) {
          bitField0_ |= 0x00000004;
          ifNotExists_ = value;
          onChanged();
          return this;
        }
        public Builder clearIfNotExists() {
          bitField0_ = (bitField0_ & ~0x00000004);
          ifNotExists_ = false;
          onChanged();
          return this;
        }
        
        // optional int32 LifeCycle = 4;
        private int lifeCycle_ ;
        public boolean hasLifeCycle() {
          return ((bitField0_ & 0x00000008) == 0x00000008);
        }
        public int getLifeCycle() {
          return lifeCycle_;
        }
        public Builder setLifeCycle(int value) {
          bitField0_ |= 0x00000008;
          lifeCycle_ = value;
          onChanged();
          return this;
        }
        public Builder clearLifeCycle() {
          bitField0_ = (bitField0_ & ~0x00000008);
          lifeCycle_ = 0;
          onChanged();
          return this;
        }
        
        // @@protoc_insertion_point(builder_scope:apsara.odps.lot.CreateTableAs)
      }
      
      static {
        defaultInstance = new CreateTableAs(true);
        defaultInstance.initFields();
      }
      
      // @@protoc_insertion_point(class_scope:apsara.odps.lot.CreateTableAs)
    }
    
    public interface CreateViewAsOrBuilder
        extends com.google.protobuf.MessageOrBuilder {
      
      // required .apsara.odps.lot.LogicalOperatorTree Lot = 1;
      boolean hasLot();
      Lot.LogicalOperatorTree getLot();
      Lot.LogicalOperatorTreeOrBuilder getLotOrBuilder();
      
      // required string Project = 2;
      boolean hasProject();
      String getProject();
      
      // required string Name = 3;
      boolean hasName();
      String getName();
    }
    public static final class CreateViewAs extends
        com.google.protobuf.GeneratedMessage
        implements CreateViewAsOrBuilder {
      // Use CreateViewAs.newBuilder() to construct.
      private CreateViewAs(Builder builder) {
        super(builder);
      }
      private CreateViewAs(boolean noInit) {}
      
      private static final CreateViewAs defaultInstance;
      public static CreateViewAs getDefaultInstance() {
        return defaultInstance;
      }
      
      public CreateViewAs getDefaultInstanceForType() {
        return defaultInstance;
      }
      
      public static final com.google.protobuf.Descriptors.Descriptor
          getDescriptor() {
        return DDLProtos.internal_static_apsara_odps_lot_CreateViewAs_descriptor;
      }
      
      protected FieldAccessorTable
          internalGetFieldAccessorTable() {
        return DDLProtos.internal_static_apsara_odps_lot_CreateViewAs_fieldAccessorTable;
      }
      
      private int bitField0_;
      // required .apsara.odps.lot.LogicalOperatorTree Lot = 1;
      public static final int LOT_FIELD_NUMBER = 1;
      private Lot.LogicalOperatorTree lot_;
      public boolean hasLot() {
        return ((bitField0_ & 0x00000001) == 0x00000001);
      }
      public Lot.LogicalOperatorTree getLot() {
        return lot_;
      }
      public Lot.LogicalOperatorTreeOrBuilder getLotOrBuilder() {
        return lot_;
      }
      
      // required string Project = 2;
      public static final int PROJECT_FIELD_NUMBER = 2;
      private Object project_;
      public boolean hasProject() {
        return ((bitField0_ & 0x00000002) == 0x00000002);
      }
      public String getProject() {
        Object ref = project_;
        if (ref instanceof String) {
          return (String) ref;
        } else {
          com.google.protobuf.ByteString bs = 
              (com.google.protobuf.ByteString) ref;
          String s = bs.toStringUtf8();
          if (com.google.protobuf.Internal.isValidUtf8(bs)) {
            project_ = s;
          }
          return s;
        }
      }
      private com.google.protobuf.ByteString getProjectBytes() {
        Object ref = project_;
        if (ref instanceof String) {
          com.google.protobuf.ByteString b = 
              com.google.protobuf.ByteString.copyFromUtf8((String) ref);
          project_ = b;
          return b;
        } else {
          return (com.google.protobuf.ByteString) ref;
        }
      }
      
      // required string Name = 3;
      public static final int NAME_FIELD_NUMBER = 3;
      private Object name_;
      public boolean hasName() {
        return ((bitField0_ & 0x00000004) == 0x00000004);
      }
      public String getName() {
        Object ref = name_;
        if (ref instanceof String) {
          return (String) ref;
        } else {
          com.google.protobuf.ByteString bs = 
              (com.google.protobuf.ByteString) ref;
          String s = bs.toStringUtf8();
          if (com.google.protobuf.Internal.isValidUtf8(bs)) {
            name_ = s;
          }
          return s;
        }
      }
      private com.google.protobuf.ByteString getNameBytes() {
        Object ref = name_;
        if (ref instanceof String) {
          com.google.protobuf.ByteString b = 
              com.google.protobuf.ByteString.copyFromUtf8((String) ref);
          name_ = b;
          return b;
        } else {
          return (com.google.protobuf.ByteString) ref;
        }
      }
      
      private void initFields() {
        lot_ = Lot.LogicalOperatorTree.getDefaultInstance();
        project_ = "";
        name_ = "";
      }
      private byte memoizedIsInitialized = -1;
      public final boolean isInitialized() {
        byte isInitialized = memoizedIsInitialized;
        if (isInitialized != -1) return isInitialized == 1;
        
        if (!hasLot()) {
          memoizedIsInitialized = 0;
          return false;
        }
        if (!hasProject()) {
          memoizedIsInitialized = 0;
          return false;
        }
        if (!hasName()) {
          memoizedIsInitialized = 0;
          return false;
        }
        if (!getLot().isInitialized()) {
          memoizedIsInitialized = 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, lot_);
        }
        if (((bitField0_ & 0x00000002) == 0x00000002)) {
          output.writeBytes(2, getProjectBytes());
        }
        if (((bitField0_ & 0x00000004) == 0x00000004)) {
          output.writeBytes(3, getNameBytes());
        }
        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, lot_);
        }
        if (((bitField0_ & 0x00000002) == 0x00000002)) {
          size += com.google.protobuf.CodedOutputStream
            .computeBytesSize(2, getProjectBytes());
        }
        if (((bitField0_ & 0x00000004) == 0x00000004)) {
          size += com.google.protobuf.CodedOutputStream
            .computeBytesSize(3, getNameBytes());
        }
        size += getUnknownFields().getSerializedSize();
        memoizedSerializedSize = size;
        return size;
      }
      
      private static final long serialVersionUID = 0L;
      @Override
      protected Object writeReplace()
          throws java.io.ObjectStreamException {
        return super.writeReplace();
      }
      
      public static CreateViewAs parseFrom(
          com.google.protobuf.ByteString data)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return newBuilder().mergeFrom(data).buildParsed();
      }
      public static CreateViewAs parseFrom(
          com.google.protobuf.ByteString data,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return newBuilder().mergeFrom(data, extensionRegistry)
                 .buildParsed();
      }
      public static CreateViewAs parseFrom(byte[] data)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return newBuilder().mergeFrom(data).buildParsed();
      }
      public static CreateViewAs parseFrom(
          byte[] data,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return newBuilder().mergeFrom(data, extensionRegistry)
                 .buildParsed();
      }
      public static CreateViewAs parseFrom(java.io.InputStream input)
          throws java.io.IOException {
        return newBuilder().mergeFrom(input).buildParsed();
      }
      public static CreateViewAs parseFrom(
          java.io.InputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        return newBuilder().mergeFrom(input, extensionRegistry)
                 .buildParsed();
      }
      public static CreateViewAs parseDelimitedFrom(java.io.InputStream input)
          throws java.io.IOException {
        Builder builder = newBuilder();
        if (builder.mergeDelimitedFrom(input)) {
          return builder.buildParsed();
        } else {
          return null;
        }
      }
      public static CreateViewAs parseDelimitedFrom(
          java.io.InputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        Builder builder = newBuilder();
        if (builder.mergeDelimitedFrom(input, extensionRegistry)) {
          return builder.buildParsed();
        } else {
          return null;
        }
      }
      public static CreateViewAs parseFrom(
          com.google.protobuf.CodedInputStream input)
          throws java.io.IOException {
        return newBuilder().mergeFrom(input).buildParsed();
      }
      public static CreateViewAs parseFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        return newBuilder().mergeFrom(input, extensionRegistry)
                 .buildParsed();
      }
      
      public static Builder newBuilder() { return Builder.create(); }
      public Builder newBuilderForType() { return newBuilder(); }
      public static Builder newBuilder(CreateViewAs prototype) {
        return newBuilder().mergeFrom(prototype);
      }
      public Builder toBuilder() { return newBuilder(this); }
      
      @Override
      protected Builder newBuilderForType(
          BuilderParent parent) {
        Builder builder = new Builder(parent);
        return builder;
      }
      public static final class Builder extends
          com.google.protobuf.GeneratedMessage.Builder<Builder>
         implements CreateViewAsOrBuilder {
        public static final com.google.protobuf.Descriptors.Descriptor
            getDescriptor() {
          return DDLProtos.internal_static_apsara_odps_lot_CreateViewAs_descriptor;
        }
        
        protected FieldAccessorTable
            internalGetFieldAccessorTable() {
          return DDLProtos.internal_static_apsara_odps_lot_CreateViewAs_fieldAccessorTable;
        }
        
        // Construct using apsara.odps.lot.DDLProtos.CreateViewAs.newBuilder()
        private Builder() {
          maybeForceBuilderInitialization();
        }
        
        private Builder(BuilderParent parent) {
          super(parent);
          maybeForceBuilderInitialization();
        }
        private void maybeForceBuilderInitialization() {
          if (com.google.protobuf.GeneratedMessage.alwaysUseFieldBuilders) {
            getLotFieldBuilder();
          }
        }
        private static Builder create() {
          return new Builder();
        }
        
        public Builder clear() {
          super.clear();
          if (lotBuilder_ == null) {
            lot_ = Lot.LogicalOperatorTree.getDefaultInstance();
          } else {
            lotBuilder_.clear();
          }
          bitField0_ = (bitField0_ & ~0x00000001);
          project_ = "";
          bitField0_ = (bitField0_ & ~0x00000002);
          name_ = "";
          bitField0_ = (bitField0_ & ~0x00000004);
          return this;
        }
        
        public Builder clone() {
          return create().mergeFrom(buildPartial());
        }
        
        public com.google.protobuf.Descriptors.Descriptor
            getDescriptorForType() {
          return CreateViewAs.getDescriptor();
        }
        
        public CreateViewAs getDefaultInstanceForType() {
          return CreateViewAs.getDefaultInstance();
        }
        
        public CreateViewAs build() {
          CreateViewAs result = buildPartial();
          if (!result.isInitialized()) {
            throw newUninitializedMessageException(result);
          }
          return result;
        }
        
        private CreateViewAs buildParsed()
            throws com.google.protobuf.InvalidProtocolBufferException {
          CreateViewAs result = buildPartial();
          if (!result.isInitialized()) {
            throw newUninitializedMessageException(
              result).asInvalidProtocolBufferException();
          }
          return result;
        }
        
        public CreateViewAs buildPartial() {
          CreateViewAs result = new CreateViewAs(this);
          int from_bitField0_ = bitField0_;
          int to_bitField0_ = 0;
          if (((from_bitField0_ & 0x00000001) == 0x00000001)) {
            to_bitField0_ |= 0x00000001;
          }
          if (lotBuilder_ == null) {
            result.lot_ = lot_;
          } else {
            result.lot_ = lotBuilder_.build();
          }
          if (((from_bitField0_ & 0x00000002) == 0x00000002)) {
            to_bitField0_ |= 0x00000002;
          }
          result.project_ = project_;
          if (((from_bitField0_ & 0x00000004) == 0x00000004)) {
            to_bitField0_ |= 0x00000004;
          }
          result.name_ = name_;
          result.bitField0_ = to_bitField0_;
          onBuilt();
          return result;
        }
        
        public Builder mergeFrom(com.google.protobuf.Message other) {
          if (other instanceof CreateViewAs) {
            return mergeFrom((CreateViewAs)other);
          } else {
            super.mergeFrom(other);
            return this;
          }
        }
        
        public Builder mergeFrom(CreateViewAs other) {
          if (other == CreateViewAs.getDefaultInstance()) return this;
          if (other.hasLot()) {
            mergeLot(other.getLot());
          }
          if (other.hasProject()) {
            setProject(other.getProject());
          }
          if (other.hasName()) {
            setName(other.getName());
          }
          this.mergeUnknownFields(other.getUnknownFields());
          return this;
        }
        
        public final boolean isInitialized() {
          if (!hasLot()) {
            
            return false;
          }
          if (!hasProject()) {
            
            return false;
          }
          if (!hasName()) {
            
            return false;
          }
          if (!getLot().isInitialized()) {
            
            return false;
          }
          return true;
        }
        
        public Builder mergeFrom(
            com.google.protobuf.CodedInputStream input,
            com.google.protobuf.ExtensionRegistryLite extensionRegistry)
            throws java.io.IOException {
          com.google.protobuf.UnknownFieldSet.Builder unknownFields =
            com.google.protobuf.UnknownFieldSet.newBuilder(
              this.getUnknownFields());
          while (true) {
            int tag = input.readTag();
            switch (tag) {
              case 0:
                this.setUnknownFields(unknownFields.build());
                onChanged();
                return this;
              default: {
                if (!parseUnknownField(input, unknownFields,
                                       extensionRegistry, tag)) {
                  this.setUnknownFields(unknownFields.build());
                  onChanged();
                  return this;
                }
                break;
              }
              case 10: {
                Lot.LogicalOperatorTree.Builder subBuilder = Lot.LogicalOperatorTree.newBuilder();
                if (hasLot()) {
                  subBuilder.mergeFrom(getLot());
                }
                input.readMessage(subBuilder, extensionRegistry);
                setLot(subBuilder.buildPartial());
                break;
              }
              case 18: {
                bitField0_ |= 0x00000002;
                project_ = input.readBytes();
                break;
              }
              case 26: {
                bitField0_ |= 0x00000004;
                name_ = input.readBytes();
                break;
              }
            }
          }
        }
        
        private int bitField0_;
        
        // required .apsara.odps.lot.LogicalOperatorTree Lot = 1;
        private Lot.LogicalOperatorTree lot_ = Lot.LogicalOperatorTree.getDefaultInstance();
        private com.google.protobuf.SingleFieldBuilder<
            Lot.LogicalOperatorTree, Lot.LogicalOperatorTree.Builder, Lot.LogicalOperatorTreeOrBuilder> lotBuilder_;
        public boolean hasLot() {
          return ((bitField0_ & 0x00000001) == 0x00000001);
        }
        public Lot.LogicalOperatorTree getLot() {
          if (lotBuilder_ == null) {
            return lot_;
          } else {
            return lotBuilder_.getMessage();
          }
        }
        public Builder setLot(Lot.LogicalOperatorTree value) {
          if (lotBuilder_ == null) {
            if (value == null) {
              throw new NullPointerException();
            }
            lot_ = value;
            onChanged();
          } else {
            lotBuilder_.setMessage(value);
          }
          bitField0_ |= 0x00000001;
          return this;
        }
        public Builder setLot(
            Lot.LogicalOperatorTree.Builder builderForValue) {
          if (lotBuilder_ == null) {
            lot_ = builderForValue.build();
            onChanged();
          } else {
            lotBuilder_.setMessage(builderForValue.build());
          }
          bitField0_ |= 0x00000001;
          return this;
        }
        public Builder mergeLot(Lot.LogicalOperatorTree value) {
          if (lotBuilder_ == null) {
            if (((bitField0_ & 0x00000001) == 0x00000001) &&
                lot_ != Lot.LogicalOperatorTree.getDefaultInstance()) {
              lot_ =
                Lot.LogicalOperatorTree.newBuilder(lot_).mergeFrom(value).buildPartial();
            } else {
              lot_ = value;
            }
            onChanged();
          } else {
            lotBuilder_.mergeFrom(value);
          }
          bitField0_ |= 0x00000001;
          return this;
        }
        public Builder clearLot() {
          if (lotBuilder_ == null) {
            lot_ = Lot.LogicalOperatorTree.getDefaultInstance();
            onChanged();
          } else {
            lotBuilder_.clear();
          }
          bitField0_ = (bitField0_ & ~0x00000001);
          return this;
        }
        public Lot.LogicalOperatorTree.Builder getLotBuilder() {
          bitField0_ |= 0x00000001;
          onChanged();
          return getLotFieldBuilder().getBuilder();
        }
        public Lot.LogicalOperatorTreeOrBuilder getLotOrBuilder() {
          if (lotBuilder_ != null) {
            return lotBuilder_.getMessageOrBuilder();
          } else {
            return lot_;
          }
        }
        private com.google.protobuf.SingleFieldBuilder<
            Lot.LogicalOperatorTree, Lot.LogicalOperatorTree.Builder, Lot.LogicalOperatorTreeOrBuilder>
            getLotFieldBuilder() {
          if (lotBuilder_ == null) {
            lotBuilder_ = new com.google.protobuf.SingleFieldBuilder<
                Lot.LogicalOperatorTree, Lot.LogicalOperatorTree.Builder, Lot.LogicalOperatorTreeOrBuilder>(
                    lot_,
                    getParentForChildren(),
                    isClean());
            lot_ = null;
          }
          return lotBuilder_;
        }
        
        // required string Project = 2;
        private Object project_ = "";
        public boolean hasProject() {
          return ((bitField0_ & 0x00000002) == 0x00000002);
        }
        public String getProject() {
          Object ref = project_;
          if (!(ref instanceof String)) {
            String s = ((com.google.protobuf.ByteString) ref).toStringUtf8();
            project_ = s;
            return s;
          } else {
            return (String) ref;
          }
        }
        public Builder setProject(String value) {
          if (value == null) {
      throw new NullPointerException();
    }
    bitField0_ |= 0x00000002;
          project_ = value;
          onChanged();
          return this;
        }
        public Builder clearProject() {
          bitField0_ = (bitField0_ & ~0x00000002);
          project_ = getDefaultInstance().getProject();
          onChanged();
          return this;
        }
        void setProject(com.google.protobuf.ByteString value) {
          bitField0_ |= 0x00000002;
          project_ = value;
          onChanged();
        }
        
        // required string Name = 3;
        private Object name_ = "";
        public boolean hasName() {
          return ((bitField0_ & 0x00000004) == 0x00000004);
        }
        public String getName() {
          Object ref = name_;
          if (!(ref instanceof String)) {
            String s = ((com.google.protobuf.ByteString) ref).toStringUtf8();
            name_ = s;
            return s;
          } else {
            return (String) ref;
          }
        }
        public Builder setName(String value) {
          if (value == null) {
      throw new NullPointerException();
    }
    bitField0_ |= 0x00000004;
          name_ = value;
          onChanged();
          return this;
        }
        public Builder clearName() {
          bitField0_ = (bitField0_ & ~0x00000004);
          name_ = getDefaultInstance().getName();
          onChanged();
          return this;
        }
        void setName(com.google.protobuf.ByteString value) {
          bitField0_ |= 0x00000004;
          name_ = value;
          onChanged();
        }
        
        // @@protoc_insertion_point(builder_scope:apsara.odps.lot.CreateViewAs)
      }
      
      static {
        defaultInstance = new CreateViewAs(true);
        defaultInstance.initFields();
      }
      
      // @@protoc_insertion_point(class_scope:apsara.odps.lot.CreateViewAs)
    }
    
    public interface DDLOrBuilder
        extends com.google.protobuf.MessageOrBuilder {
      
      // optional .apsara.odps.CreateTable CreateTable = 1;
      boolean hasCreateTable();
      apsara.odps.DDLProtos.CreateTable getCreateTable();
      apsara.odps.DDLProtos.CreateTableOrBuilder getCreateTableOrBuilder();
      
      // optional .apsara.odps.lot.CreateTableAs CreateTableAs = 2;
      boolean hasCreateTableAs();
      CreateTableAs getCreateTableAs();
      CreateTableAsOrBuilder getCreateTableAsOrBuilder();
      
      // optional .apsara.odps.CreateTableLike CreateTableLike = 3;
      boolean hasCreateTableLike();
      apsara.odps.DDLProtos.CreateTableLike getCreateTableLike();
      apsara.odps.DDLProtos.CreateTableLikeOrBuilder getCreateTableLikeOrBuilder();
      
      // optional .apsara.odps.DropTable DropTable = 4;
      boolean hasDropTable();
      apsara.odps.DDLProtos.DropTable getDropTable();
      apsara.odps.DDLProtos.DropTableOrBuilder getDropTableOrBuilder();
      
      // optional .apsara.odps.lot.CreateViewAs CreateViewAs = 5;
      boolean hasCreateViewAs();
      CreateViewAs getCreateViewAs();
      CreateViewAsOrBuilder getCreateViewAsOrBuilder();
      
      // optional .apsara.odps.CreateStreamTable CreateStreamTable = 6;
      boolean hasCreateStreamTable();
      apsara.odps.DDLProtos.CreateStreamTable getCreateStreamTable();
      apsara.odps.DDLProtos.CreateStreamTableOrBuilder getCreateStreamTableOrBuilder();
      
      // optional .apsara.odps.CreateDimensionTable CreateDimensionTable = 7;
      boolean hasCreateDimensionTable();
      apsara.odps.DDLProtos.CreateDimensionTable getCreateDimensionTable();
      apsara.odps.DDLProtos.CreateDimensionTableOrBuilder getCreateDimensionTableOrBuilder();
      
      // optional .apsara.odps.CreateResultTable CreateResultTable = 8;
      boolean hasCreateResultTable();
      apsara.odps.DDLProtos.CreateResultTable getCreateResultTable();
      apsara.odps.DDLProtos.CreateResultTableOrBuilder getCreateResultTableOrBuilder();
      
      // optional .apsara.odps.CreateTempTable CreateTempTable = 9;
      boolean hasCreateTempTable();
      apsara.odps.DDLProtos.CreateTempTable getCreateTempTable();
      apsara.odps.DDLProtos.CreateTempTableOrBuilder getCreateTempTableOrBuilder();
    }
    public static final class DDL extends
        com.google.protobuf.GeneratedMessage
        implements DDLOrBuilder {
      // Use DDL.newBuilder() to construct.
      private DDL(Builder builder) {
        super(builder);
      }
      private DDL(boolean noInit) {}
      
      private static final DDL defaultInstance;
      public static DDL getDefaultInstance() {
        return defaultInstance;
      }
      
      public DDL getDefaultInstanceForType() {
        return defaultInstance;
      }
      
      public static final com.google.protobuf.Descriptors.Descriptor
          getDescriptor() {
        return DDLProtos.internal_static_apsara_odps_lot_DDL_descriptor;
      }
      
      protected FieldAccessorTable
          internalGetFieldAccessorTable() {
        return DDLProtos.internal_static_apsara_odps_lot_DDL_fieldAccessorTable;
      }
      
      private int bitField0_;
      // optional .apsara.odps.CreateTable CreateTable = 1;
      public static final int CREATETABLE_FIELD_NUMBER = 1;
      private apsara.odps.DDLProtos.CreateTable createTable_;
      public boolean hasCreateTable() {
        return ((bitField0_ & 0x00000001) == 0x00000001);
      }
      public apsara.odps.DDLProtos.CreateTable getCreateTable() {
        return createTable_;
      }
      public apsara.odps.DDLProtos.CreateTableOrBuilder getCreateTableOrBuilder() {
        return createTable_;
      }
      
      // optional .apsara.odps.lot.CreateTableAs CreateTableAs = 2;
      public static final int CREATETABLEAS_FIELD_NUMBER = 2;
      private CreateTableAs createTableAs_;
      public boolean hasCreateTableAs() {
        return ((bitField0_ & 0x00000002) == 0x00000002);
      }
      public CreateTableAs getCreateTableAs() {
        return createTableAs_;
      }
      public CreateTableAsOrBuilder getCreateTableAsOrBuilder() {
        return createTableAs_;
      }
      
      // optional .apsara.odps.CreateTableLike CreateTableLike = 3;
      public static final int CREATETABLELIKE_FIELD_NUMBER = 3;
      private apsara.odps.DDLProtos.CreateTableLike createTableLike_;
      public boolean hasCreateTableLike() {
        return ((bitField0_ & 0x00000004) == 0x00000004);
      }
      public apsara.odps.DDLProtos.CreateTableLike getCreateTableLike() {
        return createTableLike_;
      }
      public apsara.odps.DDLProtos.CreateTableLikeOrBuilder getCreateTableLikeOrBuilder() {
        return createTableLike_;
      }
      
      // optional .apsara.odps.DropTable DropTable = 4;
      public static final int DROPTABLE_FIELD_NUMBER = 4;
      private apsara.odps.DDLProtos.DropTable dropTable_;
      public boolean hasDropTable() {
        return ((bitField0_ & 0x00000008) == 0x00000008);
      }
      public apsara.odps.DDLProtos.DropTable getDropTable() {
        return dropTable_;
      }
      public apsara.odps.DDLProtos.DropTableOrBuilder getDropTableOrBuilder() {
        return dropTable_;
      }
      
      // optional .apsara.odps.lot.CreateViewAs CreateViewAs = 5;
      public static final int CREATEVIEWAS_FIELD_NUMBER = 5;
      private CreateViewAs createViewAs_;
      public boolean hasCreateViewAs() {
        return ((bitField0_ & 0x00000010) == 0x00000010);
      }
      public CreateViewAs getCreateViewAs() {
        return createViewAs_;
      }
      public CreateViewAsOrBuilder getCreateViewAsOrBuilder() {
        return createViewAs_;
      }
      
      // optional .apsara.odps.CreateStreamTable CreateStreamTable = 6;
      public static final int CREATESTREAMTABLE_FIELD_NUMBER = 6;
      private apsara.odps.DDLProtos.CreateStreamTable createStreamTable_;
      public boolean hasCreateStreamTable() {
        return ((bitField0_ & 0x00000020) == 0x00000020);
      }
      public apsara.odps.DDLProtos.CreateStreamTable getCreateStreamTable() {
        return createStreamTable_;
      }
      public apsara.odps.DDLProtos.CreateStreamTableOrBuilder getCreateStreamTableOrBuilder() {
        return createStreamTable_;
      }
      
      // optional .apsara.odps.CreateDimensionTable CreateDimensionTable = 7;
      public static final int CREATEDIMENSIONTABLE_FIELD_NUMBER = 7;
      private apsara.odps.DDLProtos.CreateDimensionTable createDimensionTable_;
      public boolean hasCreateDimensionTable() {
        return ((bitField0_ & 0x00000040) == 0x00000040);
      }
      public apsara.odps.DDLProtos.CreateDimensionTable getCreateDimensionTable() {
        return createDimensionTable_;
      }
      public apsara.odps.DDLProtos.CreateDimensionTableOrBuilder getCreateDimensionTableOrBuilder() {
        return createDimensionTable_;
      }
      
      // optional .apsara.odps.CreateResultTable CreateResultTable = 8;
      public static final int CREATERESULTTABLE_FIELD_NUMBER = 8;
      private apsara.odps.DDLProtos.CreateResultTable createResultTable_;
      public boolean hasCreateResultTable() {
        return ((bitField0_ & 0x00000080) == 0x00000080);
      }
      public apsara.odps.DDLProtos.CreateResultTable getCreateResultTable() {
        return createResultTable_;
      }
      public apsara.odps.DDLProtos.CreateResultTableOrBuilder getCreateResultTableOrBuilder() {
        return createResultTable_;
      }
      
      // optional .apsara.odps.CreateTempTable CreateTempTable = 9;
      public static final int CREATETEMPTABLE_FIELD_NUMBER = 9;
      private apsara.odps.DDLProtos.CreateTempTable createTempTable_;
      public boolean hasCreateTempTable() {
        return ((bitField0_ & 0x00000100) == 0x00000100);
      }
      public apsara.odps.DDLProtos.CreateTempTable getCreateTempTable() {
        return createTempTable_;
      }
      public apsara.odps.DDLProtos.CreateTempTableOrBuilder getCreateTempTableOrBuilder() {
        return createTempTable_;
      }
      
      private void initFields() {
        createTable_ = apsara.odps.DDLProtos.CreateTable.getDefaultInstance();
        createTableAs_ = CreateTableAs.getDefaultInstance();
        createTableLike_ = apsara.odps.DDLProtos.CreateTableLike.getDefaultInstance();
        dropTable_ = apsara.odps.DDLProtos.DropTable.getDefaultInstance();
        createViewAs_ = CreateViewAs.getDefaultInstance();
        createStreamTable_ = apsara.odps.DDLProtos.CreateStreamTable.getDefaultInstance();
        createDimensionTable_ = apsara.odps.DDLProtos.CreateDimensionTable.getDefaultInstance();
        createResultTable_ = apsara.odps.DDLProtos.CreateResultTable.getDefaultInstance();
        createTempTable_ = apsara.odps.DDLProtos.CreateTempTable.getDefaultInstance();
      }
      private byte memoizedIsInitialized = -1;
      public final boolean isInitialized() {
        byte isInitialized = memoizedIsInitialized;
        if (isInitialized != -1) return isInitialized == 1;
        
        if (hasCreateTable()) {
          if (!getCreateTable().isInitialized()) {
            memoizedIsInitialized = 0;
            return false;
          }
        }
        if (hasCreateTableAs()) {
          if (!getCreateTableAs().isInitialized()) {
            memoizedIsInitialized = 0;
            return false;
          }
        }
        if (hasCreateTableLike()) {
          if (!getCreateTableLike().isInitialized()) {
            memoizedIsInitialized = 0;
            return false;
          }
        }
        if (hasDropTable()) {
          if (!getDropTable().isInitialized()) {
            memoizedIsInitialized = 0;
            return false;
          }
        }
        if (hasCreateViewAs()) {
          if (!getCreateViewAs().isInitialized()) {
            memoizedIsInitialized = 0;
            return false;
          }
        }
        if (hasCreateStreamTable()) {
          if (!getCreateStreamTable().isInitialized()) {
            memoizedIsInitialized = 0;
            return false;
          }
        }
        if (hasCreateDimensionTable()) {
          if (!getCreateDimensionTable().isInitialized()) {
            memoizedIsInitialized = 0;
            return false;
          }
        }
        if (hasCreateResultTable()) {
          if (!getCreateResultTable().isInitialized()) {
            memoizedIsInitialized = 0;
            return false;
          }
        }
        if (hasCreateTempTable()) {
          if (!getCreateTempTable().isInitialized()) {
            memoizedIsInitialized = 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, createTable_);
        }
        if (((bitField0_ & 0x00000002) == 0x00000002)) {
          output.writeMessage(2, createTableAs_);
        }
        if (((bitField0_ & 0x00000004) == 0x00000004)) {
          output.writeMessage(3, createTableLike_);
        }
        if (((bitField0_ & 0x00000008) == 0x00000008)) {
          output.writeMessage(4, dropTable_);
        }
        if (((bitField0_ & 0x00000010) == 0x00000010)) {
          output.writeMessage(5, createViewAs_);
        }
        if (((bitField0_ & 0x00000020) == 0x00000020)) {
          output.writeMessage(6, createStreamTable_);
        }
        if (((bitField0_ & 0x00000040) == 0x00000040)) {
          output.writeMessage(7, createDimensionTable_);
        }
        if (((bitField0_ & 0x00000080) == 0x00000080)) {
          output.writeMessage(8, createResultTable_);
        }
        if (((bitField0_ & 0x00000100) == 0x00000100)) {
          output.writeMessage(9, createTempTable_);
        }
        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, createTable_);
        }
        if (((bitField0_ & 0x00000002) == 0x00000002)) {
          size += com.google.protobuf.CodedOutputStream
            .computeMessageSize(2, createTableAs_);
        }
        if (((bitField0_ & 0x00000004) == 0x00000004)) {
          size += com.google.protobuf.CodedOutputStream
            .computeMessageSize(3, createTableLike_);
        }
        if (((bitField0_ & 0x00000008) == 0x00000008)) {
          size += com.google.protobuf.CodedOutputStream
            .computeMessageSize(4, dropTable_);
        }
        if (((bitField0_ & 0x00000010) == 0x00000010)) {
          size += com.google.protobuf.CodedOutputStream
            .computeMessageSize(5, createViewAs_);
        }
        if (((bitField0_ & 0x00000020) == 0x00000020)) {
          size += com.google.protobuf.CodedOutputStream
            .computeMessageSize(6, createStreamTable_);
        }
        if (((bitField0_ & 0x00000040) == 0x00000040)) {
          size += com.google.protobuf.CodedOutputStream
            .computeMessageSize(7, createDimensionTable_);
        }
        if (((bitField0_ & 0x00000080) == 0x00000080)) {
          size += com.google.protobuf.CodedOutputStream
            .computeMessageSize(8, createResultTable_);
        }
        if (((bitField0_ & 0x00000100) == 0x00000100)) {
          size += com.google.protobuf.CodedOutputStream
            .computeMessageSize(9, createTempTable_);
        }
        size += getUnknownFields().getSerializedSize();
        memoizedSerializedSize = size;
        return size;
      }
      
      private static final long serialVersionUID = 0L;
      @Override
      protected Object writeReplace()
          throws java.io.ObjectStreamException {
        return super.writeReplace();
      }
      
      public static DDL parseFrom(
          com.google.protobuf.ByteString data)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return newBuilder().mergeFrom(data).buildParsed();
      }
      public static DDL parseFrom(
          com.google.protobuf.ByteString data,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return newBuilder().mergeFrom(data, extensionRegistry)
                 .buildParsed();
      }
      public static DDL parseFrom(byte[] data)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return newBuilder().mergeFrom(data).buildParsed();
      }
      public static DDL parseFrom(
          byte[] data,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return newBuilder().mergeFrom(data, extensionRegistry)
                 .buildParsed();
      }
      public static DDL parseFrom(java.io.InputStream input)
          throws java.io.IOException {
        return newBuilder().mergeFrom(input).buildParsed();
      }
      public static DDL parseFrom(
          java.io.InputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        return newBuilder().mergeFrom(input, extensionRegistry)
                 .buildParsed();
      }
      public static DDL parseDelimitedFrom(java.io.InputStream input)
          throws java.io.IOException {
        Builder builder = newBuilder();
        if (builder.mergeDelimitedFrom(input)) {
          return builder.buildParsed();
        } else {
          return null;
        }
      }
      public static DDL parseDelimitedFrom(
          java.io.InputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        Builder builder = newBuilder();
        if (builder.mergeDelimitedFrom(input, extensionRegistry)) {
          return builder.buildParsed();
        } else {
          return null;
        }
      }
      public static DDL parseFrom(
          com.google.protobuf.CodedInputStream input)
          throws java.io.IOException {
        return newBuilder().mergeFrom(input).buildParsed();
      }
      public static DDL parseFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        return newBuilder().mergeFrom(input, extensionRegistry)
                 .buildParsed();
      }
      
      public static Builder newBuilder() { return Builder.create(); }
      public Builder newBuilderForType() { return newBuilder(); }
      public static Builder newBuilder(DDL prototype) {
        return newBuilder().mergeFrom(prototype);
      }
      public Builder toBuilder() { return newBuilder(this); }
      
      @Override
      protected Builder newBuilderForType(
          BuilderParent parent) {
        Builder builder = new Builder(parent);
        return builder;
      }
      public static final class Builder extends
          com.google.protobuf.GeneratedMessage.Builder<Builder>
         implements DDLOrBuilder {
        public static final com.google.protobuf.Descriptors.Descriptor
            getDescriptor() {
          return DDLProtos.internal_static_apsara_odps_lot_DDL_descriptor;
        }
        
        protected FieldAccessorTable
            internalGetFieldAccessorTable() {
          return DDLProtos.internal_static_apsara_odps_lot_DDL_fieldAccessorTable;
        }
        
        // Construct using apsara.odps.lot.DDLProtos.DDL.newBuilder()
        private Builder() {
          maybeForceBuilderInitialization();
        }
        
        private Builder(BuilderParent parent) {
          super(parent);
          maybeForceBuilderInitialization();
        }
        private void maybeForceBuilderInitialization() {
          if (com.google.protobuf.GeneratedMessage.alwaysUseFieldBuilders) {
            getCreateTableFieldBuilder();
            getCreateTableAsFieldBuilder();
            getCreateTableLikeFieldBuilder();
            getDropTableFieldBuilder();
            getCreateViewAsFieldBuilder();
            getCreateStreamTableFieldBuilder();
            getCreateDimensionTableFieldBuilder();
            getCreateResultTableFieldBuilder();
            getCreateTempTableFieldBuilder();
          }
        }
        private static Builder create() {
          return new Builder();
        }
        
        public Builder clear() {
          super.clear();
          if (createTableBuilder_ == null) {
            createTable_ = apsara.odps.DDLProtos.CreateTable.getDefaultInstance();
          } else {
            createTableBuilder_.clear();
          }
          bitField0_ = (bitField0_ & ~0x00000001);
          if (createTableAsBuilder_ == null) {
            createTableAs_ = CreateTableAs.getDefaultInstance();
          } else {
            createTableAsBuilder_.clear();
          }
          bitField0_ = (bitField0_ & ~0x00000002);
          if (createTableLikeBuilder_ == null) {
            createTableLike_ = apsara.odps.DDLProtos.CreateTableLike.getDefaultInstance();
          } else {
            createTableLikeBuilder_.clear();
          }
          bitField0_ = (bitField0_ & ~0x00000004);
          if (dropTableBuilder_ == null) {
            dropTable_ = apsara.odps.DDLProtos.DropTable.getDefaultInstance();
          } else {
            dropTableBuilder_.clear();
          }
          bitField0_ = (bitField0_ & ~0x00000008);
          if (createViewAsBuilder_ == null) {
            createViewAs_ = CreateViewAs.getDefaultInstance();
          } else {
            createViewAsBuilder_.clear();
          }
          bitField0_ = (bitField0_ & ~0x00000010);
          if (createStreamTableBuilder_ == null) {
            createStreamTable_ = apsara.odps.DDLProtos.CreateStreamTable.getDefaultInstance();
          } else {
            createStreamTableBuilder_.clear();
          }
          bitField0_ = (bitField0_ & ~0x00000020);
          if (createDimensionTableBuilder_ == null) {
            createDimensionTable_ = apsara.odps.DDLProtos.CreateDimensionTable.getDefaultInstance();
          } else {
            createDimensionTableBuilder_.clear();
          }
          bitField0_ = (bitField0_ & ~0x00000040);
          if (createResultTableBuilder_ == null) {
            createResultTable_ = apsara.odps.DDLProtos.CreateResultTable.getDefaultInstance();
          } else {
            createResultTableBuilder_.clear();
          }
          bitField0_ = (bitField0_ & ~0x00000080);
          if (createTempTableBuilder_ == null) {
            createTempTable_ = apsara.odps.DDLProtos.CreateTempTable.getDefaultInstance();
          } else {
            createTempTableBuilder_.clear();
          }
          bitField0_ = (bitField0_ & ~0x00000100);
          return this;
        }
        
        public Builder clone() {
          return create().mergeFrom(buildPartial());
        }
        
        public com.google.protobuf.Descriptors.Descriptor
            getDescriptorForType() {
          return DDL.getDescriptor();
        }
        
        public DDL getDefaultInstanceForType() {
          return DDL.getDefaultInstance();
        }
        
        public DDL build() {
          DDL result = buildPartial();
          if (!result.isInitialized()) {
            throw newUninitializedMessageException(result);
          }
          return result;
        }
        
        private DDL buildParsed()
            throws com.google.protobuf.InvalidProtocolBufferException {
          DDL result = buildPartial();
          if (!result.isInitialized()) {
            throw newUninitializedMessageException(
              result).asInvalidProtocolBufferException();
          }
          return result;
        }
        
        public DDL buildPartial() {
          DDL result = new DDL(this);
          int from_bitField0_ = bitField0_;
          int to_bitField0_ = 0;
          if (((from_bitField0_ & 0x00000001) == 0x00000001)) {
            to_bitField0_ |= 0x00000001;
          }
          if (createTableBuilder_ == null) {
            result.createTable_ = createTable_;
          } else {
            result.createTable_ = createTableBuilder_.build();
          }
          if (((from_bitField0_ & 0x00000002) == 0x00000002)) {
            to_bitField0_ |= 0x00000002;
          }
          if (createTableAsBuilder_ == null) {
            result.createTableAs_ = createTableAs_;
          } else {
            result.createTableAs_ = createTableAsBuilder_.build();
          }
          if (((from_bitField0_ & 0x00000004) == 0x00000004)) {
            to_bitField0_ |= 0x00000004;
          }
          if (createTableLikeBuilder_ == null) {
            result.createTableLike_ = createTableLike_;
          } else {
            result.createTableLike_ = createTableLikeBuilder_.build();
          }
          if (((from_bitField0_ & 0x00000008) == 0x00000008)) {
            to_bitField0_ |= 0x00000008;
          }
          if (dropTableBuilder_ == null) {
            result.dropTable_ = dropTable_;
          } else {
            result.dropTable_ = dropTableBuilder_.build();
          }
          if (((from_bitField0_ & 0x00000010) == 0x00000010)) {
            to_bitField0_ |= 0x00000010;
          }
          if (createViewAsBuilder_ == null) {
            result.createViewAs_ = createViewAs_;
          } else {
            result.createViewAs_ = createViewAsBuilder_.build();
          }
          if (((from_bitField0_ & 0x00000020) == 0x00000020)) {
            to_bitField0_ |= 0x00000020;
          }
          if (createStreamTableBuilder_ == null) {
            result.createStreamTable_ = createStreamTable_;
          } else {
            result.createStreamTable_ = createStreamTableBuilder_.build();
          }
          if (((from_bitField0_ & 0x00000040) == 0x00000040)) {
            to_bitField0_ |= 0x00000040;
          }
          if (createDimensionTableBuilder_ == null) {
            result.createDimensionTable_ = createDimensionTable_;
          } else {
            result.createDimensionTable_ = createDimensionTableBuilder_.build();
          }
          if (((from_bitField0_ & 0x00000080) == 0x00000080)) {
            to_bitField0_ |= 0x00000080;
          }
          if (createResultTableBuilder_ == null) {
            result.createResultTable_ = createResultTable_;
          } else {
            result.createResultTable_ = createResultTableBuilder_.build();
          }
          if (((from_bitField0_ & 0x00000100) == 0x00000100)) {
            to_bitField0_ |= 0x00000100;
          }
          if (createTempTableBuilder_ == null) {
            result.createTempTable_ = createTempTable_;
          } else {
            result.createTempTable_ = createTempTableBuilder_.build();
          }
          result.bitField0_ = to_bitField0_;
          onBuilt();
          return result;
        }
        
        public Builder mergeFrom(com.google.protobuf.Message other) {
          if (other instanceof DDL) {
            return mergeFrom((DDL)other);
          } else {
            super.mergeFrom(other);
            return this;
          }
        }
        
        public Builder mergeFrom(DDL other) {
          if (other == DDL.getDefaultInstance()) return this;
          if (other.hasCreateTable()) {
            mergeCreateTable(other.getCreateTable());
          }
          if (other.hasCreateTableAs()) {
            mergeCreateTableAs(other.getCreateTableAs());
          }
          if (other.hasCreateTableLike()) {
            mergeCreateTableLike(other.getCreateTableLike());
          }
          if (other.hasDropTable()) {
            mergeDropTable(other.getDropTable());
          }
          if (other.hasCreateViewAs()) {
            mergeCreateViewAs(other.getCreateViewAs());
          }
          if (other.hasCreateStreamTable()) {
            mergeCreateStreamTable(other.getCreateStreamTable());
          }
          if (other.hasCreateDimensionTable()) {
            mergeCreateDimensionTable(other.getCreateDimensionTable());
          }
          if (other.hasCreateResultTable()) {
            mergeCreateResultTable(other.getCreateResultTable());
          }
          if (other.hasCreateTempTable()) {
            mergeCreateTempTable(other.getCreateTempTable());
          }
          this.mergeUnknownFields(other.getUnknownFields());
          return this;
        }
        
        public final boolean isInitialized() {
          if (hasCreateTable()) {
            if (!getCreateTable().isInitialized()) {
              
              return false;
            }
          }
          if (hasCreateTableAs()) {
            if (!getCreateTableAs().isInitialized()) {
              
              return false;
            }
          }
          if (hasCreateTableLike()) {
            if (!getCreateTableLike().isInitialized()) {
              
              return false;
            }
          }
          if (hasDropTable()) {
            if (!getDropTable().isInitialized()) {
              
              return false;
            }
          }
          if (hasCreateViewAs()) {
            if (!getCreateViewAs().isInitialized()) {
              
              return false;
            }
          }
          if (hasCreateStreamTable()) {
            if (!getCreateStreamTable().isInitialized()) {
              
              return false;
            }
          }
          if (hasCreateDimensionTable()) {
            if (!getCreateDimensionTable().isInitialized()) {
              
              return false;
            }
          }
          if (hasCreateResultTable()) {
            if (!getCreateResultTable().isInitialized()) {
              
              return false;
            }
          }
          if (hasCreateTempTable()) {
            if (!getCreateTempTable().isInitialized()) {
              
              return false;
            }
          }
          return true;
        }
        
        public Builder mergeFrom(
            com.google.protobuf.CodedInputStream input,
            com.google.protobuf.ExtensionRegistryLite extensionRegistry)
            throws java.io.IOException {
          com.google.protobuf.UnknownFieldSet.Builder unknownFields =
            com.google.protobuf.UnknownFieldSet.newBuilder(
              this.getUnknownFields());
          while (true) {
            int tag = input.readTag();
            switch (tag) {
              case 0:
                this.setUnknownFields(unknownFields.build());
                onChanged();
                return this;
              default: {
                if (!parseUnknownField(input, unknownFields,
                                       extensionRegistry, tag)) {
                  this.setUnknownFields(unknownFields.build());
                  onChanged();
                  return this;
                }
                break;
              }
              case 10: {
                apsara.odps.DDLProtos.CreateTable.Builder subBuilder = apsara.odps.DDLProtos.CreateTable.newBuilder();
                if (hasCreateTable()) {
                  subBuilder.mergeFrom(getCreateTable());
                }
                input.readMessage(subBuilder, extensionRegistry);
                setCreateTable(subBuilder.buildPartial());
                break;
              }
              case 18: {
                CreateTableAs.Builder subBuilder = CreateTableAs.newBuilder();
                if (hasCreateTableAs()) {
                  subBuilder.mergeFrom(getCreateTableAs());
                }
                input.readMessage(subBuilder, extensionRegistry);
                setCreateTableAs(subBuilder.buildPartial());
                break;
              }
              case 26: {
                apsara.odps.DDLProtos.CreateTableLike.Builder subBuilder = apsara.odps.DDLProtos.CreateTableLike.newBuilder();
                if (hasCreateTableLike()) {
                  subBuilder.mergeFrom(getCreateTableLike());
                }
                input.readMessage(subBuilder, extensionRegistry);
                setCreateTableLike(subBuilder.buildPartial());
                break;
              }
              case 34: {
                apsara.odps.DDLProtos.DropTable.Builder subBuilder = apsara.odps.DDLProtos.DropTable.newBuilder();
                if (hasDropTable()) {
                  subBuilder.mergeFrom(getDropTable());
                }
                input.readMessage(subBuilder, extensionRegistry);
                setDropTable(subBuilder.buildPartial());
                break;
              }
              case 42: {
                CreateViewAs.Builder subBuilder = CreateViewAs.newBuilder();
                if (hasCreateViewAs()) {
                  subBuilder.mergeFrom(getCreateViewAs());
                }
                input.readMessage(subBuilder, extensionRegistry);
                setCreateViewAs(subBuilder.buildPartial());
                break;
              }
              case 50: {
                apsara.odps.DDLProtos.CreateStreamTable.Builder subBuilder = apsara.odps.DDLProtos.CreateStreamTable.newBuilder();
                if (hasCreateStreamTable()) {
                  subBuilder.mergeFrom(getCreateStreamTable());
                }
                input.readMessage(subBuilder, extensionRegistry);
                setCreateStreamTable(subBuilder.buildPartial());
                break;
              }
              case 58: {
                apsara.odps.DDLProtos.CreateDimensionTable.Builder subBuilder = apsara.odps.DDLProtos.CreateDimensionTable.newBuilder();
                if (hasCreateDimensionTable()) {
                  subBuilder.mergeFrom(getCreateDimensionTable());
                }
                input.readMessage(subBuilder, extensionRegistry);
                setCreateDimensionTable(subBuilder.buildPartial());
                break;
              }
              case 66: {
                apsara.odps.DDLProtos.CreateResultTable.Builder subBuilder = apsara.odps.DDLProtos.CreateResultTable.newBuilder();
                if (hasCreateResultTable()) {
                  subBuilder.mergeFrom(getCreateResultTable());
                }
                input.readMessage(subBuilder, extensionRegistry);
                setCreateResultTable(subBuilder.buildPartial());
                break;
              }
              case 74: {
                apsara.odps.DDLProtos.CreateTempTable.Builder subBuilder = apsara.odps.DDLProtos.CreateTempTable.newBuilder();
                if (hasCreateTempTable()) {
                  subBuilder.mergeFrom(getCreateTempTable());
                }
                input.readMessage(subBuilder, extensionRegistry);
                setCreateTempTable(subBuilder.buildPartial());
                break;
              }
            }
          }
        }
        
        private int bitField0_;
        
        // optional .apsara.odps.CreateTable CreateTable = 1;
        private apsara.odps.DDLProtos.CreateTable createTable_ = apsara.odps.DDLProtos.CreateTable.getDefaultInstance();
        private com.google.protobuf.SingleFieldBuilder<
            apsara.odps.DDLProtos.CreateTable, apsara.odps.DDLProtos.CreateTable.Builder, apsara.odps.DDLProtos.CreateTableOrBuilder> createTableBuilder_;
        public boolean hasCreateTable() {
          return ((bitField0_ & 0x00000001) == 0x00000001);
        }
        public apsara.odps.DDLProtos.CreateTable getCreateTable() {
          if (createTableBuilder_ == null) {
            return createTable_;
          } else {
            return createTableBuilder_.getMessage();
          }
        }
        public Builder setCreateTable(apsara.odps.DDLProtos.CreateTable value) {
          if (createTableBuilder_ == null) {
            if (value == null) {
              throw new NullPointerException();
            }
            createTable_ = value;
            onChanged();
          } else {
            createTableBuilder_.setMessage(value);
          }
          bitField0_ |= 0x00000001;
          return this;
        }
        public Builder setCreateTable(
            apsara.odps.DDLProtos.CreateTable.Builder builderForValue) {
          if (createTableBuilder_ == null) {
            createTable_ = builderForValue.build();
            onChanged();
          } else {
            createTableBuilder_.setMessage(builderForValue.build());
          }
          bitField0_ |= 0x00000001;
          return this;
        }
        public Builder mergeCreateTable(apsara.odps.DDLProtos.CreateTable value) {
          if (createTableBuilder_ == null) {
            if (((bitField0_ & 0x00000001) == 0x00000001) &&
                createTable_ != apsara.odps.DDLProtos.CreateTable.getDefaultInstance()) {
              createTable_ =
                apsara.odps.DDLProtos.CreateTable.newBuilder(createTable_).mergeFrom(value).buildPartial();
            } else {
              createTable_ = value;
            }
            onChanged();
          } else {
            createTableBuilder_.mergeFrom(value);
          }
          bitField0_ |= 0x00000001;
          return this;
        }
        public Builder clearCreateTable() {
          if (createTableBuilder_ == null) {
            createTable_ = apsara.odps.DDLProtos.CreateTable.getDefaultInstance();
            onChanged();
          } else {
            createTableBuilder_.clear();
          }
          bitField0_ = (bitField0_ & ~0x00000001);
          return this;
        }
        public apsara.odps.DDLProtos.CreateTable.Builder getCreateTableBuilder() {
          bitField0_ |= 0x00000001;
          onChanged();
          return getCreateTableFieldBuilder().getBuilder();
        }
        public apsara.odps.DDLProtos.CreateTableOrBuilder getCreateTableOrBuilder() {
          if (createTableBuilder_ != null) {
            return createTableBuilder_.getMessageOrBuilder();
          } else {
            return createTable_;
          }
        }
        private com.google.protobuf.SingleFieldBuilder<
            apsara.odps.DDLProtos.CreateTable, apsara.odps.DDLProtos.CreateTable.Builder, apsara.odps.DDLProtos.CreateTableOrBuilder> 
            getCreateTableFieldBuilder() {
          if (createTableBuilder_ == null) {
            createTableBuilder_ = new com.google.protobuf.SingleFieldBuilder<
                apsara.odps.DDLProtos.CreateTable, apsara.odps.DDLProtos.CreateTable.Builder, apsara.odps.DDLProtos.CreateTableOrBuilder>(
                    createTable_,
                    getParentForChildren(),
                    isClean());
            createTable_ = null;
          }
          return createTableBuilder_;
        }
        
        // optional .apsara.odps.lot.CreateTableAs CreateTableAs = 2;
        private CreateTableAs createTableAs_ = CreateTableAs.getDefaultInstance();
        private com.google.protobuf.SingleFieldBuilder<
            CreateTableAs, CreateTableAs.Builder, CreateTableAsOrBuilder> createTableAsBuilder_;
        public boolean hasCreateTableAs() {
          return ((bitField0_ & 0x00000002) == 0x00000002);
        }
        public CreateTableAs getCreateTableAs() {
          if (createTableAsBuilder_ == null) {
            return createTableAs_;
          } else {
            return createTableAsBuilder_.getMessage();
          }
        }
        public Builder setCreateTableAs(CreateTableAs value) {
          if (createTableAsBuilder_ == null) {
            if (value == null) {
              throw new NullPointerException();
            }
            createTableAs_ = value;
            onChanged();
          } else {
            createTableAsBuilder_.setMessage(value);
          }
          bitField0_ |= 0x00000002;
          return this;
        }
        public Builder setCreateTableAs(
            CreateTableAs.Builder builderForValue) {
          if (createTableAsBuilder_ == null) {
            createTableAs_ = builderForValue.build();
            onChanged();
          } else {
            createTableAsBuilder_.setMessage(builderForValue.build());
          }
          bitField0_ |= 0x00000002;
          return this;
        }
        public Builder mergeCreateTableAs(CreateTableAs value) {
          if (createTableAsBuilder_ == null) {
            if (((bitField0_ & 0x00000002) == 0x00000002) &&
                createTableAs_ != CreateTableAs.getDefaultInstance()) {
              createTableAs_ =
                CreateTableAs.newBuilder(createTableAs_).mergeFrom(value).buildPartial();
            } else {
              createTableAs_ = value;
            }
            onChanged();
          } else {
            createTableAsBuilder_.mergeFrom(value);
          }
          bitField0_ |= 0x00000002;
          return this;
        }
        public Builder clearCreateTableAs() {
          if (createTableAsBuilder_ == null) {
            createTableAs_ = CreateTableAs.getDefaultInstance();
            onChanged();
          } else {
            createTableAsBuilder_.clear();
          }
          bitField0_ = (bitField0_ & ~0x00000002);
          return this;
        }
        public CreateTableAs.Builder getCreateTableAsBuilder() {
          bitField0_ |= 0x00000002;
          onChanged();
          return getCreateTableAsFieldBuilder().getBuilder();
        }
        public CreateTableAsOrBuilder getCreateTableAsOrBuilder() {
          if (createTableAsBuilder_ != null) {
            return createTableAsBuilder_.getMessageOrBuilder();
          } else {
            return createTableAs_;
          }
        }
        private com.google.protobuf.SingleFieldBuilder<
            CreateTableAs, CreateTableAs.Builder, CreateTableAsOrBuilder>
            getCreateTableAsFieldBuilder() {
          if (createTableAsBuilder_ == null) {
            createTableAsBuilder_ = new com.google.protobuf.SingleFieldBuilder<
                CreateTableAs, CreateTableAs.Builder, CreateTableAsOrBuilder>(
                    createTableAs_,
                    getParentForChildren(),
                    isClean());
            createTableAs_ = null;
          }
          return createTableAsBuilder_;
        }
        
        // optional .apsara.odps.CreateTableLike CreateTableLike = 3;
        private apsara.odps.DDLProtos.CreateTableLike createTableLike_ = apsara.odps.DDLProtos.CreateTableLike.getDefaultInstance();
        private com.google.protobuf.SingleFieldBuilder<
            apsara.odps.DDLProtos.CreateTableLike, apsara.odps.DDLProtos.CreateTableLike.Builder, apsara.odps.DDLProtos.CreateTableLikeOrBuilder> createTableLikeBuilder_;
        public boolean hasCreateTableLike() {
          return ((bitField0_ & 0x00000004) == 0x00000004);
        }
        public apsara.odps.DDLProtos.CreateTableLike getCreateTableLike() {
          if (createTableLikeBuilder_ == null) {
            return createTableLike_;
          } else {
            return createTableLikeBuilder_.getMessage();
          }
        }
        public Builder setCreateTableLike(apsara.odps.DDLProtos.CreateTableLike value) {
          if (createTableLikeBuilder_ == null) {
            if (value == null) {
              throw new NullPointerException();
            }
            createTableLike_ = value;
            onChanged();
          } else {
            createTableLikeBuilder_.setMessage(value);
          }
          bitField0_ |= 0x00000004;
          return this;
        }
        public Builder setCreateTableLike(
            apsara.odps.DDLProtos.CreateTableLike.Builder builderForValue) {
          if (createTableLikeBuilder_ == null) {
            createTableLike_ = builderForValue.build();
            onChanged();
          } else {
            createTableLikeBuilder_.setMessage(builderForValue.build());
          }
          bitField0_ |= 0x00000004;
          return this;
        }
        public Builder mergeCreateTableLike(apsara.odps.DDLProtos.CreateTableLike value) {
          if (createTableLikeBuilder_ == null) {
            if (((bitField0_ & 0x00000004) == 0x00000004) &&
                createTableLike_ != apsara.odps.DDLProtos.CreateTableLike.getDefaultInstance()) {
              createTableLike_ =
                apsara.odps.DDLProtos.CreateTableLike.newBuilder(createTableLike_).mergeFrom(value).buildPartial();
            } else {
              createTableLike_ = value;
            }
            onChanged();
          } else {
            createTableLikeBuilder_.mergeFrom(value);
          }
          bitField0_ |= 0x00000004;
          return this;
        }
        public Builder clearCreateTableLike() {
          if (createTableLikeBuilder_ == null) {
            createTableLike_ = apsara.odps.DDLProtos.CreateTableLike.getDefaultInstance();
            onChanged();
          } else {
            createTableLikeBuilder_.clear();
          }
          bitField0_ = (bitField0_ & ~0x00000004);
          return this;
        }
        public apsara.odps.DDLProtos.CreateTableLike.Builder getCreateTableLikeBuilder() {
          bitField0_ |= 0x00000004;
          onChanged();
          return getCreateTableLikeFieldBuilder().getBuilder();
        }
        public apsara.odps.DDLProtos.CreateTableLikeOrBuilder getCreateTableLikeOrBuilder() {
          if (createTableLikeBuilder_ != null) {
            return createTableLikeBuilder_.getMessageOrBuilder();
          } else {
            return createTableLike_;
          }
        }
        private com.google.protobuf.SingleFieldBuilder<
            apsara.odps.DDLProtos.CreateTableLike, apsara.odps.DDLProtos.CreateTableLike.Builder, apsara.odps.DDLProtos.CreateTableLikeOrBuilder> 
            getCreateTableLikeFieldBuilder() {
          if (createTableLikeBuilder_ == null) {
            createTableLikeBuilder_ = new com.google.protobuf.SingleFieldBuilder<
                apsara.odps.DDLProtos.CreateTableLike, apsara.odps.DDLProtos.CreateTableLike.Builder, apsara.odps.DDLProtos.CreateTableLikeOrBuilder>(
                    createTableLike_,
                    getParentForChildren(),
                    isClean());
            createTableLike_ = null;
          }
          return createTableLikeBuilder_;
        }
        
        // optional .apsara.odps.DropTable DropTable = 4;
        private apsara.odps.DDLProtos.DropTable dropTable_ = apsara.odps.DDLProtos.DropTable.getDefaultInstance();
        private com.google.protobuf.SingleFieldBuilder<
            apsara.odps.DDLProtos.DropTable, apsara.odps.DDLProtos.DropTable.Builder, apsara.odps.DDLProtos.DropTableOrBuilder> dropTableBuilder_;
        public boolean hasDropTable() {
          return ((bitField0_ & 0x00000008) == 0x00000008);
        }
        public apsara.odps.DDLProtos.DropTable getDropTable() {
          if (dropTableBuilder_ == null) {
            return dropTable_;
          } else {
            return dropTableBuilder_.getMessage();
          }
        }
        public Builder setDropTable(apsara.odps.DDLProtos.DropTable value) {
          if (dropTableBuilder_ == null) {
            if (value == null) {
              throw new NullPointerException();
            }
            dropTable_ = value;
            onChanged();
          } else {
            dropTableBuilder_.setMessage(value);
          }
          bitField0_ |= 0x00000008;
          return this;
        }
        public Builder setDropTable(
            apsara.odps.DDLProtos.DropTable.Builder builderForValue) {
          if (dropTableBuilder_ == null) {
            dropTable_ = builderForValue.build();
            onChanged();
          } else {
            dropTableBuilder_.setMessage(builderForValue.build());
          }
          bitField0_ |= 0x00000008;
          return this;
        }
        public Builder mergeDropTable(apsara.odps.DDLProtos.DropTable value) {
          if (dropTableBuilder_ == null) {
            if (((bitField0_ & 0x00000008) == 0x00000008) &&
                dropTable_ != apsara.odps.DDLProtos.DropTable.getDefaultInstance()) {
              dropTable_ =
                apsara.odps.DDLProtos.DropTable.newBuilder(dropTable_).mergeFrom(value).buildPartial();
            } else {
              dropTable_ = value;
            }
            onChanged();
          } else {
            dropTableBuilder_.mergeFrom(value);
          }
          bitField0_ |= 0x00000008;
          return this;
        }
        public Builder clearDropTable() {
          if (dropTableBuilder_ == null) {
            dropTable_ = apsara.odps.DDLProtos.DropTable.getDefaultInstance();
            onChanged();
          } else {
            dropTableBuilder_.clear();
          }
          bitField0_ = (bitField0_ & ~0x00000008);
          return this;
        }
        public apsara.odps.DDLProtos.DropTable.Builder getDropTableBuilder() {
          bitField0_ |= 0x00000008;
          onChanged();
          return getDropTableFieldBuilder().getBuilder();
        }
        public apsara.odps.DDLProtos.DropTableOrBuilder getDropTableOrBuilder() {
          if (dropTableBuilder_ != null) {
            return dropTableBuilder_.getMessageOrBuilder();
          } else {
            return dropTable_;
          }
        }
        private com.google.protobuf.SingleFieldBuilder<
            apsara.odps.DDLProtos.DropTable, apsara.odps.DDLProtos.DropTable.Builder, apsara.odps.DDLProtos.DropTableOrBuilder> 
            getDropTableFieldBuilder() {
          if (dropTableBuilder_ == null) {
            dropTableBuilder_ = new com.google.protobuf.SingleFieldBuilder<
                apsara.odps.DDLProtos.DropTable, apsara.odps.DDLProtos.DropTable.Builder, apsara.odps.DDLProtos.DropTableOrBuilder>(
                    dropTable_,
                    getParentForChildren(),
                    isClean());
            dropTable_ = null;
          }
          return dropTableBuilder_;
        }
        
        // optional .apsara.odps.lot.CreateViewAs CreateViewAs = 5;
        private CreateViewAs createViewAs_ = CreateViewAs.getDefaultInstance();
        private com.google.protobuf.SingleFieldBuilder<
            CreateViewAs, CreateViewAs.Builder, CreateViewAsOrBuilder> createViewAsBuilder_;
        public boolean hasCreateViewAs() {
          return ((bitField0_ & 0x00000010) == 0x00000010);
        }
        public CreateViewAs getCreateViewAs() {
          if (createViewAsBuilder_ == null) {
            return createViewAs_;
          } else {
            return createViewAsBuilder_.getMessage();
          }
        }
        public Builder setCreateViewAs(CreateViewAs value) {
          if (createViewAsBuilder_ == null) {
            if (value == null) {
              throw new NullPointerException();
            }
            createViewAs_ = value;
            onChanged();
          } else {
            createViewAsBuilder_.setMessage(value);
          }
          bitField0_ |= 0x00000010;
          return this;
        }
        public Builder setCreateViewAs(
            CreateViewAs.Builder builderForValue) {
          if (createViewAsBuilder_ == null) {
            createViewAs_ = builderForValue.build();
            onChanged();
          } else {
            createViewAsBuilder_.setMessage(builderForValue.build());
          }
          bitField0_ |= 0x00000010;
          return this;
        }
        public Builder mergeCreateViewAs(CreateViewAs value) {
          if (createViewAsBuilder_ == null) {
            if (((bitField0_ & 0x00000010) == 0x00000010) &&
                createViewAs_ != CreateViewAs.getDefaultInstance()) {
              createViewAs_ =
                CreateViewAs.newBuilder(createViewAs_).mergeFrom(value).buildPartial();
            } else {
              createViewAs_ = value;
            }
            onChanged();
          } else {
            createViewAsBuilder_.mergeFrom(value);
          }
          bitField0_ |= 0x00000010;
          return this;
        }
        public Builder clearCreateViewAs() {
          if (createViewAsBuilder_ == null) {
            createViewAs_ = CreateViewAs.getDefaultInstance();
            onChanged();
          } else {
            createViewAsBuilder_.clear();
          }
          bitField0_ = (bitField0_ & ~0x00000010);
          return this;
        }
        public CreateViewAs.Builder getCreateViewAsBuilder() {
          bitField0_ |= 0x00000010;
          onChanged();
          return getCreateViewAsFieldBuilder().getBuilder();
        }
        public CreateViewAsOrBuilder getCreateViewAsOrBuilder() {
          if (createViewAsBuilder_ != null) {
            return createViewAsBuilder_.getMessageOrBuilder();
          } else {
            return createViewAs_;
          }
        }
        private com.google.protobuf.SingleFieldBuilder<
            CreateViewAs, CreateViewAs.Builder, CreateViewAsOrBuilder>
            getCreateViewAsFieldBuilder() {
          if (createViewAsBuilder_ == null) {
            createViewAsBuilder_ = new com.google.protobuf.SingleFieldBuilder<
                CreateViewAs, CreateViewAs.Builder, CreateViewAsOrBuilder>(
                    createViewAs_,
                    getParentForChildren(),
                    isClean());
            createViewAs_ = null;
          }
          return createViewAsBuilder_;
        }
        
        // optional .apsara.odps.CreateStreamTable CreateStreamTable = 6;
        private apsara.odps.DDLProtos.CreateStreamTable createStreamTable_ = apsara.odps.DDLProtos.CreateStreamTable.getDefaultInstance();
        private com.google.protobuf.SingleFieldBuilder<
            apsara.odps.DDLProtos.CreateStreamTable, apsara.odps.DDLProtos.CreateStreamTable.Builder, apsara.odps.DDLProtos.CreateStreamTableOrBuilder> createStreamTableBuilder_;
        public boolean hasCreateStreamTable() {
          return ((bitField0_ & 0x00000020) == 0x00000020);
        }
        public apsara.odps.DDLProtos.CreateStreamTable getCreateStreamTable() {
          if (createStreamTableBuilder_ == null) {
            return createStreamTable_;
          } else {
            return createStreamTableBuilder_.getMessage();
          }
        }
        public Builder setCreateStreamTable(apsara.odps.DDLProtos.CreateStreamTable value) {
          if (createStreamTableBuilder_ == null) {
            if (value == null) {
              throw new NullPointerException();
            }
            createStreamTable_ = value;
            onChanged();
          } else {
            createStreamTableBuilder_.setMessage(value);
          }
          bitField0_ |= 0x00000020;
          return this;
        }
        public Builder setCreateStreamTable(
            apsara.odps.DDLProtos.CreateStreamTable.Builder builderForValue) {
          if (createStreamTableBuilder_ == null) {
            createStreamTable_ = builderForValue.build();
            onChanged();
          } else {
            createStreamTableBuilder_.setMessage(builderForValue.build());
          }
          bitField0_ |= 0x00000020;
          return this;
        }
        public Builder mergeCreateStreamTable(apsara.odps.DDLProtos.CreateStreamTable value) {
          if (createStreamTableBuilder_ == null) {
            if (((bitField0_ & 0x00000020) == 0x00000020) &&
                createStreamTable_ != apsara.odps.DDLProtos.CreateStreamTable.getDefaultInstance()) {
              createStreamTable_ =
                apsara.odps.DDLProtos.CreateStreamTable.newBuilder(createStreamTable_).mergeFrom(value).buildPartial();
            } else {
              createStreamTable_ = value;
            }
            onChanged();
          } else {
            createStreamTableBuilder_.mergeFrom(value);
          }
          bitField0_ |= 0x00000020;
          return this;
        }
        public Builder clearCreateStreamTable() {
          if (createStreamTableBuilder_ == null) {
            createStreamTable_ = apsara.odps.DDLProtos.CreateStreamTable.getDefaultInstance();
            onChanged();
          } else {
            createStreamTableBuilder_.clear();
          }
          bitField0_ = (bitField0_ & ~0x00000020);
          return this;
        }
        public apsara.odps.DDLProtos.CreateStreamTable.Builder getCreateStreamTableBuilder() {
          bitField0_ |= 0x00000020;
          onChanged();
          return getCreateStreamTableFieldBuilder().getBuilder();
        }
        public apsara.odps.DDLProtos.CreateStreamTableOrBuilder getCreateStreamTableOrBuilder() {
          if (createStreamTableBuilder_ != null) {
            return createStreamTableBuilder_.getMessageOrBuilder();
          } else {
            return createStreamTable_;
          }
        }
        private com.google.protobuf.SingleFieldBuilder<
            apsara.odps.DDLProtos.CreateStreamTable, apsara.odps.DDLProtos.CreateStreamTable.Builder, apsara.odps.DDLProtos.CreateStreamTableOrBuilder> 
            getCreateStreamTableFieldBuilder() {
          if (createStreamTableBuilder_ == null) {
            createStreamTableBuilder_ = new com.google.protobuf.SingleFieldBuilder<
                apsara.odps.DDLProtos.CreateStreamTable, apsara.odps.DDLProtos.CreateStreamTable.Builder, apsara.odps.DDLProtos.CreateStreamTableOrBuilder>(
                    createStreamTable_,
                    getParentForChildren(),
                    isClean());
            createStreamTable_ = null;
          }
          return createStreamTableBuilder_;
        }
        
        // optional .apsara.odps.CreateDimensionTable CreateDimensionTable = 7;
        private apsara.odps.DDLProtos.CreateDimensionTable createDimensionTable_ = apsara.odps.DDLProtos.CreateDimensionTable.getDefaultInstance();
        private com.google.protobuf.SingleFieldBuilder<
            apsara.odps.DDLProtos.CreateDimensionTable, apsara.odps.DDLProtos.CreateDimensionTable.Builder, apsara.odps.DDLProtos.CreateDimensionTableOrBuilder> createDimensionTableBuilder_;
        public boolean hasCreateDimensionTable() {
          return ((bitField0_ & 0x00000040) == 0x00000040);
        }
        public apsara.odps.DDLProtos.CreateDimensionTable getCreateDimensionTable() {
          if (createDimensionTableBuilder_ == null) {
            return createDimensionTable_;
          } else {
            return createDimensionTableBuilder_.getMessage();
          }
        }
        public Builder setCreateDimensionTable(apsara.odps.DDLProtos.CreateDimensionTable value) {
          if (createDimensionTableBuilder_ == null) {
            if (value == null) {
              throw new NullPointerException();
            }
            createDimensionTable_ = value;
            onChanged();
          } else {
            createDimensionTableBuilder_.setMessage(value);
          }
          bitField0_ |= 0x00000040;
          return this;
        }
        public Builder setCreateDimensionTable(
            apsara.odps.DDLProtos.CreateDimensionTable.Builder builderForValue) {
          if (createDimensionTableBuilder_ == null) {
            createDimensionTable_ = builderForValue.build();
            onChanged();
          } else {
            createDimensionTableBuilder_.setMessage(builderForValue.build());
          }
          bitField0_ |= 0x00000040;
          return this;
        }
        public Builder mergeCreateDimensionTable(apsara.odps.DDLProtos.CreateDimensionTable value) {
          if (createDimensionTableBuilder_ == null) {
            if (((bitField0_ & 0x00000040) == 0x00000040) &&
                createDimensionTable_ != apsara.odps.DDLProtos.CreateDimensionTable.getDefaultInstance()) {
              createDimensionTable_ =
                apsara.odps.DDLProtos.CreateDimensionTable.newBuilder(createDimensionTable_).mergeFrom(value).buildPartial();
            } else {
              createDimensionTable_ = value;
            }
            onChanged();
          } else {
            createDimensionTableBuilder_.mergeFrom(value);
          }
          bitField0_ |= 0x00000040;
          return this;
        }
        public Builder clearCreateDimensionTable() {
          if (createDimensionTableBuilder_ == null) {
            createDimensionTable_ = apsara.odps.DDLProtos.CreateDimensionTable.getDefaultInstance();
            onChanged();
          } else {
            createDimensionTableBuilder_.clear();
          }
          bitField0_ = (bitField0_ & ~0x00000040);
          return this;
        }
        public apsara.odps.DDLProtos.CreateDimensionTable.Builder getCreateDimensionTableBuilder() {
          bitField0_ |= 0x00000040;
          onChanged();
          return getCreateDimensionTableFieldBuilder().getBuilder();
        }
        public apsara.odps.DDLProtos.CreateDimensionTableOrBuilder getCreateDimensionTableOrBuilder() {
          if (createDimensionTableBuilder_ != null) {
            return createDimensionTableBuilder_.getMessageOrBuilder();
          } else {
            return createDimensionTable_;
          }
        }
        private com.google.protobuf.SingleFieldBuilder<
            apsara.odps.DDLProtos.CreateDimensionTable, apsara.odps.DDLProtos.CreateDimensionTable.Builder, apsara.odps.DDLProtos.CreateDimensionTableOrBuilder> 
            getCreateDimensionTableFieldBuilder() {
          if (createDimensionTableBuilder_ == null) {
            createDimensionTableBuilder_ = new com.google.protobuf.SingleFieldBuilder<
                apsara.odps.DDLProtos.CreateDimensionTable, apsara.odps.DDLProtos.CreateDimensionTable.Builder, apsara.odps.DDLProtos.CreateDimensionTableOrBuilder>(
                    createDimensionTable_,
                    getParentForChildren(),
                    isClean());
            createDimensionTable_ = null;
          }
          return createDimensionTableBuilder_;
        }
        
        // optional .apsara.odps.CreateResultTable CreateResultTable = 8;
        private apsara.odps.DDLProtos.CreateResultTable createResultTable_ = apsara.odps.DDLProtos.CreateResultTable.getDefaultInstance();
        private com.google.protobuf.SingleFieldBuilder<
            apsara.odps.DDLProtos.CreateResultTable, apsara.odps.DDLProtos.CreateResultTable.Builder, apsara.odps.DDLProtos.CreateResultTableOrBuilder> createResultTableBuilder_;
        public boolean hasCreateResultTable() {
          return ((bitField0_ & 0x00000080) == 0x00000080);
        }
        public apsara.odps.DDLProtos.CreateResultTable getCreateResultTable() {
          if (createResultTableBuilder_ == null) {
            return createResultTable_;
          } else {
            return createResultTableBuilder_.getMessage();
          }
        }
        public Builder setCreateResultTable(apsara.odps.DDLProtos.CreateResultTable value) {
          if (createResultTableBuilder_ == null) {
            if (value == null) {
              throw new NullPointerException();
            }
            createResultTable_ = value;
            onChanged();
          } else {
            createResultTableBuilder_.setMessage(value);
          }
          bitField0_ |= 0x00000080;
          return this;
        }
        public Builder setCreateResultTable(
            apsara.odps.DDLProtos.CreateResultTable.Builder builderForValue) {
          if (createResultTableBuilder_ == null) {
            createResultTable_ = builderForValue.build();
            onChanged();
          } else {
            createResultTableBuilder_.setMessage(builderForValue.build());
          }
          bitField0_ |= 0x00000080;
          return this;
        }
        public Builder mergeCreateResultTable(apsara.odps.DDLProtos.CreateResultTable value) {
          if (createResultTableBuilder_ == null) {
            if (((bitField0_ & 0x00000080) == 0x00000080) &&
                createResultTable_ != apsara.odps.DDLProtos.CreateResultTable.getDefaultInstance()) {
              createResultTable_ =
                apsara.odps.DDLProtos.CreateResultTable.newBuilder(createResultTable_).mergeFrom(value).buildPartial();
            } else {
              createResultTable_ = value;
            }
            onChanged();
          } else {
            createResultTableBuilder_.mergeFrom(value);
          }
          bitField0_ |= 0x00000080;
          return this;
        }
        public Builder clearCreateResultTable() {
          if (createResultTableBuilder_ == null) {
            createResultTable_ = apsara.odps.DDLProtos.CreateResultTable.getDefaultInstance();
            onChanged();
          } else {
            createResultTableBuilder_.clear();
          }
          bitField0_ = (bitField0_ & ~0x00000080);
          return this;
        }
        public apsara.odps.DDLProtos.CreateResultTable.Builder getCreateResultTableBuilder() {
          bitField0_ |= 0x00000080;
          onChanged();
          return getCreateResultTableFieldBuilder().getBuilder();
        }
        public apsara.odps.DDLProtos.CreateResultTableOrBuilder getCreateResultTableOrBuilder() {
          if (createResultTableBuilder_ != null) {
            return createResultTableBuilder_.getMessageOrBuilder();
          } else {
            return createResultTable_;
          }
        }
        private com.google.protobuf.SingleFieldBuilder<
            apsara.odps.DDLProtos.CreateResultTable, apsara.odps.DDLProtos.CreateResultTable.Builder, apsara.odps.DDLProtos.CreateResultTableOrBuilder> 
            getCreateResultTableFieldBuilder() {
          if (createResultTableBuilder_ == null) {
            createResultTableBuilder_ = new com.google.protobuf.SingleFieldBuilder<
                apsara.odps.DDLProtos.CreateResultTable, apsara.odps.DDLProtos.CreateResultTable.Builder, apsara.odps.DDLProtos.CreateResultTableOrBuilder>(
                    createResultTable_,
                    getParentForChildren(),
                    isClean());
            createResultTable_ = null;
          }
          return createResultTableBuilder_;
        }
        
        // optional .apsara.odps.CreateTempTable CreateTempTable = 9;
        private apsara.odps.DDLProtos.CreateTempTable createTempTable_ = apsara.odps.DDLProtos.CreateTempTable.getDefaultInstance();
        private com.google.protobuf.SingleFieldBuilder<
            apsara.odps.DDLProtos.CreateTempTable, apsara.odps.DDLProtos.CreateTempTable.Builder, apsara.odps.DDLProtos.CreateTempTableOrBuilder> createTempTableBuilder_;
        public boolean hasCreateTempTable() {
          return ((bitField0_ & 0x00000100) == 0x00000100);
        }
        public apsara.odps.DDLProtos.CreateTempTable getCreateTempTable() {
          if (createTempTableBuilder_ == null) {
            return createTempTable_;
          } else {
            return createTempTableBuilder_.getMessage();
          }
        }
        public Builder setCreateTempTable(apsara.odps.DDLProtos.CreateTempTable value) {
          if (createTempTableBuilder_ == null) {
            if (value == null) {
              throw new NullPointerException();
            }
            createTempTable_ = value;
            onChanged();
          } else {
            createTempTableBuilder_.setMessage(value);
          }
          bitField0_ |= 0x00000100;
          return this;
        }
        public Builder setCreateTempTable(
            apsara.odps.DDLProtos.CreateTempTable.Builder builderForValue) {
          if (createTempTableBuilder_ == null) {
            createTempTable_ = builderForValue.build();
            onChanged();
          } else {
            createTempTableBuilder_.setMessage(builderForValue.build());
          }
          bitField0_ |= 0x00000100;
          return this;
        }
        public Builder mergeCreateTempTable(apsara.odps.DDLProtos.CreateTempTable value) {
          if (createTempTableBuilder_ == null) {
            if (((bitField0_ & 0x00000100) == 0x00000100) &&
                createTempTable_ != apsara.odps.DDLProtos.CreateTempTable.getDefaultInstance()) {
              createTempTable_ =
                apsara.odps.DDLProtos.CreateTempTable.newBuilder(createTempTable_).mergeFrom(value).buildPartial();
            } else {
              createTempTable_ = value;
            }
            onChanged();
          } else {
            createTempTableBuilder_.mergeFrom(value);
          }
          bitField0_ |= 0x00000100;
          return this;
        }
        public Builder clearCreateTempTable() {
          if (createTempTableBuilder_ == null) {
            createTempTable_ = apsara.odps.DDLProtos.CreateTempTable.getDefaultInstance();
            onChanged();
          } else {
            createTempTableBuilder_.clear();
          }
          bitField0_ = (bitField0_ & ~0x00000100);
          return this;
        }
        public apsara.odps.DDLProtos.CreateTempTable.Builder getCreateTempTableBuilder() {
          bitField0_ |= 0x00000100;
          onChanged();
          return getCreateTempTableFieldBuilder().getBuilder();
        }
        public apsara.odps.DDLProtos.CreateTempTableOrBuilder getCreateTempTableOrBuilder() {
          if (createTempTableBuilder_ != null) {
            return createTempTableBuilder_.getMessageOrBuilder();
          } else {
            return createTempTable_;
          }
        }
        private com.google.protobuf.SingleFieldBuilder<
            apsara.odps.DDLProtos.CreateTempTable, apsara.odps.DDLProtos.CreateTempTable.Builder, apsara.odps.DDLProtos.CreateTempTableOrBuilder> 
            getCreateTempTableFieldBuilder() {
          if (createTempTableBuilder_ == null) {
            createTempTableBuilder_ = new com.google.protobuf.SingleFieldBuilder<
                apsara.odps.DDLProtos.CreateTempTable, apsara.odps.DDLProtos.CreateTempTable.Builder, apsara.odps.DDLProtos.CreateTempTableOrBuilder>(
                    createTempTable_,
                    getParentForChildren(),
                    isClean());
            createTempTable_ = null;
          }
          return createTempTableBuilder_;
        }
        
        // @@protoc_insertion_point(builder_scope:apsara.odps.lot.DDL)
      }
      
      static {
        defaultInstance = new DDL(true);
        defaultInstance.initFields();
      }
      
      // @@protoc_insertion_point(class_scope:apsara.odps.lot.DDL)
    }
    
    private static com.google.protobuf.Descriptors.Descriptor
      internal_static_apsara_odps_lot_CreateTableAs_descriptor;
    private static
      com.google.protobuf.GeneratedMessage.FieldAccessorTable
        internal_static_apsara_odps_lot_CreateTableAs_fieldAccessorTable;
    private static com.google.protobuf.Descriptors.Descriptor
      internal_static_apsara_odps_lot_CreateTableAs_Properties_descriptor;
    private static
      com.google.protobuf.GeneratedMessage.FieldAccessorTable
        internal_static_apsara_odps_lot_CreateTableAs_Properties_fieldAccessorTable;
    private static com.google.protobuf.Descriptors.Descriptor
      internal_static_apsara_odps_lot_CreateViewAs_descriptor;
    private static
      com.google.protobuf.GeneratedMessage.FieldAccessorTable
        internal_static_apsara_odps_lot_CreateViewAs_fieldAccessorTable;
    private static com.google.protobuf.Descriptors.Descriptor
      internal_static_apsara_odps_lot_DDL_descriptor;
    private static
      com.google.protobuf.GeneratedMessage.FieldAccessorTable
        internal_static_apsara_odps_lot_DDL_fieldAccessorTable;
    
    public static com.google.protobuf.Descriptors.FileDescriptor
        getDescriptor() {
      return descriptor;
    }
    private static com.google.protobuf.Descriptors.FileDescriptor
        descriptor;
    static {
      String[] descriptorData = {
        "\n\rlot/ddl.proto\022\017apsara.odps.lot\032\rlot/lo" +
        "t.proto\032\020common/ddl.proto\"\332\001\n\rCreateTabl" +
        "eAs\0221\n\003Lot\030\001 \002(\0132$.apsara.odps.lot.Logic" +
        "alOperatorTree\022=\n\nproperties\030\002 \003(\n2).aps" +
        "ara.odps.lot.CreateTableAs.Properties\022\032\n" +
        "\013IfNotExists\030\003 \001(\010:\005false\022\021\n\tLifeCycle\030\004" +
        " \001(\005\032(\n\nProperties\022\013\n\003Key\030\001 \002(\t\022\r\n\005Value" +
        "\030\002 \002(\t\"`\n\014CreateViewAs\0221\n\003Lot\030\001 \002(\0132$.ap" +
        "sara.odps.lot.LogicalOperatorTree\022\017\n\007Pro" +
        "ject\030\002 \002(\t\022\014\n\004Name\030\003 \002(\t\"\360\003\n\003DDL\022-\n\013Crea",
        "teTable\030\001 \001(\0132\030.apsara.odps.CreateTable\022" +
        "5\n\rCreateTableAs\030\002 \001(\0132\036.apsara.odps.lot" +
        ".CreateTableAs\0225\n\017CreateTableLike\030\003 \001(\0132" +
        "\034.apsara.odps.CreateTableLike\022)\n\tDropTab" +
        "le\030\004 \001(\0132\026.apsara.odps.DropTable\0223\n\014Crea" +
        "teViewAs\030\005 \001(\0132\035.apsara.odps.lot.CreateV" +
        "iewAs\0229\n\021CreateStreamTable\030\006 \001(\0132\036.apsar" +
        "a.odps.CreateStreamTable\022?\n\024CreateDimens" +
        "ionTable\030\007 \001(\0132!.apsara.odps.CreateDimen" +
        "sionTable\0229\n\021CreateResultTable\030\010 \001(\0132\036.a",
        "psara.odps.CreateResultTable\0225\n\017CreateTe" +
        "mpTable\030\t \001(\0132\034.apsara.odps.CreateTempTa" +
        "bleB\013B\tDDLProtos"
      };
      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;
            internal_static_apsara_odps_lot_CreateTableAs_descriptor =
              getDescriptor().getMessageTypes().get(0);
            internal_static_apsara_odps_lot_CreateTableAs_fieldAccessorTable = new
              com.google.protobuf.GeneratedMessage.FieldAccessorTable(
                internal_static_apsara_odps_lot_CreateTableAs_descriptor,
                new String[] { "Lot", "Properties", "IfNotExists", "LifeCycle", },
                CreateTableAs.class,
                CreateTableAs.Builder.class);
            internal_static_apsara_odps_lot_CreateTableAs_Properties_descriptor =
              internal_static_apsara_odps_lot_CreateTableAs_descriptor.getNestedTypes().get(0);
            internal_static_apsara_odps_lot_CreateTableAs_Properties_fieldAccessorTable = new
              com.google.protobuf.GeneratedMessage.FieldAccessorTable(
                internal_static_apsara_odps_lot_CreateTableAs_Properties_descriptor,
                new String[] { "Key", "Value", },
                CreateTableAs.Properties.class,
                CreateTableAs.Properties.Builder.class);
            internal_static_apsara_odps_lot_CreateViewAs_descriptor =
              getDescriptor().getMessageTypes().get(1);
            internal_static_apsara_odps_lot_CreateViewAs_fieldAccessorTable = new
              com.google.protobuf.GeneratedMessage.FieldAccessorTable(
                internal_static_apsara_odps_lot_CreateViewAs_descriptor,
                new String[] { "Lot", "Project", "Name", },
                CreateViewAs.class,
                CreateViewAs.Builder.class);
            internal_static_apsara_odps_lot_DDL_descriptor =
              getDescriptor().getMessageTypes().get(2);
            internal_static_apsara_odps_lot_DDL_fieldAccessorTable = new
              com.google.protobuf.GeneratedMessage.FieldAccessorTable(
                internal_static_apsara_odps_lot_DDL_descriptor,
                new String[] { "CreateTable", "CreateTableAs", "CreateTableLike", "DropTable", "CreateViewAs", "CreateStreamTable", "CreateDimensionTable", "CreateResultTable", "CreateTempTable", },
                DDL.class,
                DDL.Builder.class);
            return null;
          }
        };
      com.google.protobuf.Descriptors.FileDescriptor
        .internalBuildGeneratedFileFrom(descriptorData,
          new com.google.protobuf.Descriptors.FileDescriptor[] {
            Lot.getDescriptor(),
            apsara.odps.DDLProtos.getDescriptor(),
          }, assigner);
    }
    
    // @@protoc_insertion_point(outer_class_scope)
  }
  