// Generated by the protocol buffer compiler. DO NOT EDIT!
// source: column.proto

package edu.washington.escience.myria.proto;

public final class DataProto {
  private DataProto() {
  }

  public static void registerAllExtensions(final com.google.protobuf.ExtensionRegistry registry) {
  }

  public interface DataMessageOrBuilder extends
  // @@protoc_insertion_point(interface_extends:DataMessage)
      com.google.protobuf.MessageOrBuilder {

    /**
     * <code>required .DataMessage.Type type = 1;</code>
     */
    boolean hasType();

    /**
     * <code>required .DataMessage.Type type = 1;</code>
     */
    edu.washington.escience.myria.proto.DataProto.DataMessage.Type getType();

    /**
     * <code>optional uint64 operatorID = 2;</code>
     */
    boolean hasOperatorID();

    /**
     * <code>optional uint64 operatorID = 2;</code>
     */
    long getOperatorID();

    /**
     * <code>repeated .ColumnMessage columns = 3;</code>
     */
    java.util.List<edu.washington.escience.myria.proto.DataProto.ColumnMessage> getColumnsList();

    /**
     * <code>repeated .ColumnMessage columns = 3;</code>
     */
    edu.washington.escience.myria.proto.DataProto.ColumnMessage getColumns(int index);

    /**
     * <code>repeated .ColumnMessage columns = 3;</code>
     */
    int getColumnsCount();

    /**
     * <code>repeated .ColumnMessage columns = 3;</code>
     */
    java.util.List<? extends edu.washington.escience.myria.proto.DataProto.ColumnMessageOrBuilder> getColumnsOrBuilderList();

    /**
     * <code>repeated .ColumnMessage columns = 3;</code>
     */
    edu.washington.escience.myria.proto.DataProto.ColumnMessageOrBuilder getColumnsOrBuilder(int index);

    /**
     * <code>optional uint32 num_tuples = 4;</code>
     */
    boolean hasNumTuples();

    /**
     * <code>optional uint32 num_tuples = 4;</code>
     */
    int getNumTuples();

    /**
     * <code>optional uint64 seq = 5;</code>
     */
    boolean hasSeq();

    /**
     * <code>optional uint64 seq = 5;</code>
     */
    long getSeq();
  }
  /**
   * Protobuf type {@code DataMessage}
   */
  public static final class DataMessage extends com.google.protobuf.GeneratedMessage implements
  // @@protoc_insertion_point(message_implements:DataMessage)
      DataMessageOrBuilder {
    // Use DataMessage.newBuilder() to construct.
    private DataMessage(final com.google.protobuf.GeneratedMessage.Builder<?> builder) {
      super(builder);
      unknownFields = builder.getUnknownFields();
    }

    private DataMessage(final boolean noInit) {
      unknownFields = com.google.protobuf.UnknownFieldSet.getDefaultInstance();
    }

    private static final DataMessage defaultInstance;

    public static DataMessage getDefaultInstance() {
      return defaultInstance;
    }

    @Override
    public DataMessage getDefaultInstanceForType() {
      return defaultInstance;
    }

    private final com.google.protobuf.UnknownFieldSet unknownFields;

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

    private DataMessage(final com.google.protobuf.CodedInputStream input,
        final com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      initFields();
      int mutable_bitField0_ = 0;
      com.google.protobuf.UnknownFieldSet.Builder unknownFields = com.google.protobuf.UnknownFieldSet.newBuilder();
      try {
        boolean done = false;
        while (!done) {
          int tag = input.readTag();
          switch (tag) {
            case 0:
              done = true;
              break;
            default: {
              if (!parseUnknownField(input, unknownFields, extensionRegistry, tag)) {
                done = true;
              }
              break;
            }
            case 8: {
              int rawValue = input.readEnum();
              edu.washington.escience.myria.proto.DataProto.DataMessage.Type value =
                  edu.washington.escience.myria.proto.DataProto.DataMessage.Type.valueOf(rawValue);
              if (value == null) {
                unknownFields.mergeVarintField(1, rawValue);
              } else {
                bitField0_ |= 0x00000001;
                type_ = value;
              }
              break;
            }
            case 16: {
              bitField0_ |= 0x00000002;
              operatorID_ = input.readUInt64();
              break;
            }
            case 26: {
              if (!((mutable_bitField0_ & 0x00000004) == 0x00000004)) {
                columns_ = new java.util.ArrayList<edu.washington.escience.myria.proto.DataProto.ColumnMessage>();
                mutable_bitField0_ |= 0x00000004;
              }
              columns_.add(input.readMessage(edu.washington.escience.myria.proto.DataProto.ColumnMessage.PARSER,
                  extensionRegistry));
              break;
            }
            case 32: {
              bitField0_ |= 0x00000004;
              numTuples_ = input.readUInt32();
              break;
            }
            case 40: {
              bitField0_ |= 0x00000008;
              seq_ = input.readUInt64();
              break;
            }
          }
        }
      } catch (com.google.protobuf.InvalidProtocolBufferException e) {
        throw e.setUnfinishedMessage(this);
      } catch (java.io.IOException e) {
        throw new com.google.protobuf.InvalidProtocolBufferException(e.getMessage()).setUnfinishedMessage(this);
      } finally {
        if (((mutable_bitField0_ & 0x00000004) == 0x00000004)) {
          columns_ = java.util.Collections.unmodifiableList(columns_);
        }
        this.unknownFields = unknownFields.build();
        makeExtensionsImmutable();
      }
    }

    public static final com.google.protobuf.Descriptors.Descriptor getDescriptor() {
      return edu.washington.escience.myria.proto.DataProto.internal_static_DataMessage_descriptor;
    }

    @Override
    protected com.google.protobuf.GeneratedMessage.FieldAccessorTable internalGetFieldAccessorTable() {
      return edu.washington.escience.myria.proto.DataProto.internal_static_DataMessage_fieldAccessorTable
          .ensureFieldAccessorsInitialized(edu.washington.escience.myria.proto.DataProto.DataMessage.class,
              edu.washington.escience.myria.proto.DataProto.DataMessage.Builder.class);
    }

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

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

    /**
     * Protobuf enum {@code DataMessage.Type}
     */
    public enum Type implements com.google.protobuf.ProtocolMessageEnum {
      /**
       * <code>NORMAL = 1;</code>
       *
       * <pre>
       * Normal Data
       * </pre>
       */
      NORMAL(0, 1),
      /**
       * <code>EOI = 2;</code>
       *
       * <pre>
       * End of Iteration
       * </pre>
       */
      EOI(1, 2), ;

      /**
       * <code>NORMAL = 1;</code>
       *
       * <pre>
       * Normal Data
       * </pre>
       */
      public static final int NORMAL_VALUE = 1;
      /**
       * <code>EOI = 2;</code>
       *
       * <pre>
       * End of Iteration
       * </pre>
       */
      public static final int EOI_VALUE = 2;

      @Override
      public final int getNumber() {
        return value;
      }

      public static Type valueOf(final int value) {
        switch (value) {
          case 1:
            return NORMAL;
          case 2:
            return EOI;
          default:
            return null;
        }
      }

      public static com.google.protobuf.Internal.EnumLiteMap<Type> internalGetValueMap() {
        return internalValueMap;
      }

      private static com.google.protobuf.Internal.EnumLiteMap<Type> internalValueMap =
          new com.google.protobuf.Internal.EnumLiteMap<Type>() {
            @Override
            public Type findValueByNumber(final int number) {
              return Type.valueOf(number);
            }
          };

      @Override
      public final com.google.protobuf.Descriptors.EnumValueDescriptor getValueDescriptor() {
        return getDescriptor().getValues().get(index);
      }

      @Override
      public final com.google.protobuf.Descriptors.EnumDescriptor getDescriptorForType() {
        return getDescriptor();
      }

      public static final com.google.protobuf.Descriptors.EnumDescriptor getDescriptor() {
        return edu.washington.escience.myria.proto.DataProto.DataMessage.getDescriptor().getEnumTypes().get(0);
      }

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

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

      private final int index;
      private final int value;

      private Type(final int index, final int value) {
        this.index = index;
        this.value = value;
      }

      // @@protoc_insertion_point(enum_scope:DataMessage.Type)
    }

    private int bitField0_;
    public static final int TYPE_FIELD_NUMBER = 1;
    private edu.washington.escience.myria.proto.DataProto.DataMessage.Type type_;

    /**
     * <code>required .DataMessage.Type type = 1;</code>
     */
    @Override
    public boolean hasType() {
      return ((bitField0_ & 0x00000001) == 0x00000001);
    }

    /**
     * <code>required .DataMessage.Type type = 1;</code>
     */
    @Override
    public edu.washington.escience.myria.proto.DataProto.DataMessage.Type getType() {
      return type_;
    }

    public static final int OPERATORID_FIELD_NUMBER = 2;
    private long operatorID_;

    /**
     * <code>optional uint64 operatorID = 2;</code>
     */
    @Override
    public boolean hasOperatorID() {
      return ((bitField0_ & 0x00000002) == 0x00000002);
    }

    /**
     * <code>optional uint64 operatorID = 2;</code>
     */
    @Override
    public long getOperatorID() {
      return operatorID_;
    }

    public static final int COLUMNS_FIELD_NUMBER = 3;
    private java.util.List<edu.washington.escience.myria.proto.DataProto.ColumnMessage> columns_;

    /**
     * <code>repeated .ColumnMessage columns = 3;</code>
     */
    @Override
    public java.util.List<edu.washington.escience.myria.proto.DataProto.ColumnMessage> getColumnsList() {
      return columns_;
    }

    /**
     * <code>repeated .ColumnMessage columns = 3;</code>
     */
    @Override
    public java.util.List<? extends edu.washington.escience.myria.proto.DataProto.ColumnMessageOrBuilder> getColumnsOrBuilderList() {
      return columns_;
    }

    /**
     * <code>repeated .ColumnMessage columns = 3;</code>
     */
    @Override
    public int getColumnsCount() {
      return columns_.size();
    }

    /**
     * <code>repeated .ColumnMessage columns = 3;</code>
     */
    @Override
    public edu.washington.escience.myria.proto.DataProto.ColumnMessage getColumns(final int index) {
      return columns_.get(index);
    }

    /**
     * <code>repeated .ColumnMessage columns = 3;</code>
     */
    @Override
    public edu.washington.escience.myria.proto.DataProto.ColumnMessageOrBuilder getColumnsOrBuilder(final int index) {
      return columns_.get(index);
    }

    public static final int NUM_TUPLES_FIELD_NUMBER = 4;
    private int numTuples_;

    /**
     * <code>optional uint32 num_tuples = 4;</code>
     */
    @Override
    public boolean hasNumTuples() {
      return ((bitField0_ & 0x00000004) == 0x00000004);
    }

    /**
     * <code>optional uint32 num_tuples = 4;</code>
     */
    @Override
    public int getNumTuples() {
      return numTuples_;
    }

    public static final int SEQ_FIELD_NUMBER = 5;
    private long seq_;

    /**
     * <code>optional uint64 seq = 5;</code>
     */
    @Override
    public boolean hasSeq() {
      return ((bitField0_ & 0x00000008) == 0x00000008);
    }

    /**
     * <code>optional uint64 seq = 5;</code>
     */
    @Override
    public long getSeq() {
      return seq_;
    }

    private void initFields() {
      type_ = edu.washington.escience.myria.proto.DataProto.DataMessage.Type.NORMAL;
      operatorID_ = 0L;
      columns_ = java.util.Collections.emptyList();
      numTuples_ = 0;
      seq_ = 0L;
    }

    private byte memoizedIsInitialized = -1;

    @Override
    public final boolean isInitialized() {
      byte isInitialized = memoizedIsInitialized;
      if (isInitialized == 1) {
        return true;
      }
      if (isInitialized == 0) {
        return false;
      }

      if (!hasType()) {
        memoizedIsInitialized = 0;
        return false;
      }
      for (int i = 0; i < getColumnsCount(); i++) {
        if (!getColumns(i).isInitialized()) {
          memoizedIsInitialized = 0;
          return false;
        }
      }
      memoizedIsInitialized = 1;
      return true;
    }

    @Override
    public void writeTo(final com.google.protobuf.CodedOutputStream output) throws java.io.IOException {
      getSerializedSize();
      if (((bitField0_ & 0x00000001) == 0x00000001)) {
        output.writeEnum(1, type_.getNumber());
      }
      if (((bitField0_ & 0x00000002) == 0x00000002)) {
        output.writeUInt64(2, operatorID_);
      }
      for (int i = 0; i < columns_.size(); i++) {
        output.writeMessage(3, columns_.get(i));
      }
      if (((bitField0_ & 0x00000004) == 0x00000004)) {
        output.writeUInt32(4, numTuples_);
      }
      if (((bitField0_ & 0x00000008) == 0x00000008)) {
        output.writeUInt64(5, seq_);
      }
      getUnknownFields().writeTo(output);
    }

    private int memoizedSerializedSize = -1;

    @Override
    public int getSerializedSize() {
      int size = memoizedSerializedSize;
      if (size != -1) {
        return size;
      }

      size = 0;
      if (((bitField0_ & 0x00000001) == 0x00000001)) {
        size += com.google.protobuf.CodedOutputStream.computeEnumSize(1, type_.getNumber());
      }
      if (((bitField0_ & 0x00000002) == 0x00000002)) {
        size += com.google.protobuf.CodedOutputStream.computeUInt64Size(2, operatorID_);
      }
      for (int i = 0; i < columns_.size(); i++) {
        size += com.google.protobuf.CodedOutputStream.computeMessageSize(3, columns_.get(i));
      }
      if (((bitField0_ & 0x00000004) == 0x00000004)) {
        size += com.google.protobuf.CodedOutputStream.computeUInt32Size(4, numTuples_);
      }
      if (((bitField0_ & 0x00000008) == 0x00000008)) {
        size += com.google.protobuf.CodedOutputStream.computeUInt64Size(5, seq_);
      }
      size += getUnknownFields().getSerializedSize();
      memoizedSerializedSize = size;
      return size;
    }

    private static final long serialVersionUID = 0L;

    @java.lang.Override
    protected java.lang.Object writeReplace() throws java.io.ObjectStreamException {
      return super.writeReplace();
    }

    public static edu.washington.escience.myria.proto.DataProto.DataMessage parseFrom(
        final com.google.protobuf.ByteString data) throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }

    public static edu.washington.escience.myria.proto.DataProto.DataMessage parseFrom(
        final com.google.protobuf.ByteString data, final com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }

    public static edu.washington.escience.myria.proto.DataProto.DataMessage parseFrom(final byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }

    public static edu.washington.escience.myria.proto.DataProto.DataMessage parseFrom(final byte[] data,
        final com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }

    public static edu.washington.escience.myria.proto.DataProto.DataMessage parseFrom(final java.io.InputStream input)
        throws java.io.IOException {
      return PARSER.parseFrom(input);
    }

    public static edu.washington.escience.myria.proto.DataProto.DataMessage parseFrom(final java.io.InputStream input,
        final com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws java.io.IOException {
      return PARSER.parseFrom(input, extensionRegistry);
    }

    public static edu.washington.escience.myria.proto.DataProto.DataMessage parseDelimitedFrom(
        final java.io.InputStream input) throws java.io.IOException {
      return PARSER.parseDelimitedFrom(input);
    }

    public static edu.washington.escience.myria.proto.DataProto.DataMessage parseDelimitedFrom(
        final java.io.InputStream input, final com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return PARSER.parseDelimitedFrom(input, extensionRegistry);
    }

    public static edu.washington.escience.myria.proto.DataProto.DataMessage parseFrom(
        final com.google.protobuf.CodedInputStream input) throws java.io.IOException {
      return PARSER.parseFrom(input);
    }

    public static edu.washington.escience.myria.proto.DataProto.DataMessage parseFrom(
        final com.google.protobuf.CodedInputStream input,
        final com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws java.io.IOException {
      return PARSER.parseFrom(input, extensionRegistry);
    }

    public static Builder newBuilder() {
      return Builder.create();
    }

    @Override
    public Builder newBuilderForType() {
      return newBuilder();
    }

    public static Builder newBuilder(final edu.washington.escience.myria.proto.DataProto.DataMessage prototype) {
      return newBuilder().mergeFrom(prototype);
    }

    @Override
    public Builder toBuilder() {
      return newBuilder(this);
    }

    @java.lang.Override
    protected Builder newBuilderForType(final com.google.protobuf.GeneratedMessage.BuilderParent parent) {
      Builder builder = new Builder(parent);
      return builder;
    }

    /**
     * Protobuf type {@code DataMessage}
     */
    public static final class Builder extends com.google.protobuf.GeneratedMessage.Builder<Builder> implements
    // @@protoc_insertion_point(builder_implements:DataMessage)
        edu.washington.escience.myria.proto.DataProto.DataMessageOrBuilder {
      public static final com.google.protobuf.Descriptors.Descriptor getDescriptor() {
        return edu.washington.escience.myria.proto.DataProto.internal_static_DataMessage_descriptor;
      }

      @Override
      protected com.google.protobuf.GeneratedMessage.FieldAccessorTable internalGetFieldAccessorTable() {
        return edu.washington.escience.myria.proto.DataProto.internal_static_DataMessage_fieldAccessorTable
            .ensureFieldAccessorsInitialized(edu.washington.escience.myria.proto.DataProto.DataMessage.class,
                edu.washington.escience.myria.proto.DataProto.DataMessage.Builder.class);
      }

      // Construct using edu.washington.escience.myria.proto.DataProto.DataMessage.newBuilder()
      private Builder() {
        maybeForceBuilderInitialization();
      }

      private Builder(final com.google.protobuf.GeneratedMessage.BuilderParent parent) {
        super(parent);
        maybeForceBuilderInitialization();
      }

      private void maybeForceBuilderInitialization() {
        if (com.google.protobuf.GeneratedMessage.alwaysUseFieldBuilders) {
          getColumnsFieldBuilder();
        }
      }

      private static Builder create() {
        return new Builder();
      }

      @Override
      public Builder clear() {
        super.clear();
        type_ = edu.washington.escience.myria.proto.DataProto.DataMessage.Type.NORMAL;
        bitField0_ = (bitField0_ & ~0x00000001);
        operatorID_ = 0L;
        bitField0_ = (bitField0_ & ~0x00000002);
        if (columnsBuilder_ == null) {
          columns_ = java.util.Collections.emptyList();
          bitField0_ = (bitField0_ & ~0x00000004);
        } else {
          columnsBuilder_.clear();
        }
        numTuples_ = 0;
        bitField0_ = (bitField0_ & ~0x00000008);
        seq_ = 0L;
        bitField0_ = (bitField0_ & ~0x00000010);
        return this;
      }

      @Override
      public Builder clone() {
        return create().mergeFrom(buildPartial());
      }

      @Override
      public com.google.protobuf.Descriptors.Descriptor getDescriptorForType() {
        return edu.washington.escience.myria.proto.DataProto.internal_static_DataMessage_descriptor;
      }

      @Override
      public edu.washington.escience.myria.proto.DataProto.DataMessage getDefaultInstanceForType() {
        return edu.washington.escience.myria.proto.DataProto.DataMessage.getDefaultInstance();
      }

      @Override
      public edu.washington.escience.myria.proto.DataProto.DataMessage build() {
        edu.washington.escience.myria.proto.DataProto.DataMessage result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return result;
      }

      @Override
      public edu.washington.escience.myria.proto.DataProto.DataMessage buildPartial() {
        edu.washington.escience.myria.proto.DataProto.DataMessage result =
            new edu.washington.escience.myria.proto.DataProto.DataMessage(this);
        int from_bitField0_ = bitField0_;
        int to_bitField0_ = 0;
        if (((from_bitField0_ & 0x00000001) == 0x00000001)) {
          to_bitField0_ |= 0x00000001;
        }
        result.type_ = type_;
        if (((from_bitField0_ & 0x00000002) == 0x00000002)) {
          to_bitField0_ |= 0x00000002;
        }
        result.operatorID_ = operatorID_;
        if (columnsBuilder_ == null) {
          if (((bitField0_ & 0x00000004) == 0x00000004)) {
            columns_ = java.util.Collections.unmodifiableList(columns_);
            bitField0_ = (bitField0_ & ~0x00000004);
          }
          result.columns_ = columns_;
        } else {
          result.columns_ = columnsBuilder_.build();
        }
        if (((from_bitField0_ & 0x00000008) == 0x00000008)) {
          to_bitField0_ |= 0x00000004;
        }
        result.numTuples_ = numTuples_;
        if (((from_bitField0_ & 0x00000010) == 0x00000010)) {
          to_bitField0_ |= 0x00000008;
        }
        result.seq_ = seq_;
        result.bitField0_ = to_bitField0_;
        onBuilt();
        return result;
      }

      @Override
      public Builder mergeFrom(final com.google.protobuf.Message other) {
        if (other instanceof edu.washington.escience.myria.proto.DataProto.DataMessage) {
          return mergeFrom((edu.washington.escience.myria.proto.DataProto.DataMessage) other);
        } else {
          super.mergeFrom(other);
          return this;
        }
      }

      public Builder mergeFrom(final edu.washington.escience.myria.proto.DataProto.DataMessage other) {
        if (other == edu.washington.escience.myria.proto.DataProto.DataMessage.getDefaultInstance()) {
          return this;
        }
        if (other.hasType()) {
          setType(other.getType());
        }
        if (other.hasOperatorID()) {
          setOperatorID(other.getOperatorID());
        }
        if (columnsBuilder_ == null) {
          if (!other.columns_.isEmpty()) {
            if (columns_.isEmpty()) {
              columns_ = other.columns_;
              bitField0_ = (bitField0_ & ~0x00000004);
            } else {
              ensureColumnsIsMutable();
              columns_.addAll(other.columns_);
            }
            onChanged();
          }
        } else {
          if (!other.columns_.isEmpty()) {
            if (columnsBuilder_.isEmpty()) {
              columnsBuilder_.dispose();
              columnsBuilder_ = null;
              columns_ = other.columns_;
              bitField0_ = (bitField0_ & ~0x00000004);
              columnsBuilder_ =
                  com.google.protobuf.GeneratedMessage.alwaysUseFieldBuilders ? getColumnsFieldBuilder() : null;
            } else {
              columnsBuilder_.addAllMessages(other.columns_);
            }
          }
        }
        if (other.hasNumTuples()) {
          setNumTuples(other.getNumTuples());
        }
        if (other.hasSeq()) {
          setSeq(other.getSeq());
        }
        mergeUnknownFields(other.getUnknownFields());
        return this;
      }

      @Override
      public final boolean isInitialized() {
        if (!hasType()) {

          return false;
        }
        for (int i = 0; i < getColumnsCount(); i++) {
          if (!getColumns(i).isInitialized()) {

            return false;
          }
        }
        return true;
      }

      @Override
      public Builder mergeFrom(final com.google.protobuf.CodedInputStream input,
          final com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws java.io.IOException {
        edu.washington.escience.myria.proto.DataProto.DataMessage parsedMessage = null;
        try {
          parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry);
        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
          parsedMessage = (edu.washington.escience.myria.proto.DataProto.DataMessage) e.getUnfinishedMessage();
          throw e;
        } finally {
          if (parsedMessage != null) {
            mergeFrom(parsedMessage);
          }
        }
        return this;
      }

      private int bitField0_;

      private edu.washington.escience.myria.proto.DataProto.DataMessage.Type type_ =
          edu.washington.escience.myria.proto.DataProto.DataMessage.Type.NORMAL;

      /**
       * <code>required .DataMessage.Type type = 1;</code>
       */
      @Override
      public boolean hasType() {
        return ((bitField0_ & 0x00000001) == 0x00000001);
      }

      /**
       * <code>required .DataMessage.Type type = 1;</code>
       */
      @Override
      public edu.washington.escience.myria.proto.DataProto.DataMessage.Type getType() {
        return type_;
      }

      /**
       * <code>required .DataMessage.Type type = 1;</code>
       */
      public Builder setType(final edu.washington.escience.myria.proto.DataProto.DataMessage.Type value) {
        if (value == null) {
          throw new NullPointerException();
        }
        bitField0_ |= 0x00000001;
        type_ = value;
        onChanged();
        return this;
      }

      /**
       * <code>required .DataMessage.Type type = 1;</code>
       */
      public Builder clearType() {
        bitField0_ = (bitField0_ & ~0x00000001);
        type_ = edu.washington.escience.myria.proto.DataProto.DataMessage.Type.NORMAL;
        onChanged();
        return this;
      }

      private long operatorID_;

      /**
       * <code>optional uint64 operatorID = 2;</code>
       */
      @Override
      public boolean hasOperatorID() {
        return ((bitField0_ & 0x00000002) == 0x00000002);
      }

      /**
       * <code>optional uint64 operatorID = 2;</code>
       */
      @Override
      public long getOperatorID() {
        return operatorID_;
      }

      /**
       * <code>optional uint64 operatorID = 2;</code>
       */
      public Builder setOperatorID(final long value) {
        bitField0_ |= 0x00000002;
        operatorID_ = value;
        onChanged();
        return this;
      }

      /**
       * <code>optional uint64 operatorID = 2;</code>
       */
      public Builder clearOperatorID() {
        bitField0_ = (bitField0_ & ~0x00000002);
        operatorID_ = 0L;
        onChanged();
        return this;
      }

      private java.util.List<edu.washington.escience.myria.proto.DataProto.ColumnMessage> columns_ =
          java.util.Collections.emptyList();

      private void ensureColumnsIsMutable() {
        if (!((bitField0_ & 0x00000004) == 0x00000004)) {
          columns_ = new java.util.ArrayList<edu.washington.escience.myria.proto.DataProto.ColumnMessage>(columns_);
          bitField0_ |= 0x00000004;
        }
      }

      private com.google.protobuf.RepeatedFieldBuilder<edu.washington.escience.myria.proto.DataProto.ColumnMessage, edu.washington.escience.myria.proto.DataProto.ColumnMessage.Builder, edu.washington.escience.myria.proto.DataProto.ColumnMessageOrBuilder> columnsBuilder_;

      /**
       * <code>repeated .ColumnMessage columns = 3;</code>
       */
      @Override
      public java.util.List<edu.washington.escience.myria.proto.DataProto.ColumnMessage> getColumnsList() {
        if (columnsBuilder_ == null) {
          return java.util.Collections.unmodifiableList(columns_);
        } else {
          return columnsBuilder_.getMessageList();
        }
      }

      /**
       * <code>repeated .ColumnMessage columns = 3;</code>
       */
      @Override
      public int getColumnsCount() {
        if (columnsBuilder_ == null) {
          return columns_.size();
        } else {
          return columnsBuilder_.getCount();
        }
      }

      /**
       * <code>repeated .ColumnMessage columns = 3;</code>
       */
      @Override
      public edu.washington.escience.myria.proto.DataProto.ColumnMessage getColumns(final int index) {
        if (columnsBuilder_ == null) {
          return columns_.get(index);
        } else {
          return columnsBuilder_.getMessage(index);
        }
      }

      /**
       * <code>repeated .ColumnMessage columns = 3;</code>
       */
      public Builder setColumns(final int index, final edu.washington.escience.myria.proto.DataProto.ColumnMessage value) {
        if (columnsBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          ensureColumnsIsMutable();
          columns_.set(index, value);
          onChanged();
        } else {
          columnsBuilder_.setMessage(index, value);
        }
        return this;
      }

      /**
       * <code>repeated .ColumnMessage columns = 3;</code>
       */
      public Builder setColumns(final int index,
          final edu.washington.escience.myria.proto.DataProto.ColumnMessage.Builder builderForValue) {
        if (columnsBuilder_ == null) {
          ensureColumnsIsMutable();
          columns_.set(index, builderForValue.build());
          onChanged();
        } else {
          columnsBuilder_.setMessage(index, builderForValue.build());
        }
        return this;
      }

      /**
       * <code>repeated .ColumnMessage columns = 3;</code>
       */
      public Builder addColumns(final edu.washington.escience.myria.proto.DataProto.ColumnMessage value) {
        if (columnsBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          ensureColumnsIsMutable();
          columns_.add(value);
          onChanged();
        } else {
          columnsBuilder_.addMessage(value);
        }
        return this;
      }

      /**
       * <code>repeated .ColumnMessage columns = 3;</code>
       */
      public Builder addColumns(final int index, final edu.washington.escience.myria.proto.DataProto.ColumnMessage value) {
        if (columnsBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          ensureColumnsIsMutable();
          columns_.add(index, value);
          onChanged();
        } else {
          columnsBuilder_.addMessage(index, value);
        }
        return this;
      }

      /**
       * <code>repeated .ColumnMessage columns = 3;</code>
       */
      public Builder addColumns(
          final edu.washington.escience.myria.proto.DataProto.ColumnMessage.Builder builderForValue) {
        if (columnsBuilder_ == null) {
          ensureColumnsIsMutable();
          columns_.add(builderForValue.build());
          onChanged();
        } else {
          columnsBuilder_.addMessage(builderForValue.build());
        }
        return this;
      }

      /**
       * <code>repeated .ColumnMessage columns = 3;</code>
       */
      public Builder addColumns(final int index,
          final edu.washington.escience.myria.proto.DataProto.ColumnMessage.Builder builderForValue) {
        if (columnsBuilder_ == null) {
          ensureColumnsIsMutable();
          columns_.add(index, builderForValue.build());
          onChanged();
        } else {
          columnsBuilder_.addMessage(index, builderForValue.build());
        }
        return this;
      }

      /**
       * <code>repeated .ColumnMessage columns = 3;</code>
       */
      public Builder addAllColumns(
          final java.lang.Iterable<? extends edu.washington.escience.myria.proto.DataProto.ColumnMessage> values) {
        if (columnsBuilder_ == null) {
          ensureColumnsIsMutable();
          com.google.protobuf.AbstractMessageLite.Builder.addAll(values, columns_);
          onChanged();
        } else {
          columnsBuilder_.addAllMessages(values);
        }
        return this;
      }

      /**
       * <code>repeated .ColumnMessage columns = 3;</code>
       */
      public Builder clearColumns() {
        if (columnsBuilder_ == null) {
          columns_ = java.util.Collections.emptyList();
          bitField0_ = (bitField0_ & ~0x00000004);
          onChanged();
        } else {
          columnsBuilder_.clear();
        }
        return this;
      }

      /**
       * <code>repeated .ColumnMessage columns = 3;</code>
       */
      public Builder removeColumns(final int index) {
        if (columnsBuilder_ == null) {
          ensureColumnsIsMutable();
          columns_.remove(index);
          onChanged();
        } else {
          columnsBuilder_.remove(index);
        }
        return this;
      }

      /**
       * <code>repeated .ColumnMessage columns = 3;</code>
       */
      public edu.washington.escience.myria.proto.DataProto.ColumnMessage.Builder getColumnsBuilder(final int index) {
        return getColumnsFieldBuilder().getBuilder(index);
      }

      /**
       * <code>repeated .ColumnMessage columns = 3;</code>
       */
      @Override
      public edu.washington.escience.myria.proto.DataProto.ColumnMessageOrBuilder getColumnsOrBuilder(final int index) {
        if (columnsBuilder_ == null) {
          return columns_.get(index);
        } else {
          return columnsBuilder_.getMessageOrBuilder(index);
        }
      }

      /**
       * <code>repeated .ColumnMessage columns = 3;</code>
       */
      @Override
      public java.util.List<? extends edu.washington.escience.myria.proto.DataProto.ColumnMessageOrBuilder> getColumnsOrBuilderList() {
        if (columnsBuilder_ != null) {
          return columnsBuilder_.getMessageOrBuilderList();
        } else {
          return java.util.Collections.unmodifiableList(columns_);
        }
      }

      /**
       * <code>repeated .ColumnMessage columns = 3;</code>
       */
      public edu.washington.escience.myria.proto.DataProto.ColumnMessage.Builder addColumnsBuilder() {
        return getColumnsFieldBuilder().addBuilder(
            edu.washington.escience.myria.proto.DataProto.ColumnMessage.getDefaultInstance());
      }

      /**
       * <code>repeated .ColumnMessage columns = 3;</code>
       */
      public edu.washington.escience.myria.proto.DataProto.ColumnMessage.Builder addColumnsBuilder(final int index) {
        return getColumnsFieldBuilder().addBuilder(index,
            edu.washington.escience.myria.proto.DataProto.ColumnMessage.getDefaultInstance());
      }

      /**
       * <code>repeated .ColumnMessage columns = 3;</code>
       */
      public java.util.List<edu.washington.escience.myria.proto.DataProto.ColumnMessage.Builder> getColumnsBuilderList() {
        return getColumnsFieldBuilder().getBuilderList();
      }

      private com.google.protobuf.RepeatedFieldBuilder<edu.washington.escience.myria.proto.DataProto.ColumnMessage, edu.washington.escience.myria.proto.DataProto.ColumnMessage.Builder, edu.washington.escience.myria.proto.DataProto.ColumnMessageOrBuilder> getColumnsFieldBuilder() {
        if (columnsBuilder_ == null) {
          columnsBuilder_ =
              new com.google.protobuf.RepeatedFieldBuilder<edu.washington.escience.myria.proto.DataProto.ColumnMessage, edu.washington.escience.myria.proto.DataProto.ColumnMessage.Builder, edu.washington.escience.myria.proto.DataProto.ColumnMessageOrBuilder>(
                  columns_, ((bitField0_ & 0x00000004) == 0x00000004), getParentForChildren(), isClean());
          columns_ = null;
        }
        return columnsBuilder_;
      }

      private int numTuples_;

      /**
       * <code>optional uint32 num_tuples = 4;</code>
       */
      @Override
      public boolean hasNumTuples() {
        return ((bitField0_ & 0x00000008) == 0x00000008);
      }

      /**
       * <code>optional uint32 num_tuples = 4;</code>
       */
      @Override
      public int getNumTuples() {
        return numTuples_;
      }

      /**
       * <code>optional uint32 num_tuples = 4;</code>
       */
      public Builder setNumTuples(final int value) {
        bitField0_ |= 0x00000008;
        numTuples_ = value;
        onChanged();
        return this;
      }

      /**
       * <code>optional uint32 num_tuples = 4;</code>
       */
      public Builder clearNumTuples() {
        bitField0_ = (bitField0_ & ~0x00000008);
        numTuples_ = 0;
        onChanged();
        return this;
      }

      private long seq_;

      /**
       * <code>optional uint64 seq = 5;</code>
       */
      @Override
      public boolean hasSeq() {
        return ((bitField0_ & 0x00000010) == 0x00000010);
      }

      /**
       * <code>optional uint64 seq = 5;</code>
       */
      @Override
      public long getSeq() {
        return seq_;
      }

      /**
       * <code>optional uint64 seq = 5;</code>
       */
      public Builder setSeq(final long value) {
        bitField0_ |= 0x00000010;
        seq_ = value;
        onChanged();
        return this;
      }

      /**
       * <code>optional uint64 seq = 5;</code>
       */
      public Builder clearSeq() {
        bitField0_ = (bitField0_ & ~0x00000010);
        seq_ = 0L;
        onChanged();
        return this;
      }

      // @@protoc_insertion_point(builder_scope:DataMessage)
    }

    static {
      defaultInstance = new DataMessage(true);
      defaultInstance.initFields();
    }

    // @@protoc_insertion_point(class_scope:DataMessage)
  }

  public interface ColumnMessageOrBuilder extends
  // @@protoc_insertion_point(interface_extends:ColumnMessage)
      com.google.protobuf.MessageOrBuilder {

    /**
     * <code>required .ColumnMessage.Type type = 1;</code>
     *
     * <pre>
     * See enum above
     * </pre>
     */
    boolean hasType();

    /**
     * <code>required .ColumnMessage.Type type = 1;</code>
     *
     * <pre>
     * See enum above
     * </pre>
     */
    edu.washington.escience.myria.proto.DataProto.ColumnMessage.Type getType();

    /**
     * <code>optional .IntColumnMessage int_column = 3;</code>
     */
    boolean hasIntColumn();

    /**
     * <code>optional .IntColumnMessage int_column = 3;</code>
     */
    edu.washington.escience.myria.proto.DataProto.IntColumnMessage getIntColumn();

    /**
     * <code>optional .IntColumnMessage int_column = 3;</code>
     */
    edu.washington.escience.myria.proto.DataProto.IntColumnMessageOrBuilder getIntColumnOrBuilder();

    /**
     * <code>optional .LongColumnMessage long_column = 4;</code>
     */
    boolean hasLongColumn();

    /**
     * <code>optional .LongColumnMessage long_column = 4;</code>
     */
    edu.washington.escience.myria.proto.DataProto.LongColumnMessage getLongColumn();

    /**
     * <code>optional .LongColumnMessage long_column = 4;</code>
     */
    edu.washington.escience.myria.proto.DataProto.LongColumnMessageOrBuilder getLongColumnOrBuilder();

    /**
     * <code>optional .FloatColumnMessage float_column = 5;</code>
     */
    boolean hasFloatColumn();

    /**
     * <code>optional .FloatColumnMessage float_column = 5;</code>
     */
    edu.washington.escience.myria.proto.DataProto.FloatColumnMessage getFloatColumn();

    /**
     * <code>optional .FloatColumnMessage float_column = 5;</code>
     */
    edu.washington.escience.myria.proto.DataProto.FloatColumnMessageOrBuilder getFloatColumnOrBuilder();

    /**
     * <code>optional .DoubleColumnMessage double_column = 6;</code>
     */
    boolean hasDoubleColumn();

    /**
     * <code>optional .DoubleColumnMessage double_column = 6;</code>
     */
    edu.washington.escience.myria.proto.DataProto.DoubleColumnMessage getDoubleColumn();

    /**
     * <code>optional .DoubleColumnMessage double_column = 6;</code>
     */
    edu.washington.escience.myria.proto.DataProto.DoubleColumnMessageOrBuilder getDoubleColumnOrBuilder();

    /**
     * <code>optional .StringColumnMessage string_column = 7;</code>
     */
    boolean hasStringColumn();

    /**
     * <code>optional .StringColumnMessage string_column = 7;</code>
     */
    edu.washington.escience.myria.proto.DataProto.StringColumnMessage getStringColumn();

    /**
     * <code>optional .StringColumnMessage string_column = 7;</code>
     */
    edu.washington.escience.myria.proto.DataProto.StringColumnMessageOrBuilder getStringColumnOrBuilder();

    /**
     * <code>optional .BooleanColumnMessage boolean_column = 8;</code>
     */
    boolean hasBooleanColumn();

    /**
     * <code>optional .BooleanColumnMessage boolean_column = 8;</code>
     */
    edu.washington.escience.myria.proto.DataProto.BooleanColumnMessage getBooleanColumn();

    /**
     * <code>optional .BooleanColumnMessage boolean_column = 8;</code>
     */
    edu.washington.escience.myria.proto.DataProto.BooleanColumnMessageOrBuilder getBooleanColumnOrBuilder();

    /**
     * <code>optional .DateTimeColumnMessage date_column = 9;</code>
     */
    boolean hasDateColumn();

    /**
     * <code>optional .DateTimeColumnMessage date_column = 9;</code>
     */
    edu.washington.escience.myria.proto.DataProto.DateTimeColumnMessage getDateColumn();

    /**
     * <code>optional .DateTimeColumnMessage date_column = 9;</code>
     */
    edu.washington.escience.myria.proto.DataProto.DateTimeColumnMessageOrBuilder getDateColumnOrBuilder();
  }
  /**
   * Protobuf type {@code ColumnMessage}
   */
  public static final class ColumnMessage extends com.google.protobuf.GeneratedMessage implements
  // @@protoc_insertion_point(message_implements:ColumnMessage)
      ColumnMessageOrBuilder {
    // Use ColumnMessage.newBuilder() to construct.
    private ColumnMessage(final com.google.protobuf.GeneratedMessage.Builder<?> builder) {
      super(builder);
      unknownFields = builder.getUnknownFields();
    }

    private ColumnMessage(final boolean noInit) {
      unknownFields = com.google.protobuf.UnknownFieldSet.getDefaultInstance();
    }

    private static final ColumnMessage defaultInstance;

    public static ColumnMessage getDefaultInstance() {
      return defaultInstance;
    }

    @Override
    public ColumnMessage getDefaultInstanceForType() {
      return defaultInstance;
    }

    private final com.google.protobuf.UnknownFieldSet unknownFields;

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

    private ColumnMessage(final com.google.protobuf.CodedInputStream input,
        final com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      initFields();
      com.google.protobuf.UnknownFieldSet.Builder unknownFields = com.google.protobuf.UnknownFieldSet.newBuilder();
      try {
        boolean done = false;
        while (!done) {
          int tag = input.readTag();
          switch (tag) {
            case 0:
              done = true;
              break;
            default: {
              if (!parseUnknownField(input, unknownFields, extensionRegistry, tag)) {
                done = true;
              }
              break;
            }
            case 8: {
              int rawValue = input.readEnum();
              edu.washington.escience.myria.proto.DataProto.ColumnMessage.Type value =
                  edu.washington.escience.myria.proto.DataProto.ColumnMessage.Type.valueOf(rawValue);
              if (value == null) {
                unknownFields.mergeVarintField(1, rawValue);
              } else {
                bitField0_ |= 0x00000001;
                type_ = value;
              }
              break;
            }
            case 26: {
              edu.washington.escience.myria.proto.DataProto.IntColumnMessage.Builder subBuilder = null;
              if (((bitField0_ & 0x00000002) == 0x00000002)) {
                subBuilder = intColumn_.toBuilder();
              }
              intColumn_ =
                  input.readMessage(edu.washington.escience.myria.proto.DataProto.IntColumnMessage.PARSER,
                      extensionRegistry);
              if (subBuilder != null) {
                subBuilder.mergeFrom(intColumn_);
                intColumn_ = subBuilder.buildPartial();
              }
              bitField0_ |= 0x00000002;
              break;
            }
            case 34: {
              edu.washington.escience.myria.proto.DataProto.LongColumnMessage.Builder subBuilder = null;
              if (((bitField0_ & 0x00000004) == 0x00000004)) {
                subBuilder = longColumn_.toBuilder();
              }
              longColumn_ =
                  input.readMessage(edu.washington.escience.myria.proto.DataProto.LongColumnMessage.PARSER,
                      extensionRegistry);
              if (subBuilder != null) {
                subBuilder.mergeFrom(longColumn_);
                longColumn_ = subBuilder.buildPartial();
              }
              bitField0_ |= 0x00000004;
              break;
            }
            case 42: {
              edu.washington.escience.myria.proto.DataProto.FloatColumnMessage.Builder subBuilder = null;
              if (((bitField0_ & 0x00000008) == 0x00000008)) {
                subBuilder = floatColumn_.toBuilder();
              }
              floatColumn_ =
                  input.readMessage(edu.washington.escience.myria.proto.DataProto.FloatColumnMessage.PARSER,
                      extensionRegistry);
              if (subBuilder != null) {
                subBuilder.mergeFrom(floatColumn_);
                floatColumn_ = subBuilder.buildPartial();
              }
              bitField0_ |= 0x00000008;
              break;
            }
            case 50: {
              edu.washington.escience.myria.proto.DataProto.DoubleColumnMessage.Builder subBuilder = null;
              if (((bitField0_ & 0x00000010) == 0x00000010)) {
                subBuilder = doubleColumn_.toBuilder();
              }
              doubleColumn_ =
                  input.readMessage(edu.washington.escience.myria.proto.DataProto.DoubleColumnMessage.PARSER,
                      extensionRegistry);
              if (subBuilder != null) {
                subBuilder.mergeFrom(doubleColumn_);
                doubleColumn_ = subBuilder.buildPartial();
              }
              bitField0_ |= 0x00000010;
              break;
            }
            case 58: {
              edu.washington.escience.myria.proto.DataProto.StringColumnMessage.Builder subBuilder = null;
              if (((bitField0_ & 0x00000020) == 0x00000020)) {
                subBuilder = stringColumn_.toBuilder();
              }
              stringColumn_ =
                  input.readMessage(edu.washington.escience.myria.proto.DataProto.StringColumnMessage.PARSER,
                      extensionRegistry);
              if (subBuilder != null) {
                subBuilder.mergeFrom(stringColumn_);
                stringColumn_ = subBuilder.buildPartial();
              }
              bitField0_ |= 0x00000020;
              break;
            }
            case 66: {
              edu.washington.escience.myria.proto.DataProto.BooleanColumnMessage.Builder subBuilder = null;
              if (((bitField0_ & 0x00000040) == 0x00000040)) {
                subBuilder = booleanColumn_.toBuilder();
              }
              booleanColumn_ =
                  input.readMessage(edu.washington.escience.myria.proto.DataProto.BooleanColumnMessage.PARSER,
                      extensionRegistry);
              if (subBuilder != null) {
                subBuilder.mergeFrom(booleanColumn_);
                booleanColumn_ = subBuilder.buildPartial();
              }
              bitField0_ |= 0x00000040;
              break;
            }
            case 74: {
              edu.washington.escience.myria.proto.DataProto.DateTimeColumnMessage.Builder subBuilder = null;
              if (((bitField0_ & 0x00000080) == 0x00000080)) {
                subBuilder = dateColumn_.toBuilder();
              }
              dateColumn_ =
                  input.readMessage(edu.washington.escience.myria.proto.DataProto.DateTimeColumnMessage.PARSER,
                      extensionRegistry);
              if (subBuilder != null) {
                subBuilder.mergeFrom(dateColumn_);
                dateColumn_ = subBuilder.buildPartial();
              }
              bitField0_ |= 0x00000080;
              break;
            }
          }
        }
      } catch (com.google.protobuf.InvalidProtocolBufferException e) {
        throw e.setUnfinishedMessage(this);
      } catch (java.io.IOException e) {
        throw new com.google.protobuf.InvalidProtocolBufferException(e.getMessage()).setUnfinishedMessage(this);
      } finally {
        this.unknownFields = unknownFields.build();
        makeExtensionsImmutable();
      }
    }

    public static final com.google.protobuf.Descriptors.Descriptor getDescriptor() {
      return edu.washington.escience.myria.proto.DataProto.internal_static_ColumnMessage_descriptor;
    }

    @Override
    protected com.google.protobuf.GeneratedMessage.FieldAccessorTable internalGetFieldAccessorTable() {
      return edu.washington.escience.myria.proto.DataProto.internal_static_ColumnMessage_fieldAccessorTable
          .ensureFieldAccessorsInitialized(edu.washington.escience.myria.proto.DataProto.ColumnMessage.class,
              edu.washington.escience.myria.proto.DataProto.ColumnMessage.Builder.class);
    }

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

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

    /**
     * Protobuf enum {@code ColumnMessage.Type}
     */
    public enum Type implements com.google.protobuf.ProtocolMessageEnum {
      /**
       * <code>INT = 0;</code>
       */
      INT(0, 0),
      /**
       * <code>LONG = 1;</code>
       */
      LONG(1, 1),
      /**
       * <code>FLOAT = 2;</code>
       */
      FLOAT(2, 2),
      /**
       * <code>DOUBLE = 3;</code>
       */
      DOUBLE(3, 3),
      /**
       * <code>STRING = 4;</code>
       */
      STRING(4, 4),
      /**
       * <code>BOOLEAN = 5;</code>
       */
      BOOLEAN(5, 5),
      /**
       * <code>DATETIME = 6;</code>
       */
      DATETIME(6, 6), ;

      /**
       * <code>INT = 0;</code>
       */
      public static final int INT_VALUE = 0;
      /**
       * <code>LONG = 1;</code>
       */
      public static final int LONG_VALUE = 1;
      /**
       * <code>FLOAT = 2;</code>
       */
      public static final int FLOAT_VALUE = 2;
      /**
       * <code>DOUBLE = 3;</code>
       */
      public static final int DOUBLE_VALUE = 3;
      /**
       * <code>STRING = 4;</code>
       */
      public static final int STRING_VALUE = 4;
      /**
       * <code>BOOLEAN = 5;</code>
       */
      public static final int BOOLEAN_VALUE = 5;
      /**
       * <code>DATETIME = 6;</code>
       */
      public static final int DATETIME_VALUE = 6;

      @Override
      public final int getNumber() {
        return value;
      }

      public static Type valueOf(final int value) {
        switch (value) {
          case 0:
            return INT;
          case 1:
            return LONG;
          case 2:
            return FLOAT;
          case 3:
            return DOUBLE;
          case 4:
            return STRING;
          case 5:
            return BOOLEAN;
          case 6:
            return DATETIME;
          default:
            return null;
        }
      }

      public static com.google.protobuf.Internal.EnumLiteMap<Type> internalGetValueMap() {
        return internalValueMap;
      }

      private static com.google.protobuf.Internal.EnumLiteMap<Type> internalValueMap =
          new com.google.protobuf.Internal.EnumLiteMap<Type>() {
            @Override
            public Type findValueByNumber(final int number) {
              return Type.valueOf(number);
            }
          };

      @Override
      public final com.google.protobuf.Descriptors.EnumValueDescriptor getValueDescriptor() {
        return getDescriptor().getValues().get(index);
      }

      @Override
      public final com.google.protobuf.Descriptors.EnumDescriptor getDescriptorForType() {
        return getDescriptor();
      }

      public static final com.google.protobuf.Descriptors.EnumDescriptor getDescriptor() {
        return edu.washington.escience.myria.proto.DataProto.ColumnMessage.getDescriptor().getEnumTypes().get(0);
      }

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

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

      private final int index;
      private final int value;

      private Type(final int index, final int value) {
        this.index = index;
        this.value = value;
      }

      // @@protoc_insertion_point(enum_scope:ColumnMessage.Type)
    }

    private int bitField0_;
    public static final int TYPE_FIELD_NUMBER = 1;
    private edu.washington.escience.myria.proto.DataProto.ColumnMessage.Type type_;

    /**
     * <code>required .ColumnMessage.Type type = 1;</code>
     *
     * <pre>
     * See enum above
     * </pre>
     */
    @Override
    public boolean hasType() {
      return ((bitField0_ & 0x00000001) == 0x00000001);
    }

    /**
     * <code>required .ColumnMessage.Type type = 1;</code>
     *
     * <pre>
     * See enum above
     * </pre>
     */
    @Override
    public edu.washington.escience.myria.proto.DataProto.ColumnMessage.Type getType() {
      return type_;
    }

    public static final int INT_COLUMN_FIELD_NUMBER = 3;
    private edu.washington.escience.myria.proto.DataProto.IntColumnMessage intColumn_;

    /**
     * <code>optional .IntColumnMessage int_column = 3;</code>
     */
    @Override
    public boolean hasIntColumn() {
      return ((bitField0_ & 0x00000002) == 0x00000002);
    }

    /**
     * <code>optional .IntColumnMessage int_column = 3;</code>
     */
    @Override
    public edu.washington.escience.myria.proto.DataProto.IntColumnMessage getIntColumn() {
      return intColumn_;
    }

    /**
     * <code>optional .IntColumnMessage int_column = 3;</code>
     */
    @Override
    public edu.washington.escience.myria.proto.DataProto.IntColumnMessageOrBuilder getIntColumnOrBuilder() {
      return intColumn_;
    }

    public static final int LONG_COLUMN_FIELD_NUMBER = 4;
    private edu.washington.escience.myria.proto.DataProto.LongColumnMessage longColumn_;

    /**
     * <code>optional .LongColumnMessage long_column = 4;</code>
     */
    @Override
    public boolean hasLongColumn() {
      return ((bitField0_ & 0x00000004) == 0x00000004);
    }

    /**
     * <code>optional .LongColumnMessage long_column = 4;</code>
     */
    @Override
    public edu.washington.escience.myria.proto.DataProto.LongColumnMessage getLongColumn() {
      return longColumn_;
    }

    /**
     * <code>optional .LongColumnMessage long_column = 4;</code>
     */
    @Override
    public edu.washington.escience.myria.proto.DataProto.LongColumnMessageOrBuilder getLongColumnOrBuilder() {
      return longColumn_;
    }

    public static final int FLOAT_COLUMN_FIELD_NUMBER = 5;
    private edu.washington.escience.myria.proto.DataProto.FloatColumnMessage floatColumn_;

    /**
     * <code>optional .FloatColumnMessage float_column = 5;</code>
     */
    @Override
    public boolean hasFloatColumn() {
      return ((bitField0_ & 0x00000008) == 0x00000008);
    }

    /**
     * <code>optional .FloatColumnMessage float_column = 5;</code>
     */
    @Override
    public edu.washington.escience.myria.proto.DataProto.FloatColumnMessage getFloatColumn() {
      return floatColumn_;
    }

    /**
     * <code>optional .FloatColumnMessage float_column = 5;</code>
     */
    @Override
    public edu.washington.escience.myria.proto.DataProto.FloatColumnMessageOrBuilder getFloatColumnOrBuilder() {
      return floatColumn_;
    }

    public static final int DOUBLE_COLUMN_FIELD_NUMBER = 6;
    private edu.washington.escience.myria.proto.DataProto.DoubleColumnMessage doubleColumn_;

    /**
     * <code>optional .DoubleColumnMessage double_column = 6;</code>
     */
    @Override
    public boolean hasDoubleColumn() {
      return ((bitField0_ & 0x00000010) == 0x00000010);
    }

    /**
     * <code>optional .DoubleColumnMessage double_column = 6;</code>
     */
    @Override
    public edu.washington.escience.myria.proto.DataProto.DoubleColumnMessage getDoubleColumn() {
      return doubleColumn_;
    }

    /**
     * <code>optional .DoubleColumnMessage double_column = 6;</code>
     */
    @Override
    public edu.washington.escience.myria.proto.DataProto.DoubleColumnMessageOrBuilder getDoubleColumnOrBuilder() {
      return doubleColumn_;
    }

    public static final int STRING_COLUMN_FIELD_NUMBER = 7;
    private edu.washington.escience.myria.proto.DataProto.StringColumnMessage stringColumn_;

    /**
     * <code>optional .StringColumnMessage string_column = 7;</code>
     */
    @Override
    public boolean hasStringColumn() {
      return ((bitField0_ & 0x00000020) == 0x00000020);
    }

    /**
     * <code>optional .StringColumnMessage string_column = 7;</code>
     */
    @Override
    public edu.washington.escience.myria.proto.DataProto.StringColumnMessage getStringColumn() {
      return stringColumn_;
    }

    /**
     * <code>optional .StringColumnMessage string_column = 7;</code>
     */
    @Override
    public edu.washington.escience.myria.proto.DataProto.StringColumnMessageOrBuilder getStringColumnOrBuilder() {
      return stringColumn_;
    }

    public static final int BOOLEAN_COLUMN_FIELD_NUMBER = 8;
    private edu.washington.escience.myria.proto.DataProto.BooleanColumnMessage booleanColumn_;

    /**
     * <code>optional .BooleanColumnMessage boolean_column = 8;</code>
     */
    @Override
    public boolean hasBooleanColumn() {
      return ((bitField0_ & 0x00000040) == 0x00000040);
    }

    /**
     * <code>optional .BooleanColumnMessage boolean_column = 8;</code>
     */
    @Override
    public edu.washington.escience.myria.proto.DataProto.BooleanColumnMessage getBooleanColumn() {
      return booleanColumn_;
    }

    /**
     * <code>optional .BooleanColumnMessage boolean_column = 8;</code>
     */
    @Override
    public edu.washington.escience.myria.proto.DataProto.BooleanColumnMessageOrBuilder getBooleanColumnOrBuilder() {
      return booleanColumn_;
    }

    public static final int DATE_COLUMN_FIELD_NUMBER = 9;
    private edu.washington.escience.myria.proto.DataProto.DateTimeColumnMessage dateColumn_;

    /**
     * <code>optional .DateTimeColumnMessage date_column = 9;</code>
     */
    @Override
    public boolean hasDateColumn() {
      return ((bitField0_ & 0x00000080) == 0x00000080);
    }

    /**
     * <code>optional .DateTimeColumnMessage date_column = 9;</code>
     */
    @Override
    public edu.washington.escience.myria.proto.DataProto.DateTimeColumnMessage getDateColumn() {
      return dateColumn_;
    }

    /**
     * <code>optional .DateTimeColumnMessage date_column = 9;</code>
     */
    @Override
    public edu.washington.escience.myria.proto.DataProto.DateTimeColumnMessageOrBuilder getDateColumnOrBuilder() {
      return dateColumn_;
    }

    private void initFields() {
      type_ = edu.washington.escience.myria.proto.DataProto.ColumnMessage.Type.INT;
      intColumn_ = edu.washington.escience.myria.proto.DataProto.IntColumnMessage.getDefaultInstance();
      longColumn_ = edu.washington.escience.myria.proto.DataProto.LongColumnMessage.getDefaultInstance();
      floatColumn_ = edu.washington.escience.myria.proto.DataProto.FloatColumnMessage.getDefaultInstance();
      doubleColumn_ = edu.washington.escience.myria.proto.DataProto.DoubleColumnMessage.getDefaultInstance();
      stringColumn_ = edu.washington.escience.myria.proto.DataProto.StringColumnMessage.getDefaultInstance();
      booleanColumn_ = edu.washington.escience.myria.proto.DataProto.BooleanColumnMessage.getDefaultInstance();
      dateColumn_ = edu.washington.escience.myria.proto.DataProto.DateTimeColumnMessage.getDefaultInstance();
    }

    private byte memoizedIsInitialized = -1;

    @Override
    public final boolean isInitialized() {
      byte isInitialized = memoizedIsInitialized;
      if (isInitialized == 1) {
        return true;
      }
      if (isInitialized == 0) {
        return false;
      }

      if (!hasType()) {
        memoizedIsInitialized = 0;
        return false;
      }
      if (hasIntColumn()) {
        if (!getIntColumn().isInitialized()) {
          memoizedIsInitialized = 0;
          return false;
        }
      }
      if (hasLongColumn()) {
        if (!getLongColumn().isInitialized()) {
          memoizedIsInitialized = 0;
          return false;
        }
      }
      if (hasFloatColumn()) {
        if (!getFloatColumn().isInitialized()) {
          memoizedIsInitialized = 0;
          return false;
        }
      }
      if (hasDoubleColumn()) {
        if (!getDoubleColumn().isInitialized()) {
          memoizedIsInitialized = 0;
          return false;
        }
      }
      if (hasStringColumn()) {
        if (!getStringColumn().isInitialized()) {
          memoizedIsInitialized = 0;
          return false;
        }
      }
      if (hasBooleanColumn()) {
        if (!getBooleanColumn().isInitialized()) {
          memoizedIsInitialized = 0;
          return false;
        }
      }
      if (hasDateColumn()) {
        if (!getDateColumn().isInitialized()) {
          memoizedIsInitialized = 0;
          return false;
        }
      }
      memoizedIsInitialized = 1;
      return true;
    }

    @Override
    public void writeTo(final com.google.protobuf.CodedOutputStream output) throws java.io.IOException {
      getSerializedSize();
      if (((bitField0_ & 0x00000001) == 0x00000001)) {
        output.writeEnum(1, type_.getNumber());
      }
      if (((bitField0_ & 0x00000002) == 0x00000002)) {
        output.writeMessage(3, intColumn_);
      }
      if (((bitField0_ & 0x00000004) == 0x00000004)) {
        output.writeMessage(4, longColumn_);
      }
      if (((bitField0_ & 0x00000008) == 0x00000008)) {
        output.writeMessage(5, floatColumn_);
      }
      if (((bitField0_ & 0x00000010) == 0x00000010)) {
        output.writeMessage(6, doubleColumn_);
      }
      if (((bitField0_ & 0x00000020) == 0x00000020)) {
        output.writeMessage(7, stringColumn_);
      }
      if (((bitField0_ & 0x00000040) == 0x00000040)) {
        output.writeMessage(8, booleanColumn_);
      }
      if (((bitField0_ & 0x00000080) == 0x00000080)) {
        output.writeMessage(9, dateColumn_);
      }
      getUnknownFields().writeTo(output);
    }

    private int memoizedSerializedSize = -1;

    @Override
    public int getSerializedSize() {
      int size = memoizedSerializedSize;
      if (size != -1) {
        return size;
      }

      size = 0;
      if (((bitField0_ & 0x00000001) == 0x00000001)) {
        size += com.google.protobuf.CodedOutputStream.computeEnumSize(1, type_.getNumber());
      }
      if (((bitField0_ & 0x00000002) == 0x00000002)) {
        size += com.google.protobuf.CodedOutputStream.computeMessageSize(3, intColumn_);
      }
      if (((bitField0_ & 0x00000004) == 0x00000004)) {
        size += com.google.protobuf.CodedOutputStream.computeMessageSize(4, longColumn_);
      }
      if (((bitField0_ & 0x00000008) == 0x00000008)) {
        size += com.google.protobuf.CodedOutputStream.computeMessageSize(5, floatColumn_);
      }
      if (((bitField0_ & 0x00000010) == 0x00000010)) {
        size += com.google.protobuf.CodedOutputStream.computeMessageSize(6, doubleColumn_);
      }
      if (((bitField0_ & 0x00000020) == 0x00000020)) {
        size += com.google.protobuf.CodedOutputStream.computeMessageSize(7, stringColumn_);
      }
      if (((bitField0_ & 0x00000040) == 0x00000040)) {
        size += com.google.protobuf.CodedOutputStream.computeMessageSize(8, booleanColumn_);
      }
      if (((bitField0_ & 0x00000080) == 0x00000080)) {
        size += com.google.protobuf.CodedOutputStream.computeMessageSize(9, dateColumn_);
      }
      size += getUnknownFields().getSerializedSize();
      memoizedSerializedSize = size;
      return size;
    }

    private static final long serialVersionUID = 0L;

    @java.lang.Override
    protected java.lang.Object writeReplace() throws java.io.ObjectStreamException {
      return super.writeReplace();
    }

    public static edu.washington.escience.myria.proto.DataProto.ColumnMessage parseFrom(
        final com.google.protobuf.ByteString data) throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }

    public static edu.washington.escience.myria.proto.DataProto.ColumnMessage parseFrom(
        final com.google.protobuf.ByteString data, final com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }

    public static edu.washington.escience.myria.proto.DataProto.ColumnMessage parseFrom(final byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }

    public static edu.washington.escience.myria.proto.DataProto.ColumnMessage parseFrom(final byte[] data,
        final com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }

    public static edu.washington.escience.myria.proto.DataProto.ColumnMessage parseFrom(final java.io.InputStream input)
        throws java.io.IOException {
      return PARSER.parseFrom(input);
    }

    public static edu.washington.escience.myria.proto.DataProto.ColumnMessage parseFrom(
        final java.io.InputStream input, final com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return PARSER.parseFrom(input, extensionRegistry);
    }

    public static edu.washington.escience.myria.proto.DataProto.ColumnMessage parseDelimitedFrom(
        final java.io.InputStream input) throws java.io.IOException {
      return PARSER.parseDelimitedFrom(input);
    }

    public static edu.washington.escience.myria.proto.DataProto.ColumnMessage parseDelimitedFrom(
        final java.io.InputStream input, final com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return PARSER.parseDelimitedFrom(input, extensionRegistry);
    }

    public static edu.washington.escience.myria.proto.DataProto.ColumnMessage parseFrom(
        final com.google.protobuf.CodedInputStream input) throws java.io.IOException {
      return PARSER.parseFrom(input);
    }

    public static edu.washington.escience.myria.proto.DataProto.ColumnMessage parseFrom(
        final com.google.protobuf.CodedInputStream input,
        final com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws java.io.IOException {
      return PARSER.parseFrom(input, extensionRegistry);
    }

    public static Builder newBuilder() {
      return Builder.create();
    }

    @Override
    public Builder newBuilderForType() {
      return newBuilder();
    }

    public static Builder newBuilder(final edu.washington.escience.myria.proto.DataProto.ColumnMessage prototype) {
      return newBuilder().mergeFrom(prototype);
    }

    @Override
    public Builder toBuilder() {
      return newBuilder(this);
    }

    @java.lang.Override
    protected Builder newBuilderForType(final com.google.protobuf.GeneratedMessage.BuilderParent parent) {
      Builder builder = new Builder(parent);
      return builder;
    }

    /**
     * Protobuf type {@code ColumnMessage}
     */
    public static final class Builder extends com.google.protobuf.GeneratedMessage.Builder<Builder> implements
    // @@protoc_insertion_point(builder_implements:ColumnMessage)
        edu.washington.escience.myria.proto.DataProto.ColumnMessageOrBuilder {
      public static final com.google.protobuf.Descriptors.Descriptor getDescriptor() {
        return edu.washington.escience.myria.proto.DataProto.internal_static_ColumnMessage_descriptor;
      }

      @Override
      protected com.google.protobuf.GeneratedMessage.FieldAccessorTable internalGetFieldAccessorTable() {
        return edu.washington.escience.myria.proto.DataProto.internal_static_ColumnMessage_fieldAccessorTable
            .ensureFieldAccessorsInitialized(edu.washington.escience.myria.proto.DataProto.ColumnMessage.class,
                edu.washington.escience.myria.proto.DataProto.ColumnMessage.Builder.class);
      }

      // Construct using edu.washington.escience.myria.proto.DataProto.ColumnMessage.newBuilder()
      private Builder() {
        maybeForceBuilderInitialization();
      }

      private Builder(final com.google.protobuf.GeneratedMessage.BuilderParent parent) {
        super(parent);
        maybeForceBuilderInitialization();
      }

      private void maybeForceBuilderInitialization() {
        if (com.google.protobuf.GeneratedMessage.alwaysUseFieldBuilders) {
          getIntColumnFieldBuilder();
          getLongColumnFieldBuilder();
          getFloatColumnFieldBuilder();
          getDoubleColumnFieldBuilder();
          getStringColumnFieldBuilder();
          getBooleanColumnFieldBuilder();
          getDateColumnFieldBuilder();
        }
      }

      private static Builder create() {
        return new Builder();
      }

      @Override
      public Builder clear() {
        super.clear();
        type_ = edu.washington.escience.myria.proto.DataProto.ColumnMessage.Type.INT;
        bitField0_ = (bitField0_ & ~0x00000001);
        if (intColumnBuilder_ == null) {
          intColumn_ = edu.washington.escience.myria.proto.DataProto.IntColumnMessage.getDefaultInstance();
        } else {
          intColumnBuilder_.clear();
        }
        bitField0_ = (bitField0_ & ~0x00000002);
        if (longColumnBuilder_ == null) {
          longColumn_ = edu.washington.escience.myria.proto.DataProto.LongColumnMessage.getDefaultInstance();
        } else {
          longColumnBuilder_.clear();
        }
        bitField0_ = (bitField0_ & ~0x00000004);
        if (floatColumnBuilder_ == null) {
          floatColumn_ = edu.washington.escience.myria.proto.DataProto.FloatColumnMessage.getDefaultInstance();
        } else {
          floatColumnBuilder_.clear();
        }
        bitField0_ = (bitField0_ & ~0x00000008);
        if (doubleColumnBuilder_ == null) {
          doubleColumn_ = edu.washington.escience.myria.proto.DataProto.DoubleColumnMessage.getDefaultInstance();
        } else {
          doubleColumnBuilder_.clear();
        }
        bitField0_ = (bitField0_ & ~0x00000010);
        if (stringColumnBuilder_ == null) {
          stringColumn_ = edu.washington.escience.myria.proto.DataProto.StringColumnMessage.getDefaultInstance();
        } else {
          stringColumnBuilder_.clear();
        }
        bitField0_ = (bitField0_ & ~0x00000020);
        if (booleanColumnBuilder_ == null) {
          booleanColumn_ = edu.washington.escience.myria.proto.DataProto.BooleanColumnMessage.getDefaultInstance();
        } else {
          booleanColumnBuilder_.clear();
        }
        bitField0_ = (bitField0_ & ~0x00000040);
        if (dateColumnBuilder_ == null) {
          dateColumn_ = edu.washington.escience.myria.proto.DataProto.DateTimeColumnMessage.getDefaultInstance();
        } else {
          dateColumnBuilder_.clear();
        }
        bitField0_ = (bitField0_ & ~0x00000080);
        return this;
      }

      @Override
      public Builder clone() {
        return create().mergeFrom(buildPartial());
      }

      @Override
      public com.google.protobuf.Descriptors.Descriptor getDescriptorForType() {
        return edu.washington.escience.myria.proto.DataProto.internal_static_ColumnMessage_descriptor;
      }

      @Override
      public edu.washington.escience.myria.proto.DataProto.ColumnMessage getDefaultInstanceForType() {
        return edu.washington.escience.myria.proto.DataProto.ColumnMessage.getDefaultInstance();
      }

      @Override
      public edu.washington.escience.myria.proto.DataProto.ColumnMessage build() {
        edu.washington.escience.myria.proto.DataProto.ColumnMessage result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return result;
      }

      @Override
      public edu.washington.escience.myria.proto.DataProto.ColumnMessage buildPartial() {
        edu.washington.escience.myria.proto.DataProto.ColumnMessage result =
            new edu.washington.escience.myria.proto.DataProto.ColumnMessage(this);
        int from_bitField0_ = bitField0_;
        int to_bitField0_ = 0;
        if (((from_bitField0_ & 0x00000001) == 0x00000001)) {
          to_bitField0_ |= 0x00000001;
        }
        result.type_ = type_;
        if (((from_bitField0_ & 0x00000002) == 0x00000002)) {
          to_bitField0_ |= 0x00000002;
        }
        if (intColumnBuilder_ == null) {
          result.intColumn_ = intColumn_;
        } else {
          result.intColumn_ = intColumnBuilder_.build();
        }
        if (((from_bitField0_ & 0x00000004) == 0x00000004)) {
          to_bitField0_ |= 0x00000004;
        }
        if (longColumnBuilder_ == null) {
          result.longColumn_ = longColumn_;
        } else {
          result.longColumn_ = longColumnBuilder_.build();
        }
        if (((from_bitField0_ & 0x00000008) == 0x00000008)) {
          to_bitField0_ |= 0x00000008;
        }
        if (floatColumnBuilder_ == null) {
          result.floatColumn_ = floatColumn_;
        } else {
          result.floatColumn_ = floatColumnBuilder_.build();
        }
        if (((from_bitField0_ & 0x00000010) == 0x00000010)) {
          to_bitField0_ |= 0x00000010;
        }
        if (doubleColumnBuilder_ == null) {
          result.doubleColumn_ = doubleColumn_;
        } else {
          result.doubleColumn_ = doubleColumnBuilder_.build();
        }
        if (((from_bitField0_ & 0x00000020) == 0x00000020)) {
          to_bitField0_ |= 0x00000020;
        }
        if (stringColumnBuilder_ == null) {
          result.stringColumn_ = stringColumn_;
        } else {
          result.stringColumn_ = stringColumnBuilder_.build();
        }
        if (((from_bitField0_ & 0x00000040) == 0x00000040)) {
          to_bitField0_ |= 0x00000040;
        }
        if (booleanColumnBuilder_ == null) {
          result.booleanColumn_ = booleanColumn_;
        } else {
          result.booleanColumn_ = booleanColumnBuilder_.build();
        }
        if (((from_bitField0_ & 0x00000080) == 0x00000080)) {
          to_bitField0_ |= 0x00000080;
        }
        if (dateColumnBuilder_ == null) {
          result.dateColumn_ = dateColumn_;
        } else {
          result.dateColumn_ = dateColumnBuilder_.build();
        }
        result.bitField0_ = to_bitField0_;
        onBuilt();
        return result;
      }

      @Override
      public Builder mergeFrom(final com.google.protobuf.Message other) {
        if (other instanceof edu.washington.escience.myria.proto.DataProto.ColumnMessage) {
          return mergeFrom((edu.washington.escience.myria.proto.DataProto.ColumnMessage) other);
        } else {
          super.mergeFrom(other);
          return this;
        }
      }

      public Builder mergeFrom(final edu.washington.escience.myria.proto.DataProto.ColumnMessage other) {
        if (other == edu.washington.escience.myria.proto.DataProto.ColumnMessage.getDefaultInstance()) {
          return this;
        }
        if (other.hasType()) {
          setType(other.getType());
        }
        if (other.hasIntColumn()) {
          mergeIntColumn(other.getIntColumn());
        }
        if (other.hasLongColumn()) {
          mergeLongColumn(other.getLongColumn());
        }
        if (other.hasFloatColumn()) {
          mergeFloatColumn(other.getFloatColumn());
        }
        if (other.hasDoubleColumn()) {
          mergeDoubleColumn(other.getDoubleColumn());
        }
        if (other.hasStringColumn()) {
          mergeStringColumn(other.getStringColumn());
        }
        if (other.hasBooleanColumn()) {
          mergeBooleanColumn(other.getBooleanColumn());
        }
        if (other.hasDateColumn()) {
          mergeDateColumn(other.getDateColumn());
        }
        mergeUnknownFields(other.getUnknownFields());
        return this;
      }

      @Override
      public final boolean isInitialized() {
        if (!hasType()) {

          return false;
        }
        if (hasIntColumn()) {
          if (!getIntColumn().isInitialized()) {

            return false;
          }
        }
        if (hasLongColumn()) {
          if (!getLongColumn().isInitialized()) {

            return false;
          }
        }
        if (hasFloatColumn()) {
          if (!getFloatColumn().isInitialized()) {

            return false;
          }
        }
        if (hasDoubleColumn()) {
          if (!getDoubleColumn().isInitialized()) {

            return false;
          }
        }
        if (hasStringColumn()) {
          if (!getStringColumn().isInitialized()) {

            return false;
          }
        }
        if (hasBooleanColumn()) {
          if (!getBooleanColumn().isInitialized()) {

            return false;
          }
        }
        if (hasDateColumn()) {
          if (!getDateColumn().isInitialized()) {

            return false;
          }
        }
        return true;
      }

      @Override
      public Builder mergeFrom(final com.google.protobuf.CodedInputStream input,
          final com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws java.io.IOException {
        edu.washington.escience.myria.proto.DataProto.ColumnMessage parsedMessage = null;
        try {
          parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry);
        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
          parsedMessage = (edu.washington.escience.myria.proto.DataProto.ColumnMessage) e.getUnfinishedMessage();
          throw e;
        } finally {
          if (parsedMessage != null) {
            mergeFrom(parsedMessage);
          }
        }
        return this;
      }

      private int bitField0_;

      private edu.washington.escience.myria.proto.DataProto.ColumnMessage.Type type_ =
          edu.washington.escience.myria.proto.DataProto.ColumnMessage.Type.INT;

      /**
       * <code>required .ColumnMessage.Type type = 1;</code>
       *
       * <pre>
       * See enum above
       * </pre>
       */
      @Override
      public boolean hasType() {
        return ((bitField0_ & 0x00000001) == 0x00000001);
      }

      /**
       * <code>required .ColumnMessage.Type type = 1;</code>
       *
       * <pre>
       * See enum above
       * </pre>
       */
      @Override
      public edu.washington.escience.myria.proto.DataProto.ColumnMessage.Type getType() {
        return type_;
      }

      /**
       * <code>required .ColumnMessage.Type type = 1;</code>
       *
       * <pre>
       * See enum above
       * </pre>
       */
      public Builder setType(final edu.washington.escience.myria.proto.DataProto.ColumnMessage.Type value) {
        if (value == null) {
          throw new NullPointerException();
        }
        bitField0_ |= 0x00000001;
        type_ = value;
        onChanged();
        return this;
      }

      /**
       * <code>required .ColumnMessage.Type type = 1;</code>
       *
       * <pre>
       * See enum above
       * </pre>
       */
      public Builder clearType() {
        bitField0_ = (bitField0_ & ~0x00000001);
        type_ = edu.washington.escience.myria.proto.DataProto.ColumnMessage.Type.INT;
        onChanged();
        return this;
      }

      private edu.washington.escience.myria.proto.DataProto.IntColumnMessage intColumn_ =
          edu.washington.escience.myria.proto.DataProto.IntColumnMessage.getDefaultInstance();
      private com.google.protobuf.SingleFieldBuilder<edu.washington.escience.myria.proto.DataProto.IntColumnMessage, edu.washington.escience.myria.proto.DataProto.IntColumnMessage.Builder, edu.washington.escience.myria.proto.DataProto.IntColumnMessageOrBuilder> intColumnBuilder_;

      /**
       * <code>optional .IntColumnMessage int_column = 3;</code>
       */
      @Override
      public boolean hasIntColumn() {
        return ((bitField0_ & 0x00000002) == 0x00000002);
      }

      /**
       * <code>optional .IntColumnMessage int_column = 3;</code>
       */
      @Override
      public edu.washington.escience.myria.proto.DataProto.IntColumnMessage getIntColumn() {
        if (intColumnBuilder_ == null) {
          return intColumn_;
        } else {
          return intColumnBuilder_.getMessage();
        }
      }

      /**
       * <code>optional .IntColumnMessage int_column = 3;</code>
       */
      public Builder setIntColumn(final edu.washington.escience.myria.proto.DataProto.IntColumnMessage value) {
        if (intColumnBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          intColumn_ = value;
          onChanged();
        } else {
          intColumnBuilder_.setMessage(value);
        }
        bitField0_ |= 0x00000002;
        return this;
      }

      /**
       * <code>optional .IntColumnMessage int_column = 3;</code>
       */
      public Builder setIntColumn(
          final edu.washington.escience.myria.proto.DataProto.IntColumnMessage.Builder builderForValue) {
        if (intColumnBuilder_ == null) {
          intColumn_ = builderForValue.build();
          onChanged();
        } else {
          intColumnBuilder_.setMessage(builderForValue.build());
        }
        bitField0_ |= 0x00000002;
        return this;
      }

      /**
       * <code>optional .IntColumnMessage int_column = 3;</code>
       */
      public Builder mergeIntColumn(final edu.washington.escience.myria.proto.DataProto.IntColumnMessage value) {
        if (intColumnBuilder_ == null) {
          if (((bitField0_ & 0x00000002) == 0x00000002)
              && intColumn_ != edu.washington.escience.myria.proto.DataProto.IntColumnMessage.getDefaultInstance()) {
            intColumn_ =
                edu.washington.escience.myria.proto.DataProto.IntColumnMessage.newBuilder(intColumn_).mergeFrom(value)
                    .buildPartial();
          } else {
            intColumn_ = value;
          }
          onChanged();
        } else {
          intColumnBuilder_.mergeFrom(value);
        }
        bitField0_ |= 0x00000002;
        return this;
      }

      /**
       * <code>optional .IntColumnMessage int_column = 3;</code>
       */
      public Builder clearIntColumn() {
        if (intColumnBuilder_ == null) {
          intColumn_ = edu.washington.escience.myria.proto.DataProto.IntColumnMessage.getDefaultInstance();
          onChanged();
        } else {
          intColumnBuilder_.clear();
        }
        bitField0_ = (bitField0_ & ~0x00000002);
        return this;
      }

      /**
       * <code>optional .IntColumnMessage int_column = 3;</code>
       */
      public edu.washington.escience.myria.proto.DataProto.IntColumnMessage.Builder getIntColumnBuilder() {
        bitField0_ |= 0x00000002;
        onChanged();
        return getIntColumnFieldBuilder().getBuilder();
      }

      /**
       * <code>optional .IntColumnMessage int_column = 3;</code>
       */
      @Override
      public edu.washington.escience.myria.proto.DataProto.IntColumnMessageOrBuilder getIntColumnOrBuilder() {
        if (intColumnBuilder_ != null) {
          return intColumnBuilder_.getMessageOrBuilder();
        } else {
          return intColumn_;
        }
      }

      /**
       * <code>optional .IntColumnMessage int_column = 3;</code>
       */
      private com.google.protobuf.SingleFieldBuilder<edu.washington.escience.myria.proto.DataProto.IntColumnMessage, edu.washington.escience.myria.proto.DataProto.IntColumnMessage.Builder, edu.washington.escience.myria.proto.DataProto.IntColumnMessageOrBuilder> getIntColumnFieldBuilder() {
        if (intColumnBuilder_ == null) {
          intColumnBuilder_ =
              new com.google.protobuf.SingleFieldBuilder<edu.washington.escience.myria.proto.DataProto.IntColumnMessage, edu.washington.escience.myria.proto.DataProto.IntColumnMessage.Builder, edu.washington.escience.myria.proto.DataProto.IntColumnMessageOrBuilder>(
                  getIntColumn(), getParentForChildren(), isClean());
          intColumn_ = null;
        }
        return intColumnBuilder_;
      }

      private edu.washington.escience.myria.proto.DataProto.LongColumnMessage longColumn_ =
          edu.washington.escience.myria.proto.DataProto.LongColumnMessage.getDefaultInstance();
      private com.google.protobuf.SingleFieldBuilder<edu.washington.escience.myria.proto.DataProto.LongColumnMessage, edu.washington.escience.myria.proto.DataProto.LongColumnMessage.Builder, edu.washington.escience.myria.proto.DataProto.LongColumnMessageOrBuilder> longColumnBuilder_;

      /**
       * <code>optional .LongColumnMessage long_column = 4;</code>
       */
      @Override
      public boolean hasLongColumn() {
        return ((bitField0_ & 0x00000004) == 0x00000004);
      }

      /**
       * <code>optional .LongColumnMessage long_column = 4;</code>
       */
      @Override
      public edu.washington.escience.myria.proto.DataProto.LongColumnMessage getLongColumn() {
        if (longColumnBuilder_ == null) {
          return longColumn_;
        } else {
          return longColumnBuilder_.getMessage();
        }
      }

      /**
       * <code>optional .LongColumnMessage long_column = 4;</code>
       */
      public Builder setLongColumn(final edu.washington.escience.myria.proto.DataProto.LongColumnMessage value) {
        if (longColumnBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          longColumn_ = value;
          onChanged();
        } else {
          longColumnBuilder_.setMessage(value);
        }
        bitField0_ |= 0x00000004;
        return this;
      }

      /**
       * <code>optional .LongColumnMessage long_column = 4;</code>
       */
      public Builder setLongColumn(
          final edu.washington.escience.myria.proto.DataProto.LongColumnMessage.Builder builderForValue) {
        if (longColumnBuilder_ == null) {
          longColumn_ = builderForValue.build();
          onChanged();
        } else {
          longColumnBuilder_.setMessage(builderForValue.build());
        }
        bitField0_ |= 0x00000004;
        return this;
      }

      /**
       * <code>optional .LongColumnMessage long_column = 4;</code>
       */
      public Builder mergeLongColumn(final edu.washington.escience.myria.proto.DataProto.LongColumnMessage value) {
        if (longColumnBuilder_ == null) {
          if (((bitField0_ & 0x00000004) == 0x00000004)
              && longColumn_ != edu.washington.escience.myria.proto.DataProto.LongColumnMessage.getDefaultInstance()) {
            longColumn_ =
                edu.washington.escience.myria.proto.DataProto.LongColumnMessage.newBuilder(longColumn_)
                    .mergeFrom(value).buildPartial();
          } else {
            longColumn_ = value;
          }
          onChanged();
        } else {
          longColumnBuilder_.mergeFrom(value);
        }
        bitField0_ |= 0x00000004;
        return this;
      }

      /**
       * <code>optional .LongColumnMessage long_column = 4;</code>
       */
      public Builder clearLongColumn() {
        if (longColumnBuilder_ == null) {
          longColumn_ = edu.washington.escience.myria.proto.DataProto.LongColumnMessage.getDefaultInstance();
          onChanged();
        } else {
          longColumnBuilder_.clear();
        }
        bitField0_ = (bitField0_ & ~0x00000004);
        return this;
      }

      /**
       * <code>optional .LongColumnMessage long_column = 4;</code>
       */
      public edu.washington.escience.myria.proto.DataProto.LongColumnMessage.Builder getLongColumnBuilder() {
        bitField0_ |= 0x00000004;
        onChanged();
        return getLongColumnFieldBuilder().getBuilder();
      }

      /**
       * <code>optional .LongColumnMessage long_column = 4;</code>
       */
      @Override
      public edu.washington.escience.myria.proto.DataProto.LongColumnMessageOrBuilder getLongColumnOrBuilder() {
        if (longColumnBuilder_ != null) {
          return longColumnBuilder_.getMessageOrBuilder();
        } else {
          return longColumn_;
        }
      }

      /**
       * <code>optional .LongColumnMessage long_column = 4;</code>
       */
      private com.google.protobuf.SingleFieldBuilder<edu.washington.escience.myria.proto.DataProto.LongColumnMessage, edu.washington.escience.myria.proto.DataProto.LongColumnMessage.Builder, edu.washington.escience.myria.proto.DataProto.LongColumnMessageOrBuilder> getLongColumnFieldBuilder() {
        if (longColumnBuilder_ == null) {
          longColumnBuilder_ =
              new com.google.protobuf.SingleFieldBuilder<edu.washington.escience.myria.proto.DataProto.LongColumnMessage, edu.washington.escience.myria.proto.DataProto.LongColumnMessage.Builder, edu.washington.escience.myria.proto.DataProto.LongColumnMessageOrBuilder>(
                  getLongColumn(), getParentForChildren(), isClean());
          longColumn_ = null;
        }
        return longColumnBuilder_;
      }

      private edu.washington.escience.myria.proto.DataProto.FloatColumnMessage floatColumn_ =
          edu.washington.escience.myria.proto.DataProto.FloatColumnMessage.getDefaultInstance();
      private com.google.protobuf.SingleFieldBuilder<edu.washington.escience.myria.proto.DataProto.FloatColumnMessage, edu.washington.escience.myria.proto.DataProto.FloatColumnMessage.Builder, edu.washington.escience.myria.proto.DataProto.FloatColumnMessageOrBuilder> floatColumnBuilder_;

      /**
       * <code>optional .FloatColumnMessage float_column = 5;</code>
       */
      @Override
      public boolean hasFloatColumn() {
        return ((bitField0_ & 0x00000008) == 0x00000008);
      }

      /**
       * <code>optional .FloatColumnMessage float_column = 5;</code>
       */
      @Override
      public edu.washington.escience.myria.proto.DataProto.FloatColumnMessage getFloatColumn() {
        if (floatColumnBuilder_ == null) {
          return floatColumn_;
        } else {
          return floatColumnBuilder_.getMessage();
        }
      }

      /**
       * <code>optional .FloatColumnMessage float_column = 5;</code>
       */
      public Builder setFloatColumn(final edu.washington.escience.myria.proto.DataProto.FloatColumnMessage value) {
        if (floatColumnBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          floatColumn_ = value;
          onChanged();
        } else {
          floatColumnBuilder_.setMessage(value);
        }
        bitField0_ |= 0x00000008;
        return this;
      }

      /**
       * <code>optional .FloatColumnMessage float_column = 5;</code>
       */
      public Builder setFloatColumn(
          final edu.washington.escience.myria.proto.DataProto.FloatColumnMessage.Builder builderForValue) {
        if (floatColumnBuilder_ == null) {
          floatColumn_ = builderForValue.build();
          onChanged();
        } else {
          floatColumnBuilder_.setMessage(builderForValue.build());
        }
        bitField0_ |= 0x00000008;
        return this;
      }

      /**
       * <code>optional .FloatColumnMessage float_column = 5;</code>
       */
      public Builder mergeFloatColumn(final edu.washington.escience.myria.proto.DataProto.FloatColumnMessage value) {
        if (floatColumnBuilder_ == null) {
          if (((bitField0_ & 0x00000008) == 0x00000008)
              && floatColumn_ != edu.washington.escience.myria.proto.DataProto.FloatColumnMessage.getDefaultInstance()) {
            floatColumn_ =
                edu.washington.escience.myria.proto.DataProto.FloatColumnMessage.newBuilder(floatColumn_).mergeFrom(
                    value).buildPartial();
          } else {
            floatColumn_ = value;
          }
          onChanged();
        } else {
          floatColumnBuilder_.mergeFrom(value);
        }
        bitField0_ |= 0x00000008;
        return this;
      }

      /**
       * <code>optional .FloatColumnMessage float_column = 5;</code>
       */
      public Builder clearFloatColumn() {
        if (floatColumnBuilder_ == null) {
          floatColumn_ = edu.washington.escience.myria.proto.DataProto.FloatColumnMessage.getDefaultInstance();
          onChanged();
        } else {
          floatColumnBuilder_.clear();
        }
        bitField0_ = (bitField0_ & ~0x00000008);
        return this;
      }

      /**
       * <code>optional .FloatColumnMessage float_column = 5;</code>
       */
      public edu.washington.escience.myria.proto.DataProto.FloatColumnMessage.Builder getFloatColumnBuilder() {
        bitField0_ |= 0x00000008;
        onChanged();
        return getFloatColumnFieldBuilder().getBuilder();
      }

      /**
       * <code>optional .FloatColumnMessage float_column = 5;</code>
       */
      @Override
      public edu.washington.escience.myria.proto.DataProto.FloatColumnMessageOrBuilder getFloatColumnOrBuilder() {
        if (floatColumnBuilder_ != null) {
          return floatColumnBuilder_.getMessageOrBuilder();
        } else {
          return floatColumn_;
        }
      }

      /**
       * <code>optional .FloatColumnMessage float_column = 5;</code>
       */
      private com.google.protobuf.SingleFieldBuilder<edu.washington.escience.myria.proto.DataProto.FloatColumnMessage, edu.washington.escience.myria.proto.DataProto.FloatColumnMessage.Builder, edu.washington.escience.myria.proto.DataProto.FloatColumnMessageOrBuilder> getFloatColumnFieldBuilder() {
        if (floatColumnBuilder_ == null) {
          floatColumnBuilder_ =
              new com.google.protobuf.SingleFieldBuilder<edu.washington.escience.myria.proto.DataProto.FloatColumnMessage, edu.washington.escience.myria.proto.DataProto.FloatColumnMessage.Builder, edu.washington.escience.myria.proto.DataProto.FloatColumnMessageOrBuilder>(
                  getFloatColumn(), getParentForChildren(), isClean());
          floatColumn_ = null;
        }
        return floatColumnBuilder_;
      }

      private edu.washington.escience.myria.proto.DataProto.DoubleColumnMessage doubleColumn_ =
          edu.washington.escience.myria.proto.DataProto.DoubleColumnMessage.getDefaultInstance();
      private com.google.protobuf.SingleFieldBuilder<edu.washington.escience.myria.proto.DataProto.DoubleColumnMessage, edu.washington.escience.myria.proto.DataProto.DoubleColumnMessage.Builder, edu.washington.escience.myria.proto.DataProto.DoubleColumnMessageOrBuilder> doubleColumnBuilder_;

      /**
       * <code>optional .DoubleColumnMessage double_column = 6;</code>
       */
      @Override
      public boolean hasDoubleColumn() {
        return ((bitField0_ & 0x00000010) == 0x00000010);
      }

      /**
       * <code>optional .DoubleColumnMessage double_column = 6;</code>
       */
      @Override
      public edu.washington.escience.myria.proto.DataProto.DoubleColumnMessage getDoubleColumn() {
        if (doubleColumnBuilder_ == null) {
          return doubleColumn_;
        } else {
          return doubleColumnBuilder_.getMessage();
        }
      }

      /**
       * <code>optional .DoubleColumnMessage double_column = 6;</code>
       */
      public Builder setDoubleColumn(final edu.washington.escience.myria.proto.DataProto.DoubleColumnMessage value) {
        if (doubleColumnBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          doubleColumn_ = value;
          onChanged();
        } else {
          doubleColumnBuilder_.setMessage(value);
        }
        bitField0_ |= 0x00000010;
        return this;
      }

      /**
       * <code>optional .DoubleColumnMessage double_column = 6;</code>
       */
      public Builder setDoubleColumn(
          final edu.washington.escience.myria.proto.DataProto.DoubleColumnMessage.Builder builderForValue) {
        if (doubleColumnBuilder_ == null) {
          doubleColumn_ = builderForValue.build();
          onChanged();
        } else {
          doubleColumnBuilder_.setMessage(builderForValue.build());
        }
        bitField0_ |= 0x00000010;
        return this;
      }

      /**
       * <code>optional .DoubleColumnMessage double_column = 6;</code>
       */
      public Builder mergeDoubleColumn(final edu.washington.escience.myria.proto.DataProto.DoubleColumnMessage value) {
        if (doubleColumnBuilder_ == null) {
          if (((bitField0_ & 0x00000010) == 0x00000010)
              && doubleColumn_ != edu.washington.escience.myria.proto.DataProto.DoubleColumnMessage
                  .getDefaultInstance()) {
            doubleColumn_ =
                edu.washington.escience.myria.proto.DataProto.DoubleColumnMessage.newBuilder(doubleColumn_).mergeFrom(
                    value).buildPartial();
          } else {
            doubleColumn_ = value;
          }
          onChanged();
        } else {
          doubleColumnBuilder_.mergeFrom(value);
        }
        bitField0_ |= 0x00000010;
        return this;
      }

      /**
       * <code>optional .DoubleColumnMessage double_column = 6;</code>
       */
      public Builder clearDoubleColumn() {
        if (doubleColumnBuilder_ == null) {
          doubleColumn_ = edu.washington.escience.myria.proto.DataProto.DoubleColumnMessage.getDefaultInstance();
          onChanged();
        } else {
          doubleColumnBuilder_.clear();
        }
        bitField0_ = (bitField0_ & ~0x00000010);
        return this;
      }

      /**
       * <code>optional .DoubleColumnMessage double_column = 6;</code>
       */
      public edu.washington.escience.myria.proto.DataProto.DoubleColumnMessage.Builder getDoubleColumnBuilder() {
        bitField0_ |= 0x00000010;
        onChanged();
        return getDoubleColumnFieldBuilder().getBuilder();
      }

      /**
       * <code>optional .DoubleColumnMessage double_column = 6;</code>
       */
      @Override
      public edu.washington.escience.myria.proto.DataProto.DoubleColumnMessageOrBuilder getDoubleColumnOrBuilder() {
        if (doubleColumnBuilder_ != null) {
          return doubleColumnBuilder_.getMessageOrBuilder();
        } else {
          return doubleColumn_;
        }
      }

      /**
       * <code>optional .DoubleColumnMessage double_column = 6;</code>
       */
      private com.google.protobuf.SingleFieldBuilder<edu.washington.escience.myria.proto.DataProto.DoubleColumnMessage, edu.washington.escience.myria.proto.DataProto.DoubleColumnMessage.Builder, edu.washington.escience.myria.proto.DataProto.DoubleColumnMessageOrBuilder> getDoubleColumnFieldBuilder() {
        if (doubleColumnBuilder_ == null) {
          doubleColumnBuilder_ =
              new com.google.protobuf.SingleFieldBuilder<edu.washington.escience.myria.proto.DataProto.DoubleColumnMessage, edu.washington.escience.myria.proto.DataProto.DoubleColumnMessage.Builder, edu.washington.escience.myria.proto.DataProto.DoubleColumnMessageOrBuilder>(
                  getDoubleColumn(), getParentForChildren(), isClean());
          doubleColumn_ = null;
        }
        return doubleColumnBuilder_;
      }

      private edu.washington.escience.myria.proto.DataProto.StringColumnMessage stringColumn_ =
          edu.washington.escience.myria.proto.DataProto.StringColumnMessage.getDefaultInstance();
      private com.google.protobuf.SingleFieldBuilder<edu.washington.escience.myria.proto.DataProto.StringColumnMessage, edu.washington.escience.myria.proto.DataProto.StringColumnMessage.Builder, edu.washington.escience.myria.proto.DataProto.StringColumnMessageOrBuilder> stringColumnBuilder_;

      /**
       * <code>optional .StringColumnMessage string_column = 7;</code>
       */
      @Override
      public boolean hasStringColumn() {
        return ((bitField0_ & 0x00000020) == 0x00000020);
      }

      /**
       * <code>optional .StringColumnMessage string_column = 7;</code>
       */
      @Override
      public edu.washington.escience.myria.proto.DataProto.StringColumnMessage getStringColumn() {
        if (stringColumnBuilder_ == null) {
          return stringColumn_;
        } else {
          return stringColumnBuilder_.getMessage();
        }
      }

      /**
       * <code>optional .StringColumnMessage string_column = 7;</code>
       */
      public Builder setStringColumn(final edu.washington.escience.myria.proto.DataProto.StringColumnMessage value) {
        if (stringColumnBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          stringColumn_ = value;
          onChanged();
        } else {
          stringColumnBuilder_.setMessage(value);
        }
        bitField0_ |= 0x00000020;
        return this;
      }

      /**
       * <code>optional .StringColumnMessage string_column = 7;</code>
       */
      public Builder setStringColumn(
          final edu.washington.escience.myria.proto.DataProto.StringColumnMessage.Builder builderForValue) {
        if (stringColumnBuilder_ == null) {
          stringColumn_ = builderForValue.build();
          onChanged();
        } else {
          stringColumnBuilder_.setMessage(builderForValue.build());
        }
        bitField0_ |= 0x00000020;
        return this;
      }

      /**
       * <code>optional .StringColumnMessage string_column = 7;</code>
       */
      public Builder mergeStringColumn(final edu.washington.escience.myria.proto.DataProto.StringColumnMessage value) {
        if (stringColumnBuilder_ == null) {
          if (((bitField0_ & 0x00000020) == 0x00000020)
              && stringColumn_ != edu.washington.escience.myria.proto.DataProto.StringColumnMessage
                  .getDefaultInstance()) {
            stringColumn_ =
                edu.washington.escience.myria.proto.DataProto.StringColumnMessage.newBuilder(stringColumn_).mergeFrom(
                    value).buildPartial();
          } else {
            stringColumn_ = value;
          }
          onChanged();
        } else {
          stringColumnBuilder_.mergeFrom(value);
        }
        bitField0_ |= 0x00000020;
        return this;
      }

      /**
       * <code>optional .StringColumnMessage string_column = 7;</code>
       */
      public Builder clearStringColumn() {
        if (stringColumnBuilder_ == null) {
          stringColumn_ = edu.washington.escience.myria.proto.DataProto.StringColumnMessage.getDefaultInstance();
          onChanged();
        } else {
          stringColumnBuilder_.clear();
        }
        bitField0_ = (bitField0_ & ~0x00000020);
        return this;
      }

      /**
       * <code>optional .StringColumnMessage string_column = 7;</code>
       */
      public edu.washington.escience.myria.proto.DataProto.StringColumnMessage.Builder getStringColumnBuilder() {
        bitField0_ |= 0x00000020;
        onChanged();
        return getStringColumnFieldBuilder().getBuilder();
      }

      /**
       * <code>optional .StringColumnMessage string_column = 7;</code>
       */
      @Override
      public edu.washington.escience.myria.proto.DataProto.StringColumnMessageOrBuilder getStringColumnOrBuilder() {
        if (stringColumnBuilder_ != null) {
          return stringColumnBuilder_.getMessageOrBuilder();
        } else {
          return stringColumn_;
        }
      }

      /**
       * <code>optional .StringColumnMessage string_column = 7;</code>
       */
      private com.google.protobuf.SingleFieldBuilder<edu.washington.escience.myria.proto.DataProto.StringColumnMessage, edu.washington.escience.myria.proto.DataProto.StringColumnMessage.Builder, edu.washington.escience.myria.proto.DataProto.StringColumnMessageOrBuilder> getStringColumnFieldBuilder() {
        if (stringColumnBuilder_ == null) {
          stringColumnBuilder_ =
              new com.google.protobuf.SingleFieldBuilder<edu.washington.escience.myria.proto.DataProto.StringColumnMessage, edu.washington.escience.myria.proto.DataProto.StringColumnMessage.Builder, edu.washington.escience.myria.proto.DataProto.StringColumnMessageOrBuilder>(
                  getStringColumn(), getParentForChildren(), isClean());
          stringColumn_ = null;
        }
        return stringColumnBuilder_;
      }

      private edu.washington.escience.myria.proto.DataProto.BooleanColumnMessage booleanColumn_ =
          edu.washington.escience.myria.proto.DataProto.BooleanColumnMessage.getDefaultInstance();
      private com.google.protobuf.SingleFieldBuilder<edu.washington.escience.myria.proto.DataProto.BooleanColumnMessage, edu.washington.escience.myria.proto.DataProto.BooleanColumnMessage.Builder, edu.washington.escience.myria.proto.DataProto.BooleanColumnMessageOrBuilder> booleanColumnBuilder_;

      /**
       * <code>optional .BooleanColumnMessage boolean_column = 8;</code>
       */
      @Override
      public boolean hasBooleanColumn() {
        return ((bitField0_ & 0x00000040) == 0x00000040);
      }

      /**
       * <code>optional .BooleanColumnMessage boolean_column = 8;</code>
       */
      @Override
      public edu.washington.escience.myria.proto.DataProto.BooleanColumnMessage getBooleanColumn() {
        if (booleanColumnBuilder_ == null) {
          return booleanColumn_;
        } else {
          return booleanColumnBuilder_.getMessage();
        }
      }

      /**
       * <code>optional .BooleanColumnMessage boolean_column = 8;</code>
       */
      public Builder setBooleanColumn(final edu.washington.escience.myria.proto.DataProto.BooleanColumnMessage value) {
        if (booleanColumnBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          booleanColumn_ = value;
          onChanged();
        } else {
          booleanColumnBuilder_.setMessage(value);
        }
        bitField0_ |= 0x00000040;
        return this;
      }

      /**
       * <code>optional .BooleanColumnMessage boolean_column = 8;</code>
       */
      public Builder setBooleanColumn(
          final edu.washington.escience.myria.proto.DataProto.BooleanColumnMessage.Builder builderForValue) {
        if (booleanColumnBuilder_ == null) {
          booleanColumn_ = builderForValue.build();
          onChanged();
        } else {
          booleanColumnBuilder_.setMessage(builderForValue.build());
        }
        bitField0_ |= 0x00000040;
        return this;
      }

      /**
       * <code>optional .BooleanColumnMessage boolean_column = 8;</code>
       */
      public Builder mergeBooleanColumn(final edu.washington.escience.myria.proto.DataProto.BooleanColumnMessage value) {
        if (booleanColumnBuilder_ == null) {
          if (((bitField0_ & 0x00000040) == 0x00000040)
              && booleanColumn_ != edu.washington.escience.myria.proto.DataProto.BooleanColumnMessage
                  .getDefaultInstance()) {
            booleanColumn_ =
                edu.washington.escience.myria.proto.DataProto.BooleanColumnMessage.newBuilder(booleanColumn_)
                    .mergeFrom(value).buildPartial();
          } else {
            booleanColumn_ = value;
          }
          onChanged();
        } else {
          booleanColumnBuilder_.mergeFrom(value);
        }
        bitField0_ |= 0x00000040;
        return this;
      }

      /**
       * <code>optional .BooleanColumnMessage boolean_column = 8;</code>
       */
      public Builder clearBooleanColumn() {
        if (booleanColumnBuilder_ == null) {
          booleanColumn_ = edu.washington.escience.myria.proto.DataProto.BooleanColumnMessage.getDefaultInstance();
          onChanged();
        } else {
          booleanColumnBuilder_.clear();
        }
        bitField0_ = (bitField0_ & ~0x00000040);
        return this;
      }

      /**
       * <code>optional .BooleanColumnMessage boolean_column = 8;</code>
       */
      public edu.washington.escience.myria.proto.DataProto.BooleanColumnMessage.Builder getBooleanColumnBuilder() {
        bitField0_ |= 0x00000040;
        onChanged();
        return getBooleanColumnFieldBuilder().getBuilder();
      }

      /**
       * <code>optional .BooleanColumnMessage boolean_column = 8;</code>
       */
      @Override
      public edu.washington.escience.myria.proto.DataProto.BooleanColumnMessageOrBuilder getBooleanColumnOrBuilder() {
        if (booleanColumnBuilder_ != null) {
          return booleanColumnBuilder_.getMessageOrBuilder();
        } else {
          return booleanColumn_;
        }
      }

      /**
       * <code>optional .BooleanColumnMessage boolean_column = 8;</code>
       */
      private com.google.protobuf.SingleFieldBuilder<edu.washington.escience.myria.proto.DataProto.BooleanColumnMessage, edu.washington.escience.myria.proto.DataProto.BooleanColumnMessage.Builder, edu.washington.escience.myria.proto.DataProto.BooleanColumnMessageOrBuilder> getBooleanColumnFieldBuilder() {
        if (booleanColumnBuilder_ == null) {
          booleanColumnBuilder_ =
              new com.google.protobuf.SingleFieldBuilder<edu.washington.escience.myria.proto.DataProto.BooleanColumnMessage, edu.washington.escience.myria.proto.DataProto.BooleanColumnMessage.Builder, edu.washington.escience.myria.proto.DataProto.BooleanColumnMessageOrBuilder>(
                  getBooleanColumn(), getParentForChildren(), isClean());
          booleanColumn_ = null;
        }
        return booleanColumnBuilder_;
      }

      private edu.washington.escience.myria.proto.DataProto.DateTimeColumnMessage dateColumn_ =
          edu.washington.escience.myria.proto.DataProto.DateTimeColumnMessage.getDefaultInstance();
      private com.google.protobuf.SingleFieldBuilder<edu.washington.escience.myria.proto.DataProto.DateTimeColumnMessage, edu.washington.escience.myria.proto.DataProto.DateTimeColumnMessage.Builder, edu.washington.escience.myria.proto.DataProto.DateTimeColumnMessageOrBuilder> dateColumnBuilder_;

      /**
       * <code>optional .DateTimeColumnMessage date_column = 9;</code>
       */
      @Override
      public boolean hasDateColumn() {
        return ((bitField0_ & 0x00000080) == 0x00000080);
      }

      /**
       * <code>optional .DateTimeColumnMessage date_column = 9;</code>
       */
      @Override
      public edu.washington.escience.myria.proto.DataProto.DateTimeColumnMessage getDateColumn() {
        if (dateColumnBuilder_ == null) {
          return dateColumn_;
        } else {
          return dateColumnBuilder_.getMessage();
        }
      }

      /**
       * <code>optional .DateTimeColumnMessage date_column = 9;</code>
       */
      public Builder setDateColumn(final edu.washington.escience.myria.proto.DataProto.DateTimeColumnMessage value) {
        if (dateColumnBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          dateColumn_ = value;
          onChanged();
        } else {
          dateColumnBuilder_.setMessage(value);
        }
        bitField0_ |= 0x00000080;
        return this;
      }

      /**
       * <code>optional .DateTimeColumnMessage date_column = 9;</code>
       */
      public Builder setDateColumn(
          final edu.washington.escience.myria.proto.DataProto.DateTimeColumnMessage.Builder builderForValue) {
        if (dateColumnBuilder_ == null) {
          dateColumn_ = builderForValue.build();
          onChanged();
        } else {
          dateColumnBuilder_.setMessage(builderForValue.build());
        }
        bitField0_ |= 0x00000080;
        return this;
      }

      /**
       * <code>optional .DateTimeColumnMessage date_column = 9;</code>
       */
      public Builder mergeDateColumn(final edu.washington.escience.myria.proto.DataProto.DateTimeColumnMessage value) {
        if (dateColumnBuilder_ == null) {
          if (((bitField0_ & 0x00000080) == 0x00000080)
              && dateColumn_ != edu.washington.escience.myria.proto.DataProto.DateTimeColumnMessage
                  .getDefaultInstance()) {
            dateColumn_ =
                edu.washington.escience.myria.proto.DataProto.DateTimeColumnMessage.newBuilder(dateColumn_).mergeFrom(
                    value).buildPartial();
          } else {
            dateColumn_ = value;
          }
          onChanged();
        } else {
          dateColumnBuilder_.mergeFrom(value);
        }
        bitField0_ |= 0x00000080;
        return this;
      }

      /**
       * <code>optional .DateTimeColumnMessage date_column = 9;</code>
       */
      public Builder clearDateColumn() {
        if (dateColumnBuilder_ == null) {
          dateColumn_ = edu.washington.escience.myria.proto.DataProto.DateTimeColumnMessage.getDefaultInstance();
          onChanged();
        } else {
          dateColumnBuilder_.clear();
        }
        bitField0_ = (bitField0_ & ~0x00000080);
        return this;
      }

      /**
       * <code>optional .DateTimeColumnMessage date_column = 9;</code>
       */
      public edu.washington.escience.myria.proto.DataProto.DateTimeColumnMessage.Builder getDateColumnBuilder() {
        bitField0_ |= 0x00000080;
        onChanged();
        return getDateColumnFieldBuilder().getBuilder();
      }

      /**
       * <code>optional .DateTimeColumnMessage date_column = 9;</code>
       */
      @Override
      public edu.washington.escience.myria.proto.DataProto.DateTimeColumnMessageOrBuilder getDateColumnOrBuilder() {
        if (dateColumnBuilder_ != null) {
          return dateColumnBuilder_.getMessageOrBuilder();
        } else {
          return dateColumn_;
        }
      }

      /**
       * <code>optional .DateTimeColumnMessage date_column = 9;</code>
       */
      private com.google.protobuf.SingleFieldBuilder<edu.washington.escience.myria.proto.DataProto.DateTimeColumnMessage, edu.washington.escience.myria.proto.DataProto.DateTimeColumnMessage.Builder, edu.washington.escience.myria.proto.DataProto.DateTimeColumnMessageOrBuilder> getDateColumnFieldBuilder() {
        if (dateColumnBuilder_ == null) {
          dateColumnBuilder_ =
              new com.google.protobuf.SingleFieldBuilder<edu.washington.escience.myria.proto.DataProto.DateTimeColumnMessage, edu.washington.escience.myria.proto.DataProto.DateTimeColumnMessage.Builder, edu.washington.escience.myria.proto.DataProto.DateTimeColumnMessageOrBuilder>(
                  getDateColumn(), getParentForChildren(), isClean());
          dateColumn_ = null;
        }
        return dateColumnBuilder_;
      }

      // @@protoc_insertion_point(builder_scope:ColumnMessage)
    }

    static {
      defaultInstance = new ColumnMessage(true);
      defaultInstance.initFields();
    }

    // @@protoc_insertion_point(class_scope:ColumnMessage)
  }

  public interface IntColumnMessageOrBuilder extends
  // @@protoc_insertion_point(interface_extends:IntColumnMessage)
      com.google.protobuf.MessageOrBuilder {

    /**
     * <code>required bytes data = 1;</code>
     */
    boolean hasData();

    /**
     * <code>required bytes data = 1;</code>
     */
    com.google.protobuf.ByteString getData();
  }
  /**
   * Protobuf type {@code IntColumnMessage}
   */
  public static final class IntColumnMessage extends com.google.protobuf.GeneratedMessage implements
  // @@protoc_insertion_point(message_implements:IntColumnMessage)
      IntColumnMessageOrBuilder {
    // Use IntColumnMessage.newBuilder() to construct.
    private IntColumnMessage(final com.google.protobuf.GeneratedMessage.Builder<?> builder) {
      super(builder);
      unknownFields = builder.getUnknownFields();
    }

    private IntColumnMessage(final boolean noInit) {
      unknownFields = com.google.protobuf.UnknownFieldSet.getDefaultInstance();
    }

    private static final IntColumnMessage defaultInstance;

    public static IntColumnMessage getDefaultInstance() {
      return defaultInstance;
    }

    @Override
    public IntColumnMessage getDefaultInstanceForType() {
      return defaultInstance;
    }

    private final com.google.protobuf.UnknownFieldSet unknownFields;

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

    private IntColumnMessage(final com.google.protobuf.CodedInputStream input,
        final com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      initFields();
      com.google.protobuf.UnknownFieldSet.Builder unknownFields = com.google.protobuf.UnknownFieldSet.newBuilder();
      try {
        boolean done = false;
        while (!done) {
          int tag = input.readTag();
          switch (tag) {
            case 0:
              done = true;
              break;
            default: {
              if (!parseUnknownField(input, unknownFields, extensionRegistry, tag)) {
                done = true;
              }
              break;
            }
            case 10: {
              bitField0_ |= 0x00000001;
              data_ = input.readBytes();
              break;
            }
          }
        }
      } catch (com.google.protobuf.InvalidProtocolBufferException e) {
        throw e.setUnfinishedMessage(this);
      } catch (java.io.IOException e) {
        throw new com.google.protobuf.InvalidProtocolBufferException(e.getMessage()).setUnfinishedMessage(this);
      } finally {
        this.unknownFields = unknownFields.build();
        makeExtensionsImmutable();
      }
    }

    public static final com.google.protobuf.Descriptors.Descriptor getDescriptor() {
      return edu.washington.escience.myria.proto.DataProto.internal_static_IntColumnMessage_descriptor;
    }

    @Override
    protected com.google.protobuf.GeneratedMessage.FieldAccessorTable internalGetFieldAccessorTable() {
      return edu.washington.escience.myria.proto.DataProto.internal_static_IntColumnMessage_fieldAccessorTable
          .ensureFieldAccessorsInitialized(edu.washington.escience.myria.proto.DataProto.IntColumnMessage.class,
              edu.washington.escience.myria.proto.DataProto.IntColumnMessage.Builder.class);
    }

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

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

    private int bitField0_;
    public static final int DATA_FIELD_NUMBER = 1;
    private com.google.protobuf.ByteString data_;

    /**
     * <code>required bytes data = 1;</code>
     */
    @Override
    public boolean hasData() {
      return ((bitField0_ & 0x00000001) == 0x00000001);
    }

    /**
     * <code>required bytes data = 1;</code>
     */
    @Override
    public com.google.protobuf.ByteString getData() {
      return data_;
    }

    private void initFields() {
      data_ = com.google.protobuf.ByteString.EMPTY;
    }

    private byte memoizedIsInitialized = -1;

    @Override
    public final boolean isInitialized() {
      byte isInitialized = memoizedIsInitialized;
      if (isInitialized == 1) {
        return true;
      }
      if (isInitialized == 0) {
        return false;
      }

      if (!hasData()) {
        memoizedIsInitialized = 0;
        return false;
      }
      memoizedIsInitialized = 1;
      return true;
    }

    @Override
    public void writeTo(final com.google.protobuf.CodedOutputStream output) throws java.io.IOException {
      getSerializedSize();
      if (((bitField0_ & 0x00000001) == 0x00000001)) {
        output.writeBytes(1, data_);
      }
      getUnknownFields().writeTo(output);
    }

    private int memoizedSerializedSize = -1;

    @Override
    public int getSerializedSize() {
      int size = memoizedSerializedSize;
      if (size != -1) {
        return size;
      }

      size = 0;
      if (((bitField0_ & 0x00000001) == 0x00000001)) {
        size += com.google.protobuf.CodedOutputStream.computeBytesSize(1, data_);
      }
      size += getUnknownFields().getSerializedSize();
      memoizedSerializedSize = size;
      return size;
    }

    private static final long serialVersionUID = 0L;

    @java.lang.Override
    protected java.lang.Object writeReplace() throws java.io.ObjectStreamException {
      return super.writeReplace();
    }

    public static edu.washington.escience.myria.proto.DataProto.IntColumnMessage parseFrom(
        final com.google.protobuf.ByteString data) throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }

    public static edu.washington.escience.myria.proto.DataProto.IntColumnMessage parseFrom(
        final com.google.protobuf.ByteString data, final com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }

    public static edu.washington.escience.myria.proto.DataProto.IntColumnMessage parseFrom(final byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }

    public static edu.washington.escience.myria.proto.DataProto.IntColumnMessage parseFrom(final byte[] data,
        final com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }

    public static edu.washington.escience.myria.proto.DataProto.IntColumnMessage parseFrom(
        final java.io.InputStream input) throws java.io.IOException {
      return PARSER.parseFrom(input);
    }

    public static edu.washington.escience.myria.proto.DataProto.IntColumnMessage parseFrom(
        final java.io.InputStream input, final com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return PARSER.parseFrom(input, extensionRegistry);
    }

    public static edu.washington.escience.myria.proto.DataProto.IntColumnMessage parseDelimitedFrom(
        final java.io.InputStream input) throws java.io.IOException {
      return PARSER.parseDelimitedFrom(input);
    }

    public static edu.washington.escience.myria.proto.DataProto.IntColumnMessage parseDelimitedFrom(
        final java.io.InputStream input, final com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return PARSER.parseDelimitedFrom(input, extensionRegistry);
    }

    public static edu.washington.escience.myria.proto.DataProto.IntColumnMessage parseFrom(
        final com.google.protobuf.CodedInputStream input) throws java.io.IOException {
      return PARSER.parseFrom(input);
    }

    public static edu.washington.escience.myria.proto.DataProto.IntColumnMessage parseFrom(
        final com.google.protobuf.CodedInputStream input,
        final com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws java.io.IOException {
      return PARSER.parseFrom(input, extensionRegistry);
    }

    public static Builder newBuilder() {
      return Builder.create();
    }

    @Override
    public Builder newBuilderForType() {
      return newBuilder();
    }

    public static Builder newBuilder(final edu.washington.escience.myria.proto.DataProto.IntColumnMessage prototype) {
      return newBuilder().mergeFrom(prototype);
    }

    @Override
    public Builder toBuilder() {
      return newBuilder(this);
    }

    @java.lang.Override
    protected Builder newBuilderForType(final com.google.protobuf.GeneratedMessage.BuilderParent parent) {
      Builder builder = new Builder(parent);
      return builder;
    }

    /**
     * Protobuf type {@code IntColumnMessage}
     */
    public static final class Builder extends com.google.protobuf.GeneratedMessage.Builder<Builder> implements
    // @@protoc_insertion_point(builder_implements:IntColumnMessage)
        edu.washington.escience.myria.proto.DataProto.IntColumnMessageOrBuilder {
      public static final com.google.protobuf.Descriptors.Descriptor getDescriptor() {
        return edu.washington.escience.myria.proto.DataProto.internal_static_IntColumnMessage_descriptor;
      }

      @Override
      protected com.google.protobuf.GeneratedMessage.FieldAccessorTable internalGetFieldAccessorTable() {
        return edu.washington.escience.myria.proto.DataProto.internal_static_IntColumnMessage_fieldAccessorTable
            .ensureFieldAccessorsInitialized(edu.washington.escience.myria.proto.DataProto.IntColumnMessage.class,
                edu.washington.escience.myria.proto.DataProto.IntColumnMessage.Builder.class);
      }

      // Construct using edu.washington.escience.myria.proto.DataProto.IntColumnMessage.newBuilder()
      private Builder() {
        maybeForceBuilderInitialization();
      }

      private Builder(final com.google.protobuf.GeneratedMessage.BuilderParent parent) {
        super(parent);
        maybeForceBuilderInitialization();
      }

      private void maybeForceBuilderInitialization() {
        if (com.google.protobuf.GeneratedMessage.alwaysUseFieldBuilders) {
        }
      }

      private static Builder create() {
        return new Builder();
      }

      @Override
      public Builder clear() {
        super.clear();
        data_ = com.google.protobuf.ByteString.EMPTY;
        bitField0_ = (bitField0_ & ~0x00000001);
        return this;
      }

      @Override
      public Builder clone() {
        return create().mergeFrom(buildPartial());
      }

      @Override
      public com.google.protobuf.Descriptors.Descriptor getDescriptorForType() {
        return edu.washington.escience.myria.proto.DataProto.internal_static_IntColumnMessage_descriptor;
      }

      @Override
      public edu.washington.escience.myria.proto.DataProto.IntColumnMessage getDefaultInstanceForType() {
        return edu.washington.escience.myria.proto.DataProto.IntColumnMessage.getDefaultInstance();
      }

      @Override
      public edu.washington.escience.myria.proto.DataProto.IntColumnMessage build() {
        edu.washington.escience.myria.proto.DataProto.IntColumnMessage result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return result;
      }

      @Override
      public edu.washington.escience.myria.proto.DataProto.IntColumnMessage buildPartial() {
        edu.washington.escience.myria.proto.DataProto.IntColumnMessage result =
            new edu.washington.escience.myria.proto.DataProto.IntColumnMessage(this);
        int from_bitField0_ = bitField0_;
        int to_bitField0_ = 0;
        if (((from_bitField0_ & 0x00000001) == 0x00000001)) {
          to_bitField0_ |= 0x00000001;
        }
        result.data_ = data_;
        result.bitField0_ = to_bitField0_;
        onBuilt();
        return result;
      }

      @Override
      public Builder mergeFrom(final com.google.protobuf.Message other) {
        if (other instanceof edu.washington.escience.myria.proto.DataProto.IntColumnMessage) {
          return mergeFrom((edu.washington.escience.myria.proto.DataProto.IntColumnMessage) other);
        } else {
          super.mergeFrom(other);
          return this;
        }
      }

      public Builder mergeFrom(final edu.washington.escience.myria.proto.DataProto.IntColumnMessage other) {
        if (other == edu.washington.escience.myria.proto.DataProto.IntColumnMessage.getDefaultInstance()) {
          return this;
        }
        if (other.hasData()) {
          setData(other.getData());
        }
        mergeUnknownFields(other.getUnknownFields());
        return this;
      }

      @Override
      public final boolean isInitialized() {
        if (!hasData()) {

          return false;
        }
        return true;
      }

      @Override
      public Builder mergeFrom(final com.google.protobuf.CodedInputStream input,
          final com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws java.io.IOException {
        edu.washington.escience.myria.proto.DataProto.IntColumnMessage parsedMessage = null;
        try {
          parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry);
        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
          parsedMessage = (edu.washington.escience.myria.proto.DataProto.IntColumnMessage) e.getUnfinishedMessage();
          throw e;
        } finally {
          if (parsedMessage != null) {
            mergeFrom(parsedMessage);
          }
        }
        return this;
      }

      private int bitField0_;

      private com.google.protobuf.ByteString data_ = com.google.protobuf.ByteString.EMPTY;

      /**
       * <code>required bytes data = 1;</code>
       */
      @Override
      public boolean hasData() {
        return ((bitField0_ & 0x00000001) == 0x00000001);
      }

      /**
       * <code>required bytes data = 1;</code>
       */
      @Override
      public com.google.protobuf.ByteString getData() {
        return data_;
      }

      /**
       * <code>required bytes data = 1;</code>
       */
      public Builder setData(final com.google.protobuf.ByteString value) {
        if (value == null) {
          throw new NullPointerException();
        }
        bitField0_ |= 0x00000001;
        data_ = value;
        onChanged();
        return this;
      }

      /**
       * <code>required bytes data = 1;</code>
       */
      public Builder clearData() {
        bitField0_ = (bitField0_ & ~0x00000001);
        data_ = getDefaultInstance().getData();
        onChanged();
        return this;
      }

      // @@protoc_insertion_point(builder_scope:IntColumnMessage)
    }

    static {
      defaultInstance = new IntColumnMessage(true);
      defaultInstance.initFields();
    }

    // @@protoc_insertion_point(class_scope:IntColumnMessage)
  }

  public interface LongColumnMessageOrBuilder extends
  // @@protoc_insertion_point(interface_extends:LongColumnMessage)
      com.google.protobuf.MessageOrBuilder {

    /**
     * <code>required bytes data = 1;</code>
     */
    boolean hasData();

    /**
     * <code>required bytes data = 1;</code>
     */
    com.google.protobuf.ByteString getData();
  }
  /**
   * Protobuf type {@code LongColumnMessage}
   */
  public static final class LongColumnMessage extends com.google.protobuf.GeneratedMessage implements
  // @@protoc_insertion_point(message_implements:LongColumnMessage)
      LongColumnMessageOrBuilder {
    // Use LongColumnMessage.newBuilder() to construct.
    private LongColumnMessage(final com.google.protobuf.GeneratedMessage.Builder<?> builder) {
      super(builder);
      unknownFields = builder.getUnknownFields();
    }

    private LongColumnMessage(final boolean noInit) {
      unknownFields = com.google.protobuf.UnknownFieldSet.getDefaultInstance();
    }

    private static final LongColumnMessage defaultInstance;

    public static LongColumnMessage getDefaultInstance() {
      return defaultInstance;
    }

    @Override
    public LongColumnMessage getDefaultInstanceForType() {
      return defaultInstance;
    }

    private final com.google.protobuf.UnknownFieldSet unknownFields;

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

    private LongColumnMessage(final com.google.protobuf.CodedInputStream input,
        final com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      initFields();
      com.google.protobuf.UnknownFieldSet.Builder unknownFields = com.google.protobuf.UnknownFieldSet.newBuilder();
      try {
        boolean done = false;
        while (!done) {
          int tag = input.readTag();
          switch (tag) {
            case 0:
              done = true;
              break;
            default: {
              if (!parseUnknownField(input, unknownFields, extensionRegistry, tag)) {
                done = true;
              }
              break;
            }
            case 10: {
              bitField0_ |= 0x00000001;
              data_ = input.readBytes();
              break;
            }
          }
        }
      } catch (com.google.protobuf.InvalidProtocolBufferException e) {
        throw e.setUnfinishedMessage(this);
      } catch (java.io.IOException e) {
        throw new com.google.protobuf.InvalidProtocolBufferException(e.getMessage()).setUnfinishedMessage(this);
      } finally {
        this.unknownFields = unknownFields.build();
        makeExtensionsImmutable();
      }
    }

    public static final com.google.protobuf.Descriptors.Descriptor getDescriptor() {
      return edu.washington.escience.myria.proto.DataProto.internal_static_LongColumnMessage_descriptor;
    }

    @Override
    protected com.google.protobuf.GeneratedMessage.FieldAccessorTable internalGetFieldAccessorTable() {
      return edu.washington.escience.myria.proto.DataProto.internal_static_LongColumnMessage_fieldAccessorTable
          .ensureFieldAccessorsInitialized(edu.washington.escience.myria.proto.DataProto.LongColumnMessage.class,
              edu.washington.escience.myria.proto.DataProto.LongColumnMessage.Builder.class);
    }

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

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

    private int bitField0_;
    public static final int DATA_FIELD_NUMBER = 1;
    private com.google.protobuf.ByteString data_;

    /**
     * <code>required bytes data = 1;</code>
     */
    @Override
    public boolean hasData() {
      return ((bitField0_ & 0x00000001) == 0x00000001);
    }

    /**
     * <code>required bytes data = 1;</code>
     */
    @Override
    public com.google.protobuf.ByteString getData() {
      return data_;
    }

    private void initFields() {
      data_ = com.google.protobuf.ByteString.EMPTY;
    }

    private byte memoizedIsInitialized = -1;

    @Override
    public final boolean isInitialized() {
      byte isInitialized = memoizedIsInitialized;
      if (isInitialized == 1) {
        return true;
      }
      if (isInitialized == 0) {
        return false;
      }

      if (!hasData()) {
        memoizedIsInitialized = 0;
        return false;
      }
      memoizedIsInitialized = 1;
      return true;
    }

    @Override
    public void writeTo(final com.google.protobuf.CodedOutputStream output) throws java.io.IOException {
      getSerializedSize();
      if (((bitField0_ & 0x00000001) == 0x00000001)) {
        output.writeBytes(1, data_);
      }
      getUnknownFields().writeTo(output);
    }

    private int memoizedSerializedSize = -1;

    @Override
    public int getSerializedSize() {
      int size = memoizedSerializedSize;
      if (size != -1) {
        return size;
      }

      size = 0;
      if (((bitField0_ & 0x00000001) == 0x00000001)) {
        size += com.google.protobuf.CodedOutputStream.computeBytesSize(1, data_);
      }
      size += getUnknownFields().getSerializedSize();
      memoizedSerializedSize = size;
      return size;
    }

    private static final long serialVersionUID = 0L;

    @java.lang.Override
    protected java.lang.Object writeReplace() throws java.io.ObjectStreamException {
      return super.writeReplace();
    }

    public static edu.washington.escience.myria.proto.DataProto.LongColumnMessage parseFrom(
        final com.google.protobuf.ByteString data) throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }

    public static edu.washington.escience.myria.proto.DataProto.LongColumnMessage parseFrom(
        final com.google.protobuf.ByteString data, final com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }

    public static edu.washington.escience.myria.proto.DataProto.LongColumnMessage parseFrom(final byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }

    public static edu.washington.escience.myria.proto.DataProto.LongColumnMessage parseFrom(final byte[] data,
        final com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }

    public static edu.washington.escience.myria.proto.DataProto.LongColumnMessage parseFrom(
        final java.io.InputStream input) throws java.io.IOException {
      return PARSER.parseFrom(input);
    }

    public static edu.washington.escience.myria.proto.DataProto.LongColumnMessage parseFrom(
        final java.io.InputStream input, final com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return PARSER.parseFrom(input, extensionRegistry);
    }

    public static edu.washington.escience.myria.proto.DataProto.LongColumnMessage parseDelimitedFrom(
        final java.io.InputStream input) throws java.io.IOException {
      return PARSER.parseDelimitedFrom(input);
    }

    public static edu.washington.escience.myria.proto.DataProto.LongColumnMessage parseDelimitedFrom(
        final java.io.InputStream input, final com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return PARSER.parseDelimitedFrom(input, extensionRegistry);
    }

    public static edu.washington.escience.myria.proto.DataProto.LongColumnMessage parseFrom(
        final com.google.protobuf.CodedInputStream input) throws java.io.IOException {
      return PARSER.parseFrom(input);
    }

    public static edu.washington.escience.myria.proto.DataProto.LongColumnMessage parseFrom(
        final com.google.protobuf.CodedInputStream input,
        final com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws java.io.IOException {
      return PARSER.parseFrom(input, extensionRegistry);
    }

    public static Builder newBuilder() {
      return Builder.create();
    }

    @Override
    public Builder newBuilderForType() {
      return newBuilder();
    }

    public static Builder newBuilder(final edu.washington.escience.myria.proto.DataProto.LongColumnMessage prototype) {
      return newBuilder().mergeFrom(prototype);
    }

    @Override
    public Builder toBuilder() {
      return newBuilder(this);
    }

    @java.lang.Override
    protected Builder newBuilderForType(final com.google.protobuf.GeneratedMessage.BuilderParent parent) {
      Builder builder = new Builder(parent);
      return builder;
    }

    /**
     * Protobuf type {@code LongColumnMessage}
     */
    public static final class Builder extends com.google.protobuf.GeneratedMessage.Builder<Builder> implements
    // @@protoc_insertion_point(builder_implements:LongColumnMessage)
        edu.washington.escience.myria.proto.DataProto.LongColumnMessageOrBuilder {
      public static final com.google.protobuf.Descriptors.Descriptor getDescriptor() {
        return edu.washington.escience.myria.proto.DataProto.internal_static_LongColumnMessage_descriptor;
      }

      @Override
      protected com.google.protobuf.GeneratedMessage.FieldAccessorTable internalGetFieldAccessorTable() {
        return edu.washington.escience.myria.proto.DataProto.internal_static_LongColumnMessage_fieldAccessorTable
            .ensureFieldAccessorsInitialized(edu.washington.escience.myria.proto.DataProto.LongColumnMessage.class,
                edu.washington.escience.myria.proto.DataProto.LongColumnMessage.Builder.class);
      }

      // Construct using edu.washington.escience.myria.proto.DataProto.LongColumnMessage.newBuilder()
      private Builder() {
        maybeForceBuilderInitialization();
      }

      private Builder(final com.google.protobuf.GeneratedMessage.BuilderParent parent) {
        super(parent);
        maybeForceBuilderInitialization();
      }

      private void maybeForceBuilderInitialization() {
        if (com.google.protobuf.GeneratedMessage.alwaysUseFieldBuilders) {
        }
      }

      private static Builder create() {
        return new Builder();
      }

      @Override
      public Builder clear() {
        super.clear();
        data_ = com.google.protobuf.ByteString.EMPTY;
        bitField0_ = (bitField0_ & ~0x00000001);
        return this;
      }

      @Override
      public Builder clone() {
        return create().mergeFrom(buildPartial());
      }

      @Override
      public com.google.protobuf.Descriptors.Descriptor getDescriptorForType() {
        return edu.washington.escience.myria.proto.DataProto.internal_static_LongColumnMessage_descriptor;
      }

      @Override
      public edu.washington.escience.myria.proto.DataProto.LongColumnMessage getDefaultInstanceForType() {
        return edu.washington.escience.myria.proto.DataProto.LongColumnMessage.getDefaultInstance();
      }

      @Override
      public edu.washington.escience.myria.proto.DataProto.LongColumnMessage build() {
        edu.washington.escience.myria.proto.DataProto.LongColumnMessage result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return result;
      }

      @Override
      public edu.washington.escience.myria.proto.DataProto.LongColumnMessage buildPartial() {
        edu.washington.escience.myria.proto.DataProto.LongColumnMessage result =
            new edu.washington.escience.myria.proto.DataProto.LongColumnMessage(this);
        int from_bitField0_ = bitField0_;
        int to_bitField0_ = 0;
        if (((from_bitField0_ & 0x00000001) == 0x00000001)) {
          to_bitField0_ |= 0x00000001;
        }
        result.data_ = data_;
        result.bitField0_ = to_bitField0_;
        onBuilt();
        return result;
      }

      @Override
      public Builder mergeFrom(final com.google.protobuf.Message other) {
        if (other instanceof edu.washington.escience.myria.proto.DataProto.LongColumnMessage) {
          return mergeFrom((edu.washington.escience.myria.proto.DataProto.LongColumnMessage) other);
        } else {
          super.mergeFrom(other);
          return this;
        }
      }

      public Builder mergeFrom(final edu.washington.escience.myria.proto.DataProto.LongColumnMessage other) {
        if (other == edu.washington.escience.myria.proto.DataProto.LongColumnMessage.getDefaultInstance()) {
          return this;
        }
        if (other.hasData()) {
          setData(other.getData());
        }
        mergeUnknownFields(other.getUnknownFields());
        return this;
      }

      @Override
      public final boolean isInitialized() {
        if (!hasData()) {

          return false;
        }
        return true;
      }

      @Override
      public Builder mergeFrom(final com.google.protobuf.CodedInputStream input,
          final com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws java.io.IOException {
        edu.washington.escience.myria.proto.DataProto.LongColumnMessage parsedMessage = null;
        try {
          parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry);
        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
          parsedMessage = (edu.washington.escience.myria.proto.DataProto.LongColumnMessage) e.getUnfinishedMessage();
          throw e;
        } finally {
          if (parsedMessage != null) {
            mergeFrom(parsedMessage);
          }
        }
        return this;
      }

      private int bitField0_;

      private com.google.protobuf.ByteString data_ = com.google.protobuf.ByteString.EMPTY;

      /**
       * <code>required bytes data = 1;</code>
       */
      @Override
      public boolean hasData() {
        return ((bitField0_ & 0x00000001) == 0x00000001);
      }

      /**
       * <code>required bytes data = 1;</code>
       */
      @Override
      public com.google.protobuf.ByteString getData() {
        return data_;
      }

      /**
       * <code>required bytes data = 1;</code>
       */
      public Builder setData(final com.google.protobuf.ByteString value) {
        if (value == null) {
          throw new NullPointerException();
        }
        bitField0_ |= 0x00000001;
        data_ = value;
        onChanged();
        return this;
      }

      /**
       * <code>required bytes data = 1;</code>
       */
      public Builder clearData() {
        bitField0_ = (bitField0_ & ~0x00000001);
        data_ = getDefaultInstance().getData();
        onChanged();
        return this;
      }

      // @@protoc_insertion_point(builder_scope:LongColumnMessage)
    }

    static {
      defaultInstance = new LongColumnMessage(true);
      defaultInstance.initFields();
    }

    // @@protoc_insertion_point(class_scope:LongColumnMessage)
  }

  public interface FloatColumnMessageOrBuilder extends
  // @@protoc_insertion_point(interface_extends:FloatColumnMessage)
      com.google.protobuf.MessageOrBuilder {

    /**
     * <code>required bytes data = 1;</code>
     */
    boolean hasData();

    /**
     * <code>required bytes data = 1;</code>
     */
    com.google.protobuf.ByteString getData();
  }
  /**
   * Protobuf type {@code FloatColumnMessage}
   */
  public static final class FloatColumnMessage extends com.google.protobuf.GeneratedMessage implements
  // @@protoc_insertion_point(message_implements:FloatColumnMessage)
      FloatColumnMessageOrBuilder {
    // Use FloatColumnMessage.newBuilder() to construct.
    private FloatColumnMessage(final com.google.protobuf.GeneratedMessage.Builder<?> builder) {
      super(builder);
      unknownFields = builder.getUnknownFields();
    }

    private FloatColumnMessage(final boolean noInit) {
      unknownFields = com.google.protobuf.UnknownFieldSet.getDefaultInstance();
    }

    private static final FloatColumnMessage defaultInstance;

    public static FloatColumnMessage getDefaultInstance() {
      return defaultInstance;
    }

    @Override
    public FloatColumnMessage getDefaultInstanceForType() {
      return defaultInstance;
    }

    private final com.google.protobuf.UnknownFieldSet unknownFields;

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

    private FloatColumnMessage(final com.google.protobuf.CodedInputStream input,
        final com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      initFields();
      com.google.protobuf.UnknownFieldSet.Builder unknownFields = com.google.protobuf.UnknownFieldSet.newBuilder();
      try {
        boolean done = false;
        while (!done) {
          int tag = input.readTag();
          switch (tag) {
            case 0:
              done = true;
              break;
            default: {
              if (!parseUnknownField(input, unknownFields, extensionRegistry, tag)) {
                done = true;
              }
              break;
            }
            case 10: {
              bitField0_ |= 0x00000001;
              data_ = input.readBytes();
              break;
            }
          }
        }
      } catch (com.google.protobuf.InvalidProtocolBufferException e) {
        throw e.setUnfinishedMessage(this);
      } catch (java.io.IOException e) {
        throw new com.google.protobuf.InvalidProtocolBufferException(e.getMessage()).setUnfinishedMessage(this);
      } finally {
        this.unknownFields = unknownFields.build();
        makeExtensionsImmutable();
      }
    }

    public static final com.google.protobuf.Descriptors.Descriptor getDescriptor() {
      return edu.washington.escience.myria.proto.DataProto.internal_static_FloatColumnMessage_descriptor;
    }

    @Override
    protected com.google.protobuf.GeneratedMessage.FieldAccessorTable internalGetFieldAccessorTable() {
      return edu.washington.escience.myria.proto.DataProto.internal_static_FloatColumnMessage_fieldAccessorTable
          .ensureFieldAccessorsInitialized(edu.washington.escience.myria.proto.DataProto.FloatColumnMessage.class,
              edu.washington.escience.myria.proto.DataProto.FloatColumnMessage.Builder.class);
    }

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

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

    private int bitField0_;
    public static final int DATA_FIELD_NUMBER = 1;
    private com.google.protobuf.ByteString data_;

    /**
     * <code>required bytes data = 1;</code>
     */
    @Override
    public boolean hasData() {
      return ((bitField0_ & 0x00000001) == 0x00000001);
    }

    /**
     * <code>required bytes data = 1;</code>
     */
    @Override
    public com.google.protobuf.ByteString getData() {
      return data_;
    }

    private void initFields() {
      data_ = com.google.protobuf.ByteString.EMPTY;
    }

    private byte memoizedIsInitialized = -1;

    @Override
    public final boolean isInitialized() {
      byte isInitialized = memoizedIsInitialized;
      if (isInitialized == 1) {
        return true;
      }
      if (isInitialized == 0) {
        return false;
      }

      if (!hasData()) {
        memoizedIsInitialized = 0;
        return false;
      }
      memoizedIsInitialized = 1;
      return true;
    }

    @Override
    public void writeTo(final com.google.protobuf.CodedOutputStream output) throws java.io.IOException {
      getSerializedSize();
      if (((bitField0_ & 0x00000001) == 0x00000001)) {
        output.writeBytes(1, data_);
      }
      getUnknownFields().writeTo(output);
    }

    private int memoizedSerializedSize = -1;

    @Override
    public int getSerializedSize() {
      int size = memoizedSerializedSize;
      if (size != -1) {
        return size;
      }

      size = 0;
      if (((bitField0_ & 0x00000001) == 0x00000001)) {
        size += com.google.protobuf.CodedOutputStream.computeBytesSize(1, data_);
      }
      size += getUnknownFields().getSerializedSize();
      memoizedSerializedSize = size;
      return size;
    }

    private static final long serialVersionUID = 0L;

    @java.lang.Override
    protected java.lang.Object writeReplace() throws java.io.ObjectStreamException {
      return super.writeReplace();
    }

    public static edu.washington.escience.myria.proto.DataProto.FloatColumnMessage parseFrom(
        final com.google.protobuf.ByteString data) throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }

    public static edu.washington.escience.myria.proto.DataProto.FloatColumnMessage parseFrom(
        final com.google.protobuf.ByteString data, final com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }

    public static edu.washington.escience.myria.proto.DataProto.FloatColumnMessage parseFrom(final byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }

    public static edu.washington.escience.myria.proto.DataProto.FloatColumnMessage parseFrom(final byte[] data,
        final com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }

    public static edu.washington.escience.myria.proto.DataProto.FloatColumnMessage parseFrom(
        final java.io.InputStream input) throws java.io.IOException {
      return PARSER.parseFrom(input);
    }

    public static edu.washington.escience.myria.proto.DataProto.FloatColumnMessage parseFrom(
        final java.io.InputStream input, final com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return PARSER.parseFrom(input, extensionRegistry);
    }

    public static edu.washington.escience.myria.proto.DataProto.FloatColumnMessage parseDelimitedFrom(
        final java.io.InputStream input) throws java.io.IOException {
      return PARSER.parseDelimitedFrom(input);
    }

    public static edu.washington.escience.myria.proto.DataProto.FloatColumnMessage parseDelimitedFrom(
        final java.io.InputStream input, final com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return PARSER.parseDelimitedFrom(input, extensionRegistry);
    }

    public static edu.washington.escience.myria.proto.DataProto.FloatColumnMessage parseFrom(
        final com.google.protobuf.CodedInputStream input) throws java.io.IOException {
      return PARSER.parseFrom(input);
    }

    public static edu.washington.escience.myria.proto.DataProto.FloatColumnMessage parseFrom(
        final com.google.protobuf.CodedInputStream input,
        final com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws java.io.IOException {
      return PARSER.parseFrom(input, extensionRegistry);
    }

    public static Builder newBuilder() {
      return Builder.create();
    }

    @Override
    public Builder newBuilderForType() {
      return newBuilder();
    }

    public static Builder newBuilder(final edu.washington.escience.myria.proto.DataProto.FloatColumnMessage prototype) {
      return newBuilder().mergeFrom(prototype);
    }

    @Override
    public Builder toBuilder() {
      return newBuilder(this);
    }

    @java.lang.Override
    protected Builder newBuilderForType(final com.google.protobuf.GeneratedMessage.BuilderParent parent) {
      Builder builder = new Builder(parent);
      return builder;
    }

    /**
     * Protobuf type {@code FloatColumnMessage}
     */
    public static final class Builder extends com.google.protobuf.GeneratedMessage.Builder<Builder> implements
    // @@protoc_insertion_point(builder_implements:FloatColumnMessage)
        edu.washington.escience.myria.proto.DataProto.FloatColumnMessageOrBuilder {
      public static final com.google.protobuf.Descriptors.Descriptor getDescriptor() {
        return edu.washington.escience.myria.proto.DataProto.internal_static_FloatColumnMessage_descriptor;
      }

      @Override
      protected com.google.protobuf.GeneratedMessage.FieldAccessorTable internalGetFieldAccessorTable() {
        return edu.washington.escience.myria.proto.DataProto.internal_static_FloatColumnMessage_fieldAccessorTable
            .ensureFieldAccessorsInitialized(edu.washington.escience.myria.proto.DataProto.FloatColumnMessage.class,
                edu.washington.escience.myria.proto.DataProto.FloatColumnMessage.Builder.class);
      }

      // Construct using edu.washington.escience.myria.proto.DataProto.FloatColumnMessage.newBuilder()
      private Builder() {
        maybeForceBuilderInitialization();
      }

      private Builder(final com.google.protobuf.GeneratedMessage.BuilderParent parent) {
        super(parent);
        maybeForceBuilderInitialization();
      }

      private void maybeForceBuilderInitialization() {
        if (com.google.protobuf.GeneratedMessage.alwaysUseFieldBuilders) {
        }
      }

      private static Builder create() {
        return new Builder();
      }

      @Override
      public Builder clear() {
        super.clear();
        data_ = com.google.protobuf.ByteString.EMPTY;
        bitField0_ = (bitField0_ & ~0x00000001);
        return this;
      }

      @Override
      public Builder clone() {
        return create().mergeFrom(buildPartial());
      }

      @Override
      public com.google.protobuf.Descriptors.Descriptor getDescriptorForType() {
        return edu.washington.escience.myria.proto.DataProto.internal_static_FloatColumnMessage_descriptor;
      }

      @Override
      public edu.washington.escience.myria.proto.DataProto.FloatColumnMessage getDefaultInstanceForType() {
        return edu.washington.escience.myria.proto.DataProto.FloatColumnMessage.getDefaultInstance();
      }

      @Override
      public edu.washington.escience.myria.proto.DataProto.FloatColumnMessage build() {
        edu.washington.escience.myria.proto.DataProto.FloatColumnMessage result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return result;
      }

      @Override
      public edu.washington.escience.myria.proto.DataProto.FloatColumnMessage buildPartial() {
        edu.washington.escience.myria.proto.DataProto.FloatColumnMessage result =
            new edu.washington.escience.myria.proto.DataProto.FloatColumnMessage(this);
        int from_bitField0_ = bitField0_;
        int to_bitField0_ = 0;
        if (((from_bitField0_ & 0x00000001) == 0x00000001)) {
          to_bitField0_ |= 0x00000001;
        }
        result.data_ = data_;
        result.bitField0_ = to_bitField0_;
        onBuilt();
        return result;
      }

      @Override
      public Builder mergeFrom(final com.google.protobuf.Message other) {
        if (other instanceof edu.washington.escience.myria.proto.DataProto.FloatColumnMessage) {
          return mergeFrom((edu.washington.escience.myria.proto.DataProto.FloatColumnMessage) other);
        } else {
          super.mergeFrom(other);
          return this;
        }
      }

      public Builder mergeFrom(final edu.washington.escience.myria.proto.DataProto.FloatColumnMessage other) {
        if (other == edu.washington.escience.myria.proto.DataProto.FloatColumnMessage.getDefaultInstance()) {
          return this;
        }
        if (other.hasData()) {
          setData(other.getData());
        }
        mergeUnknownFields(other.getUnknownFields());
        return this;
      }

      @Override
      public final boolean isInitialized() {
        if (!hasData()) {

          return false;
        }
        return true;
      }

      @Override
      public Builder mergeFrom(final com.google.protobuf.CodedInputStream input,
          final com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws java.io.IOException {
        edu.washington.escience.myria.proto.DataProto.FloatColumnMessage parsedMessage = null;
        try {
          parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry);
        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
          parsedMessage = (edu.washington.escience.myria.proto.DataProto.FloatColumnMessage) e.getUnfinishedMessage();
          throw e;
        } finally {
          if (parsedMessage != null) {
            mergeFrom(parsedMessage);
          }
        }
        return this;
      }

      private int bitField0_;

      private com.google.protobuf.ByteString data_ = com.google.protobuf.ByteString.EMPTY;

      /**
       * <code>required bytes data = 1;</code>
       */
      @Override
      public boolean hasData() {
        return ((bitField0_ & 0x00000001) == 0x00000001);
      }

      /**
       * <code>required bytes data = 1;</code>
       */
      @Override
      public com.google.protobuf.ByteString getData() {
        return data_;
      }

      /**
       * <code>required bytes data = 1;</code>
       */
      public Builder setData(final com.google.protobuf.ByteString value) {
        if (value == null) {
          throw new NullPointerException();
        }
        bitField0_ |= 0x00000001;
        data_ = value;
        onChanged();
        return this;
      }

      /**
       * <code>required bytes data = 1;</code>
       */
      public Builder clearData() {
        bitField0_ = (bitField0_ & ~0x00000001);
        data_ = getDefaultInstance().getData();
        onChanged();
        return this;
      }

      // @@protoc_insertion_point(builder_scope:FloatColumnMessage)
    }

    static {
      defaultInstance = new FloatColumnMessage(true);
      defaultInstance.initFields();
    }

    // @@protoc_insertion_point(class_scope:FloatColumnMessage)
  }

  public interface DoubleColumnMessageOrBuilder extends
  // @@protoc_insertion_point(interface_extends:DoubleColumnMessage)
      com.google.protobuf.MessageOrBuilder {

    /**
     * <code>required bytes data = 1;</code>
     */
    boolean hasData();

    /**
     * <code>required bytes data = 1;</code>
     */
    com.google.protobuf.ByteString getData();
  }
  /**
   * Protobuf type {@code DoubleColumnMessage}
   */
  public static final class DoubleColumnMessage extends com.google.protobuf.GeneratedMessage implements
  // @@protoc_insertion_point(message_implements:DoubleColumnMessage)
      DoubleColumnMessageOrBuilder {
    // Use DoubleColumnMessage.newBuilder() to construct.
    private DoubleColumnMessage(final com.google.protobuf.GeneratedMessage.Builder<?> builder) {
      super(builder);
      unknownFields = builder.getUnknownFields();
    }

    private DoubleColumnMessage(final boolean noInit) {
      unknownFields = com.google.protobuf.UnknownFieldSet.getDefaultInstance();
    }

    private static final DoubleColumnMessage defaultInstance;

    public static DoubleColumnMessage getDefaultInstance() {
      return defaultInstance;
    }

    @Override
    public DoubleColumnMessage getDefaultInstanceForType() {
      return defaultInstance;
    }

    private final com.google.protobuf.UnknownFieldSet unknownFields;

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

    private DoubleColumnMessage(final com.google.protobuf.CodedInputStream input,
        final com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      initFields();
      com.google.protobuf.UnknownFieldSet.Builder unknownFields = com.google.protobuf.UnknownFieldSet.newBuilder();
      try {
        boolean done = false;
        while (!done) {
          int tag = input.readTag();
          switch (tag) {
            case 0:
              done = true;
              break;
            default: {
              if (!parseUnknownField(input, unknownFields, extensionRegistry, tag)) {
                done = true;
              }
              break;
            }
            case 10: {
              bitField0_ |= 0x00000001;
              data_ = input.readBytes();
              break;
            }
          }
        }
      } catch (com.google.protobuf.InvalidProtocolBufferException e) {
        throw e.setUnfinishedMessage(this);
      } catch (java.io.IOException e) {
        throw new com.google.protobuf.InvalidProtocolBufferException(e.getMessage()).setUnfinishedMessage(this);
      } finally {
        this.unknownFields = unknownFields.build();
        makeExtensionsImmutable();
      }
    }

    public static final com.google.protobuf.Descriptors.Descriptor getDescriptor() {
      return edu.washington.escience.myria.proto.DataProto.internal_static_DoubleColumnMessage_descriptor;
    }

    @Override
    protected com.google.protobuf.GeneratedMessage.FieldAccessorTable internalGetFieldAccessorTable() {
      return edu.washington.escience.myria.proto.DataProto.internal_static_DoubleColumnMessage_fieldAccessorTable
          .ensureFieldAccessorsInitialized(edu.washington.escience.myria.proto.DataProto.DoubleColumnMessage.class,
              edu.washington.escience.myria.proto.DataProto.DoubleColumnMessage.Builder.class);
    }

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

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

    private int bitField0_;
    public static final int DATA_FIELD_NUMBER = 1;
    private com.google.protobuf.ByteString data_;

    /**
     * <code>required bytes data = 1;</code>
     */
    @Override
    public boolean hasData() {
      return ((bitField0_ & 0x00000001) == 0x00000001);
    }

    /**
     * <code>required bytes data = 1;</code>
     */
    @Override
    public com.google.protobuf.ByteString getData() {
      return data_;
    }

    private void initFields() {
      data_ = com.google.protobuf.ByteString.EMPTY;
    }

    private byte memoizedIsInitialized = -1;

    @Override
    public final boolean isInitialized() {
      byte isInitialized = memoizedIsInitialized;
      if (isInitialized == 1) {
        return true;
      }
      if (isInitialized == 0) {
        return false;
      }

      if (!hasData()) {
        memoizedIsInitialized = 0;
        return false;
      }
      memoizedIsInitialized = 1;
      return true;
    }

    @Override
    public void writeTo(final com.google.protobuf.CodedOutputStream output) throws java.io.IOException {
      getSerializedSize();
      if (((bitField0_ & 0x00000001) == 0x00000001)) {
        output.writeBytes(1, data_);
      }
      getUnknownFields().writeTo(output);
    }

    private int memoizedSerializedSize = -1;

    @Override
    public int getSerializedSize() {
      int size = memoizedSerializedSize;
      if (size != -1) {
        return size;
      }

      size = 0;
      if (((bitField0_ & 0x00000001) == 0x00000001)) {
        size += com.google.protobuf.CodedOutputStream.computeBytesSize(1, data_);
      }
      size += getUnknownFields().getSerializedSize();
      memoizedSerializedSize = size;
      return size;
    }

    private static final long serialVersionUID = 0L;

    @java.lang.Override
    protected java.lang.Object writeReplace() throws java.io.ObjectStreamException {
      return super.writeReplace();
    }

    public static edu.washington.escience.myria.proto.DataProto.DoubleColumnMessage parseFrom(
        final com.google.protobuf.ByteString data) throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }

    public static edu.washington.escience.myria.proto.DataProto.DoubleColumnMessage parseFrom(
        final com.google.protobuf.ByteString data, final com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }

    public static edu.washington.escience.myria.proto.DataProto.DoubleColumnMessage parseFrom(final byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }

    public static edu.washington.escience.myria.proto.DataProto.DoubleColumnMessage parseFrom(final byte[] data,
        final com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }

    public static edu.washington.escience.myria.proto.DataProto.DoubleColumnMessage parseFrom(
        final java.io.InputStream input) throws java.io.IOException {
      return PARSER.parseFrom(input);
    }

    public static edu.washington.escience.myria.proto.DataProto.DoubleColumnMessage parseFrom(
        final java.io.InputStream input, final com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return PARSER.parseFrom(input, extensionRegistry);
    }

    public static edu.washington.escience.myria.proto.DataProto.DoubleColumnMessage parseDelimitedFrom(
        final java.io.InputStream input) throws java.io.IOException {
      return PARSER.parseDelimitedFrom(input);
    }

    public static edu.washington.escience.myria.proto.DataProto.DoubleColumnMessage parseDelimitedFrom(
        final java.io.InputStream input, final com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return PARSER.parseDelimitedFrom(input, extensionRegistry);
    }

    public static edu.washington.escience.myria.proto.DataProto.DoubleColumnMessage parseFrom(
        final com.google.protobuf.CodedInputStream input) throws java.io.IOException {
      return PARSER.parseFrom(input);
    }

    public static edu.washington.escience.myria.proto.DataProto.DoubleColumnMessage parseFrom(
        final com.google.protobuf.CodedInputStream input,
        final com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws java.io.IOException {
      return PARSER.parseFrom(input, extensionRegistry);
    }

    public static Builder newBuilder() {
      return Builder.create();
    }

    @Override
    public Builder newBuilderForType() {
      return newBuilder();
    }

    public static Builder newBuilder(final edu.washington.escience.myria.proto.DataProto.DoubleColumnMessage prototype) {
      return newBuilder().mergeFrom(prototype);
    }

    @Override
    public Builder toBuilder() {
      return newBuilder(this);
    }

    @java.lang.Override
    protected Builder newBuilderForType(final com.google.protobuf.GeneratedMessage.BuilderParent parent) {
      Builder builder = new Builder(parent);
      return builder;
    }

    /**
     * Protobuf type {@code DoubleColumnMessage}
     */
    public static final class Builder extends com.google.protobuf.GeneratedMessage.Builder<Builder> implements
    // @@protoc_insertion_point(builder_implements:DoubleColumnMessage)
        edu.washington.escience.myria.proto.DataProto.DoubleColumnMessageOrBuilder {
      public static final com.google.protobuf.Descriptors.Descriptor getDescriptor() {
        return edu.washington.escience.myria.proto.DataProto.internal_static_DoubleColumnMessage_descriptor;
      }

      @Override
      protected com.google.protobuf.GeneratedMessage.FieldAccessorTable internalGetFieldAccessorTable() {
        return edu.washington.escience.myria.proto.DataProto.internal_static_DoubleColumnMessage_fieldAccessorTable
            .ensureFieldAccessorsInitialized(edu.washington.escience.myria.proto.DataProto.DoubleColumnMessage.class,
                edu.washington.escience.myria.proto.DataProto.DoubleColumnMessage.Builder.class);
      }

      // Construct using edu.washington.escience.myria.proto.DataProto.DoubleColumnMessage.newBuilder()
      private Builder() {
        maybeForceBuilderInitialization();
      }

      private Builder(final com.google.protobuf.GeneratedMessage.BuilderParent parent) {
        super(parent);
        maybeForceBuilderInitialization();
      }

      private void maybeForceBuilderInitialization() {
        if (com.google.protobuf.GeneratedMessage.alwaysUseFieldBuilders) {
        }
      }

      private static Builder create() {
        return new Builder();
      }

      @Override
      public Builder clear() {
        super.clear();
        data_ = com.google.protobuf.ByteString.EMPTY;
        bitField0_ = (bitField0_ & ~0x00000001);
        return this;
      }

      @Override
      public Builder clone() {
        return create().mergeFrom(buildPartial());
      }

      @Override
      public com.google.protobuf.Descriptors.Descriptor getDescriptorForType() {
        return edu.washington.escience.myria.proto.DataProto.internal_static_DoubleColumnMessage_descriptor;
      }

      @Override
      public edu.washington.escience.myria.proto.DataProto.DoubleColumnMessage getDefaultInstanceForType() {
        return edu.washington.escience.myria.proto.DataProto.DoubleColumnMessage.getDefaultInstance();
      }

      @Override
      public edu.washington.escience.myria.proto.DataProto.DoubleColumnMessage build() {
        edu.washington.escience.myria.proto.DataProto.DoubleColumnMessage result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return result;
      }

      @Override
      public edu.washington.escience.myria.proto.DataProto.DoubleColumnMessage buildPartial() {
        edu.washington.escience.myria.proto.DataProto.DoubleColumnMessage result =
            new edu.washington.escience.myria.proto.DataProto.DoubleColumnMessage(this);
        int from_bitField0_ = bitField0_;
        int to_bitField0_ = 0;
        if (((from_bitField0_ & 0x00000001) == 0x00000001)) {
          to_bitField0_ |= 0x00000001;
        }
        result.data_ = data_;
        result.bitField0_ = to_bitField0_;
        onBuilt();
        return result;
      }

      @Override
      public Builder mergeFrom(final com.google.protobuf.Message other) {
        if (other instanceof edu.washington.escience.myria.proto.DataProto.DoubleColumnMessage) {
          return mergeFrom((edu.washington.escience.myria.proto.DataProto.DoubleColumnMessage) other);
        } else {
          super.mergeFrom(other);
          return this;
        }
      }

      public Builder mergeFrom(final edu.washington.escience.myria.proto.DataProto.DoubleColumnMessage other) {
        if (other == edu.washington.escience.myria.proto.DataProto.DoubleColumnMessage.getDefaultInstance()) {
          return this;
        }
        if (other.hasData()) {
          setData(other.getData());
        }
        mergeUnknownFields(other.getUnknownFields());
        return this;
      }

      @Override
      public final boolean isInitialized() {
        if (!hasData()) {

          return false;
        }
        return true;
      }

      @Override
      public Builder mergeFrom(final com.google.protobuf.CodedInputStream input,
          final com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws java.io.IOException {
        edu.washington.escience.myria.proto.DataProto.DoubleColumnMessage parsedMessage = null;
        try {
          parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry);
        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
          parsedMessage = (edu.washington.escience.myria.proto.DataProto.DoubleColumnMessage) e.getUnfinishedMessage();
          throw e;
        } finally {
          if (parsedMessage != null) {
            mergeFrom(parsedMessage);
          }
        }
        return this;
      }

      private int bitField0_;

      private com.google.protobuf.ByteString data_ = com.google.protobuf.ByteString.EMPTY;

      /**
       * <code>required bytes data = 1;</code>
       */
      @Override
      public boolean hasData() {
        return ((bitField0_ & 0x00000001) == 0x00000001);
      }

      /**
       * <code>required bytes data = 1;</code>
       */
      @Override
      public com.google.protobuf.ByteString getData() {
        return data_;
      }

      /**
       * <code>required bytes data = 1;</code>
       */
      public Builder setData(final com.google.protobuf.ByteString value) {
        if (value == null) {
          throw new NullPointerException();
        }
        bitField0_ |= 0x00000001;
        data_ = value;
        onChanged();
        return this;
      }

      /**
       * <code>required bytes data = 1;</code>
       */
      public Builder clearData() {
        bitField0_ = (bitField0_ & ~0x00000001);
        data_ = getDefaultInstance().getData();
        onChanged();
        return this;
      }

      // @@protoc_insertion_point(builder_scope:DoubleColumnMessage)
    }

    static {
      defaultInstance = new DoubleColumnMessage(true);
      defaultInstance.initFields();
    }

    // @@protoc_insertion_point(class_scope:DoubleColumnMessage)
  }

  public interface StringColumnMessageOrBuilder extends
  // @@protoc_insertion_point(interface_extends:StringColumnMessage)
      com.google.protobuf.MessageOrBuilder {

    /**
     * <code>required bytes data = 1;</code>
     */
    boolean hasData();

    /**
     * <code>required bytes data = 1;</code>
     */
    com.google.protobuf.ByteString getData();

    /**
     * <code>repeated int32 start_indices = 2;</code>
     */
    java.util.List<java.lang.Integer> getStartIndicesList();

    /**
     * <code>repeated int32 start_indices = 2;</code>
     */
    int getStartIndicesCount();

    /**
     * <code>repeated int32 start_indices = 2;</code>
     */
    int getStartIndices(int index);

    /**
     * <code>repeated int32 end_indices = 3;</code>
     */
    java.util.List<java.lang.Integer> getEndIndicesList();

    /**
     * <code>repeated int32 end_indices = 3;</code>
     */
    int getEndIndicesCount();

    /**
     * <code>repeated int32 end_indices = 3;</code>
     */
    int getEndIndices(int index);
  }
  /**
   * Protobuf type {@code StringColumnMessage}
   */
  public static final class StringColumnMessage extends com.google.protobuf.GeneratedMessage implements
  // @@protoc_insertion_point(message_implements:StringColumnMessage)
      StringColumnMessageOrBuilder {
    // Use StringColumnMessage.newBuilder() to construct.
    private StringColumnMessage(final com.google.protobuf.GeneratedMessage.Builder<?> builder) {
      super(builder);
      unknownFields = builder.getUnknownFields();
    }

    private StringColumnMessage(final boolean noInit) {
      unknownFields = com.google.protobuf.UnknownFieldSet.getDefaultInstance();
    }

    private static final StringColumnMessage defaultInstance;

    public static StringColumnMessage getDefaultInstance() {
      return defaultInstance;
    }

    @Override
    public StringColumnMessage getDefaultInstanceForType() {
      return defaultInstance;
    }

    private final com.google.protobuf.UnknownFieldSet unknownFields;

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

    private StringColumnMessage(final com.google.protobuf.CodedInputStream input,
        final com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      initFields();
      int mutable_bitField0_ = 0;
      com.google.protobuf.UnknownFieldSet.Builder unknownFields = com.google.protobuf.UnknownFieldSet.newBuilder();
      try {
        boolean done = false;
        while (!done) {
          int tag = input.readTag();
          switch (tag) {
            case 0:
              done = true;
              break;
            default: {
              if (!parseUnknownField(input, unknownFields, extensionRegistry, tag)) {
                done = true;
              }
              break;
            }
            case 10: {
              bitField0_ |= 0x00000001;
              data_ = input.readBytes();
              break;
            }
            case 16: {
              if (!((mutable_bitField0_ & 0x00000002) == 0x00000002)) {
                startIndices_ = new java.util.ArrayList<java.lang.Integer>();
                mutable_bitField0_ |= 0x00000002;
              }
              startIndices_.add(input.readInt32());
              break;
            }
            case 18: {
              int length = input.readRawVarint32();
              int limit = input.pushLimit(length);
              if (!((mutable_bitField0_ & 0x00000002) == 0x00000002) && input.getBytesUntilLimit() > 0) {
                startIndices_ = new java.util.ArrayList<java.lang.Integer>();
                mutable_bitField0_ |= 0x00000002;
              }
              while (input.getBytesUntilLimit() > 0) {
                startIndices_.add(input.readInt32());
              }
              input.popLimit(limit);
              break;
            }
            case 24: {
              if (!((mutable_bitField0_ & 0x00000004) == 0x00000004)) {
                endIndices_ = new java.util.ArrayList<java.lang.Integer>();
                mutable_bitField0_ |= 0x00000004;
              }
              endIndices_.add(input.readInt32());
              break;
            }
            case 26: {
              int length = input.readRawVarint32();
              int limit = input.pushLimit(length);
              if (!((mutable_bitField0_ & 0x00000004) == 0x00000004) && input.getBytesUntilLimit() > 0) {
                endIndices_ = new java.util.ArrayList<java.lang.Integer>();
                mutable_bitField0_ |= 0x00000004;
              }
              while (input.getBytesUntilLimit() > 0) {
                endIndices_.add(input.readInt32());
              }
              input.popLimit(limit);
              break;
            }
          }
        }
      } catch (com.google.protobuf.InvalidProtocolBufferException e) {
        throw e.setUnfinishedMessage(this);
      } catch (java.io.IOException e) {
        throw new com.google.protobuf.InvalidProtocolBufferException(e.getMessage()).setUnfinishedMessage(this);
      } finally {
        if (((mutable_bitField0_ & 0x00000002) == 0x00000002)) {
          startIndices_ = java.util.Collections.unmodifiableList(startIndices_);
        }
        if (((mutable_bitField0_ & 0x00000004) == 0x00000004)) {
          endIndices_ = java.util.Collections.unmodifiableList(endIndices_);
        }
        this.unknownFields = unknownFields.build();
        makeExtensionsImmutable();
      }
    }

    public static final com.google.protobuf.Descriptors.Descriptor getDescriptor() {
      return edu.washington.escience.myria.proto.DataProto.internal_static_StringColumnMessage_descriptor;
    }

    @Override
    protected com.google.protobuf.GeneratedMessage.FieldAccessorTable internalGetFieldAccessorTable() {
      return edu.washington.escience.myria.proto.DataProto.internal_static_StringColumnMessage_fieldAccessorTable
          .ensureFieldAccessorsInitialized(edu.washington.escience.myria.proto.DataProto.StringColumnMessage.class,
              edu.washington.escience.myria.proto.DataProto.StringColumnMessage.Builder.class);
    }

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

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

    private int bitField0_;
    public static final int DATA_FIELD_NUMBER = 1;
    private com.google.protobuf.ByteString data_;

    /**
     * <code>required bytes data = 1;</code>
     */
    @Override
    public boolean hasData() {
      return ((bitField0_ & 0x00000001) == 0x00000001);
    }

    /**
     * <code>required bytes data = 1;</code>
     */
    @Override
    public com.google.protobuf.ByteString getData() {
      return data_;
    }

    public static final int START_INDICES_FIELD_NUMBER = 2;
    private java.util.List<java.lang.Integer> startIndices_;

    /**
     * <code>repeated int32 start_indices = 2;</code>
     */
    @Override
    public java.util.List<java.lang.Integer> getStartIndicesList() {
      return startIndices_;
    }

    /**
     * <code>repeated int32 start_indices = 2;</code>
     */
    @Override
    public int getStartIndicesCount() {
      return startIndices_.size();
    }

    /**
     * <code>repeated int32 start_indices = 2;</code>
     */
    @Override
    public int getStartIndices(final int index) {
      return startIndices_.get(index);
    }

    public static final int END_INDICES_FIELD_NUMBER = 3;
    private java.util.List<java.lang.Integer> endIndices_;

    /**
     * <code>repeated int32 end_indices = 3;</code>
     */
    @Override
    public java.util.List<java.lang.Integer> getEndIndicesList() {
      return endIndices_;
    }

    /**
     * <code>repeated int32 end_indices = 3;</code>
     */
    @Override
    public int getEndIndicesCount() {
      return endIndices_.size();
    }

    /**
     * <code>repeated int32 end_indices = 3;</code>
     */
    @Override
    public int getEndIndices(final int index) {
      return endIndices_.get(index);
    }

    private void initFields() {
      data_ = com.google.protobuf.ByteString.EMPTY;
      startIndices_ = java.util.Collections.emptyList();
      endIndices_ = java.util.Collections.emptyList();
    }

    private byte memoizedIsInitialized = -1;

    @Override
    public final boolean isInitialized() {
      byte isInitialized = memoizedIsInitialized;
      if (isInitialized == 1) {
        return true;
      }
      if (isInitialized == 0) {
        return false;
      }

      if (!hasData()) {
        memoizedIsInitialized = 0;
        return false;
      }
      memoizedIsInitialized = 1;
      return true;
    }

    @Override
    public void writeTo(final com.google.protobuf.CodedOutputStream output) throws java.io.IOException {
      getSerializedSize();
      if (((bitField0_ & 0x00000001) == 0x00000001)) {
        output.writeBytes(1, data_);
      }
      for (int i = 0; i < startIndices_.size(); i++) {
        output.writeInt32(2, startIndices_.get(i));
      }
      for (int i = 0; i < endIndices_.size(); i++) {
        output.writeInt32(3, endIndices_.get(i));
      }
      getUnknownFields().writeTo(output);
    }

    private int memoizedSerializedSize = -1;

    @Override
    public int getSerializedSize() {
      int size = memoizedSerializedSize;
      if (size != -1) {
        return size;
      }

      size = 0;
      if (((bitField0_ & 0x00000001) == 0x00000001)) {
        size += com.google.protobuf.CodedOutputStream.computeBytesSize(1, data_);
      }
      {
        int dataSize = 0;
        for (int i = 0; i < startIndices_.size(); i++) {
          dataSize += com.google.protobuf.CodedOutputStream.computeInt32SizeNoTag(startIndices_.get(i));
        }
        size += dataSize;
        size += 1 * getStartIndicesList().size();
      }
      {
        int dataSize = 0;
        for (int i = 0; i < endIndices_.size(); i++) {
          dataSize += com.google.protobuf.CodedOutputStream.computeInt32SizeNoTag(endIndices_.get(i));
        }
        size += dataSize;
        size += 1 * getEndIndicesList().size();
      }
      size += getUnknownFields().getSerializedSize();
      memoizedSerializedSize = size;
      return size;
    }

    private static final long serialVersionUID = 0L;

    @java.lang.Override
    protected java.lang.Object writeReplace() throws java.io.ObjectStreamException {
      return super.writeReplace();
    }

    public static edu.washington.escience.myria.proto.DataProto.StringColumnMessage parseFrom(
        final com.google.protobuf.ByteString data) throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }

    public static edu.washington.escience.myria.proto.DataProto.StringColumnMessage parseFrom(
        final com.google.protobuf.ByteString data, final com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }

    public static edu.washington.escience.myria.proto.DataProto.StringColumnMessage parseFrom(final byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }

    public static edu.washington.escience.myria.proto.DataProto.StringColumnMessage parseFrom(final byte[] data,
        final com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }

    public static edu.washington.escience.myria.proto.DataProto.StringColumnMessage parseFrom(
        final java.io.InputStream input) throws java.io.IOException {
      return PARSER.parseFrom(input);
    }

    public static edu.washington.escience.myria.proto.DataProto.StringColumnMessage parseFrom(
        final java.io.InputStream input, final com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return PARSER.parseFrom(input, extensionRegistry);
    }

    public static edu.washington.escience.myria.proto.DataProto.StringColumnMessage parseDelimitedFrom(
        final java.io.InputStream input) throws java.io.IOException {
      return PARSER.parseDelimitedFrom(input);
    }

    public static edu.washington.escience.myria.proto.DataProto.StringColumnMessage parseDelimitedFrom(
        final java.io.InputStream input, final com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return PARSER.parseDelimitedFrom(input, extensionRegistry);
    }

    public static edu.washington.escience.myria.proto.DataProto.StringColumnMessage parseFrom(
        final com.google.protobuf.CodedInputStream input) throws java.io.IOException {
      return PARSER.parseFrom(input);
    }

    public static edu.washington.escience.myria.proto.DataProto.StringColumnMessage parseFrom(
        final com.google.protobuf.CodedInputStream input,
        final com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws java.io.IOException {
      return PARSER.parseFrom(input, extensionRegistry);
    }

    public static Builder newBuilder() {
      return Builder.create();
    }

    @Override
    public Builder newBuilderForType() {
      return newBuilder();
    }

    public static Builder newBuilder(final edu.washington.escience.myria.proto.DataProto.StringColumnMessage prototype) {
      return newBuilder().mergeFrom(prototype);
    }

    @Override
    public Builder toBuilder() {
      return newBuilder(this);
    }

    @java.lang.Override
    protected Builder newBuilderForType(final com.google.protobuf.GeneratedMessage.BuilderParent parent) {
      Builder builder = new Builder(parent);
      return builder;
    }

    /**
     * Protobuf type {@code StringColumnMessage}
     */
    public static final class Builder extends com.google.protobuf.GeneratedMessage.Builder<Builder> implements
    // @@protoc_insertion_point(builder_implements:StringColumnMessage)
        edu.washington.escience.myria.proto.DataProto.StringColumnMessageOrBuilder {
      public static final com.google.protobuf.Descriptors.Descriptor getDescriptor() {
        return edu.washington.escience.myria.proto.DataProto.internal_static_StringColumnMessage_descriptor;
      }

      @Override
      protected com.google.protobuf.GeneratedMessage.FieldAccessorTable internalGetFieldAccessorTable() {
        return edu.washington.escience.myria.proto.DataProto.internal_static_StringColumnMessage_fieldAccessorTable
            .ensureFieldAccessorsInitialized(edu.washington.escience.myria.proto.DataProto.StringColumnMessage.class,
                edu.washington.escience.myria.proto.DataProto.StringColumnMessage.Builder.class);
      }

      // Construct using edu.washington.escience.myria.proto.DataProto.StringColumnMessage.newBuilder()
      private Builder() {
        maybeForceBuilderInitialization();
      }

      private Builder(final com.google.protobuf.GeneratedMessage.BuilderParent parent) {
        super(parent);
        maybeForceBuilderInitialization();
      }

      private void maybeForceBuilderInitialization() {
        if (com.google.protobuf.GeneratedMessage.alwaysUseFieldBuilders) {
        }
      }

      private static Builder create() {
        return new Builder();
      }

      @Override
      public Builder clear() {
        super.clear();
        data_ = com.google.protobuf.ByteString.EMPTY;
        bitField0_ = (bitField0_ & ~0x00000001);
        startIndices_ = java.util.Collections.emptyList();
        bitField0_ = (bitField0_ & ~0x00000002);
        endIndices_ = java.util.Collections.emptyList();
        bitField0_ = (bitField0_ & ~0x00000004);
        return this;
      }

      @Override
      public Builder clone() {
        return create().mergeFrom(buildPartial());
      }

      @Override
      public com.google.protobuf.Descriptors.Descriptor getDescriptorForType() {
        return edu.washington.escience.myria.proto.DataProto.internal_static_StringColumnMessage_descriptor;
      }

      @Override
      public edu.washington.escience.myria.proto.DataProto.StringColumnMessage getDefaultInstanceForType() {
        return edu.washington.escience.myria.proto.DataProto.StringColumnMessage.getDefaultInstance();
      }

      @Override
      public edu.washington.escience.myria.proto.DataProto.StringColumnMessage build() {
        edu.washington.escience.myria.proto.DataProto.StringColumnMessage result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return result;
      }

      @Override
      public edu.washington.escience.myria.proto.DataProto.StringColumnMessage buildPartial() {
        edu.washington.escience.myria.proto.DataProto.StringColumnMessage result =
            new edu.washington.escience.myria.proto.DataProto.StringColumnMessage(this);
        int from_bitField0_ = bitField0_;
        int to_bitField0_ = 0;
        if (((from_bitField0_ & 0x00000001) == 0x00000001)) {
          to_bitField0_ |= 0x00000001;
        }
        result.data_ = data_;
        if (((bitField0_ & 0x00000002) == 0x00000002)) {
          startIndices_ = java.util.Collections.unmodifiableList(startIndices_);
          bitField0_ = (bitField0_ & ~0x00000002);
        }
        result.startIndices_ = startIndices_;
        if (((bitField0_ & 0x00000004) == 0x00000004)) {
          endIndices_ = java.util.Collections.unmodifiableList(endIndices_);
          bitField0_ = (bitField0_ & ~0x00000004);
        }
        result.endIndices_ = endIndices_;
        result.bitField0_ = to_bitField0_;
        onBuilt();
        return result;
      }

      @Override
      public Builder mergeFrom(final com.google.protobuf.Message other) {
        if (other instanceof edu.washington.escience.myria.proto.DataProto.StringColumnMessage) {
          return mergeFrom((edu.washington.escience.myria.proto.DataProto.StringColumnMessage) other);
        } else {
          super.mergeFrom(other);
          return this;
        }
      }

      public Builder mergeFrom(final edu.washington.escience.myria.proto.DataProto.StringColumnMessage other) {
        if (other == edu.washington.escience.myria.proto.DataProto.StringColumnMessage.getDefaultInstance()) {
          return this;
        }
        if (other.hasData()) {
          setData(other.getData());
        }
        if (!other.startIndices_.isEmpty()) {
          if (startIndices_.isEmpty()) {
            startIndices_ = other.startIndices_;
            bitField0_ = (bitField0_ & ~0x00000002);
          } else {
            ensureStartIndicesIsMutable();
            startIndices_.addAll(other.startIndices_);
          }
          onChanged();
        }
        if (!other.endIndices_.isEmpty()) {
          if (endIndices_.isEmpty()) {
            endIndices_ = other.endIndices_;
            bitField0_ = (bitField0_ & ~0x00000004);
          } else {
            ensureEndIndicesIsMutable();
            endIndices_.addAll(other.endIndices_);
          }
          onChanged();
        }
        mergeUnknownFields(other.getUnknownFields());
        return this;
      }

      @Override
      public final boolean isInitialized() {
        if (!hasData()) {

          return false;
        }
        return true;
      }

      @Override
      public Builder mergeFrom(final com.google.protobuf.CodedInputStream input,
          final com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws java.io.IOException {
        edu.washington.escience.myria.proto.DataProto.StringColumnMessage parsedMessage = null;
        try {
          parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry);
        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
          parsedMessage = (edu.washington.escience.myria.proto.DataProto.StringColumnMessage) e.getUnfinishedMessage();
          throw e;
        } finally {
          if (parsedMessage != null) {
            mergeFrom(parsedMessage);
          }
        }
        return this;
      }

      private int bitField0_;

      private com.google.protobuf.ByteString data_ = com.google.protobuf.ByteString.EMPTY;

      /**
       * <code>required bytes data = 1;</code>
       */
      @Override
      public boolean hasData() {
        return ((bitField0_ & 0x00000001) == 0x00000001);
      }

      /**
       * <code>required bytes data = 1;</code>
       */
      @Override
      public com.google.protobuf.ByteString getData() {
        return data_;
      }

      /**
       * <code>required bytes data = 1;</code>
       */
      public Builder setData(final com.google.protobuf.ByteString value) {
        if (value == null) {
          throw new NullPointerException();
        }
        bitField0_ |= 0x00000001;
        data_ = value;
        onChanged();
        return this;
      }

      /**
       * <code>required bytes data = 1;</code>
       */
      public Builder clearData() {
        bitField0_ = (bitField0_ & ~0x00000001);
        data_ = getDefaultInstance().getData();
        onChanged();
        return this;
      }

      private java.util.List<java.lang.Integer> startIndices_ = java.util.Collections.emptyList();

      private void ensureStartIndicesIsMutable() {
        if (!((bitField0_ & 0x00000002) == 0x00000002)) {
          startIndices_ = new java.util.ArrayList<java.lang.Integer>(startIndices_);
          bitField0_ |= 0x00000002;
        }
      }

      /**
       * <code>repeated int32 start_indices = 2;</code>
       */
      @Override
      public java.util.List<java.lang.Integer> getStartIndicesList() {
        return java.util.Collections.unmodifiableList(startIndices_);
      }

      /**
       * <code>repeated int32 start_indices = 2;</code>
       */
      @Override
      public int getStartIndicesCount() {
        return startIndices_.size();
      }

      /**
       * <code>repeated int32 start_indices = 2;</code>
       */
      @Override
      public int getStartIndices(final int index) {
        return startIndices_.get(index);
      }

      /**
       * <code>repeated int32 start_indices = 2;</code>
       */
      public Builder setStartIndices(final int index, final int value) {
        ensureStartIndicesIsMutable();
        startIndices_.set(index, value);
        onChanged();
        return this;
      }

      /**
       * <code>repeated int32 start_indices = 2;</code>
       */
      public Builder addStartIndices(final int value) {
        ensureStartIndicesIsMutable();
        startIndices_.add(value);
        onChanged();
        return this;
      }

      /**
       * <code>repeated int32 start_indices = 2;</code>
       */
      public Builder addAllStartIndices(final java.lang.Iterable<? extends java.lang.Integer> values) {
        ensureStartIndicesIsMutable();
        com.google.protobuf.AbstractMessageLite.Builder.addAll(values, startIndices_);
        onChanged();
        return this;
      }

      /**
       * <code>repeated int32 start_indices = 2;</code>
       */
      public Builder clearStartIndices() {
        startIndices_ = java.util.Collections.emptyList();
        bitField0_ = (bitField0_ & ~0x00000002);
        onChanged();
        return this;
      }

      private java.util.List<java.lang.Integer> endIndices_ = java.util.Collections.emptyList();

      private void ensureEndIndicesIsMutable() {
        if (!((bitField0_ & 0x00000004) == 0x00000004)) {
          endIndices_ = new java.util.ArrayList<java.lang.Integer>(endIndices_);
          bitField0_ |= 0x00000004;
        }
      }

      /**
       * <code>repeated int32 end_indices = 3;</code>
       */
      @Override
      public java.util.List<java.lang.Integer> getEndIndicesList() {
        return java.util.Collections.unmodifiableList(endIndices_);
      }

      /**
       * <code>repeated int32 end_indices = 3;</code>
       */
      @Override
      public int getEndIndicesCount() {
        return endIndices_.size();
      }

      /**
       * <code>repeated int32 end_indices = 3;</code>
       */
      @Override
      public int getEndIndices(final int index) {
        return endIndices_.get(index);
      }

      /**
       * <code>repeated int32 end_indices = 3;</code>
       */
      public Builder setEndIndices(final int index, final int value) {
        ensureEndIndicesIsMutable();
        endIndices_.set(index, value);
        onChanged();
        return this;
      }

      /**
       * <code>repeated int32 end_indices = 3;</code>
       */
      public Builder addEndIndices(final int value) {
        ensureEndIndicesIsMutable();
        endIndices_.add(value);
        onChanged();
        return this;
      }

      /**
       * <code>repeated int32 end_indices = 3;</code>
       */
      public Builder addAllEndIndices(final java.lang.Iterable<? extends java.lang.Integer> values) {
        ensureEndIndicesIsMutable();
        com.google.protobuf.AbstractMessageLite.Builder.addAll(values, endIndices_);
        onChanged();
        return this;
      }

      /**
       * <code>repeated int32 end_indices = 3;</code>
       */
      public Builder clearEndIndices() {
        endIndices_ = java.util.Collections.emptyList();
        bitField0_ = (bitField0_ & ~0x00000004);
        onChanged();
        return this;
      }

      // @@protoc_insertion_point(builder_scope:StringColumnMessage)
    }

    static {
      defaultInstance = new StringColumnMessage(true);
      defaultInstance.initFields();
    }

    // @@protoc_insertion_point(class_scope:StringColumnMessage)
  }

  public interface BooleanColumnMessageOrBuilder extends
  // @@protoc_insertion_point(interface_extends:BooleanColumnMessage)
      com.google.protobuf.MessageOrBuilder {

    /**
     * <code>required bytes data = 1;</code>
     */
    boolean hasData();

    /**
     * <code>required bytes data = 1;</code>
     */
    com.google.protobuf.ByteString getData();
  }
  /**
   * Protobuf type {@code BooleanColumnMessage}
   */
  public static final class BooleanColumnMessage extends com.google.protobuf.GeneratedMessage implements
  // @@protoc_insertion_point(message_implements:BooleanColumnMessage)
      BooleanColumnMessageOrBuilder {
    // Use BooleanColumnMessage.newBuilder() to construct.
    private BooleanColumnMessage(final com.google.protobuf.GeneratedMessage.Builder<?> builder) {
      super(builder);
      unknownFields = builder.getUnknownFields();
    }

    private BooleanColumnMessage(final boolean noInit) {
      unknownFields = com.google.protobuf.UnknownFieldSet.getDefaultInstance();
    }

    private static final BooleanColumnMessage defaultInstance;

    public static BooleanColumnMessage getDefaultInstance() {
      return defaultInstance;
    }

    @Override
    public BooleanColumnMessage getDefaultInstanceForType() {
      return defaultInstance;
    }

    private final com.google.protobuf.UnknownFieldSet unknownFields;

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

    private BooleanColumnMessage(final com.google.protobuf.CodedInputStream input,
        final com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      initFields();
      com.google.protobuf.UnknownFieldSet.Builder unknownFields = com.google.protobuf.UnknownFieldSet.newBuilder();
      try {
        boolean done = false;
        while (!done) {
          int tag = input.readTag();
          switch (tag) {
            case 0:
              done = true;
              break;
            default: {
              if (!parseUnknownField(input, unknownFields, extensionRegistry, tag)) {
                done = true;
              }
              break;
            }
            case 10: {
              bitField0_ |= 0x00000001;
              data_ = input.readBytes();
              break;
            }
          }
        }
      } catch (com.google.protobuf.InvalidProtocolBufferException e) {
        throw e.setUnfinishedMessage(this);
      } catch (java.io.IOException e) {
        throw new com.google.protobuf.InvalidProtocolBufferException(e.getMessage()).setUnfinishedMessage(this);
      } finally {
        this.unknownFields = unknownFields.build();
        makeExtensionsImmutable();
      }
    }

    public static final com.google.protobuf.Descriptors.Descriptor getDescriptor() {
      return edu.washington.escience.myria.proto.DataProto.internal_static_BooleanColumnMessage_descriptor;
    }

    @Override
    protected com.google.protobuf.GeneratedMessage.FieldAccessorTable internalGetFieldAccessorTable() {
      return edu.washington.escience.myria.proto.DataProto.internal_static_BooleanColumnMessage_fieldAccessorTable
          .ensureFieldAccessorsInitialized(edu.washington.escience.myria.proto.DataProto.BooleanColumnMessage.class,
              edu.washington.escience.myria.proto.DataProto.BooleanColumnMessage.Builder.class);
    }

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

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

    private int bitField0_;
    public static final int DATA_FIELD_NUMBER = 1;
    private com.google.protobuf.ByteString data_;

    /**
     * <code>required bytes data = 1;</code>
     */
    @Override
    public boolean hasData() {
      return ((bitField0_ & 0x00000001) == 0x00000001);
    }

    /**
     * <code>required bytes data = 1;</code>
     */
    @Override
    public com.google.protobuf.ByteString getData() {
      return data_;
    }

    private void initFields() {
      data_ = com.google.protobuf.ByteString.EMPTY;
    }

    private byte memoizedIsInitialized = -1;

    @Override
    public final boolean isInitialized() {
      byte isInitialized = memoizedIsInitialized;
      if (isInitialized == 1) {
        return true;
      }
      if (isInitialized == 0) {
        return false;
      }

      if (!hasData()) {
        memoizedIsInitialized = 0;
        return false;
      }
      memoizedIsInitialized = 1;
      return true;
    }

    @Override
    public void writeTo(final com.google.protobuf.CodedOutputStream output) throws java.io.IOException {
      getSerializedSize();
      if (((bitField0_ & 0x00000001) == 0x00000001)) {
        output.writeBytes(1, data_);
      }
      getUnknownFields().writeTo(output);
    }

    private int memoizedSerializedSize = -1;

    @Override
    public int getSerializedSize() {
      int size = memoizedSerializedSize;
      if (size != -1) {
        return size;
      }

      size = 0;
      if (((bitField0_ & 0x00000001) == 0x00000001)) {
        size += com.google.protobuf.CodedOutputStream.computeBytesSize(1, data_);
      }
      size += getUnknownFields().getSerializedSize();
      memoizedSerializedSize = size;
      return size;
    }

    private static final long serialVersionUID = 0L;

    @java.lang.Override
    protected java.lang.Object writeReplace() throws java.io.ObjectStreamException {
      return super.writeReplace();
    }

    public static edu.washington.escience.myria.proto.DataProto.BooleanColumnMessage parseFrom(
        final com.google.protobuf.ByteString data) throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }

    public static edu.washington.escience.myria.proto.DataProto.BooleanColumnMessage parseFrom(
        final com.google.protobuf.ByteString data, final com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }

    public static edu.washington.escience.myria.proto.DataProto.BooleanColumnMessage parseFrom(final byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }

    public static edu.washington.escience.myria.proto.DataProto.BooleanColumnMessage parseFrom(final byte[] data,
        final com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }

    public static edu.washington.escience.myria.proto.DataProto.BooleanColumnMessage parseFrom(
        final java.io.InputStream input) throws java.io.IOException {
      return PARSER.parseFrom(input);
    }

    public static edu.washington.escience.myria.proto.DataProto.BooleanColumnMessage parseFrom(
        final java.io.InputStream input, final com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return PARSER.parseFrom(input, extensionRegistry);
    }

    public static edu.washington.escience.myria.proto.DataProto.BooleanColumnMessage parseDelimitedFrom(
        final java.io.InputStream input) throws java.io.IOException {
      return PARSER.parseDelimitedFrom(input);
    }

    public static edu.washington.escience.myria.proto.DataProto.BooleanColumnMessage parseDelimitedFrom(
        final java.io.InputStream input, final com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return PARSER.parseDelimitedFrom(input, extensionRegistry);
    }

    public static edu.washington.escience.myria.proto.DataProto.BooleanColumnMessage parseFrom(
        final com.google.protobuf.CodedInputStream input) throws java.io.IOException {
      return PARSER.parseFrom(input);
    }

    public static edu.washington.escience.myria.proto.DataProto.BooleanColumnMessage parseFrom(
        final com.google.protobuf.CodedInputStream input,
        final com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws java.io.IOException {
      return PARSER.parseFrom(input, extensionRegistry);
    }

    public static Builder newBuilder() {
      return Builder.create();
    }

    @Override
    public Builder newBuilderForType() {
      return newBuilder();
    }

    public static Builder newBuilder(final edu.washington.escience.myria.proto.DataProto.BooleanColumnMessage prototype) {
      return newBuilder().mergeFrom(prototype);
    }

    @Override
    public Builder toBuilder() {
      return newBuilder(this);
    }

    @java.lang.Override
    protected Builder newBuilderForType(final com.google.protobuf.GeneratedMessage.BuilderParent parent) {
      Builder builder = new Builder(parent);
      return builder;
    }

    /**
     * Protobuf type {@code BooleanColumnMessage}
     */
    public static final class Builder extends com.google.protobuf.GeneratedMessage.Builder<Builder> implements
    // @@protoc_insertion_point(builder_implements:BooleanColumnMessage)
        edu.washington.escience.myria.proto.DataProto.BooleanColumnMessageOrBuilder {
      public static final com.google.protobuf.Descriptors.Descriptor getDescriptor() {
        return edu.washington.escience.myria.proto.DataProto.internal_static_BooleanColumnMessage_descriptor;
      }

      @Override
      protected com.google.protobuf.GeneratedMessage.FieldAccessorTable internalGetFieldAccessorTable() {
        return edu.washington.escience.myria.proto.DataProto.internal_static_BooleanColumnMessage_fieldAccessorTable
            .ensureFieldAccessorsInitialized(edu.washington.escience.myria.proto.DataProto.BooleanColumnMessage.class,
                edu.washington.escience.myria.proto.DataProto.BooleanColumnMessage.Builder.class);
      }

      // Construct using edu.washington.escience.myria.proto.DataProto.BooleanColumnMessage.newBuilder()
      private Builder() {
        maybeForceBuilderInitialization();
      }

      private Builder(final com.google.protobuf.GeneratedMessage.BuilderParent parent) {
        super(parent);
        maybeForceBuilderInitialization();
      }

      private void maybeForceBuilderInitialization() {
        if (com.google.protobuf.GeneratedMessage.alwaysUseFieldBuilders) {
        }
      }

      private static Builder create() {
        return new Builder();
      }

      @Override
      public Builder clear() {
        super.clear();
        data_ = com.google.protobuf.ByteString.EMPTY;
        bitField0_ = (bitField0_ & ~0x00000001);
        return this;
      }

      @Override
      public Builder clone() {
        return create().mergeFrom(buildPartial());
      }

      @Override
      public com.google.protobuf.Descriptors.Descriptor getDescriptorForType() {
        return edu.washington.escience.myria.proto.DataProto.internal_static_BooleanColumnMessage_descriptor;
      }

      @Override
      public edu.washington.escience.myria.proto.DataProto.BooleanColumnMessage getDefaultInstanceForType() {
        return edu.washington.escience.myria.proto.DataProto.BooleanColumnMessage.getDefaultInstance();
      }

      @Override
      public edu.washington.escience.myria.proto.DataProto.BooleanColumnMessage build() {
        edu.washington.escience.myria.proto.DataProto.BooleanColumnMessage result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return result;
      }

      @Override
      public edu.washington.escience.myria.proto.DataProto.BooleanColumnMessage buildPartial() {
        edu.washington.escience.myria.proto.DataProto.BooleanColumnMessage result =
            new edu.washington.escience.myria.proto.DataProto.BooleanColumnMessage(this);
        int from_bitField0_ = bitField0_;
        int to_bitField0_ = 0;
        if (((from_bitField0_ & 0x00000001) == 0x00000001)) {
          to_bitField0_ |= 0x00000001;
        }
        result.data_ = data_;
        result.bitField0_ = to_bitField0_;
        onBuilt();
        return result;
      }

      @Override
      public Builder mergeFrom(final com.google.protobuf.Message other) {
        if (other instanceof edu.washington.escience.myria.proto.DataProto.BooleanColumnMessage) {
          return mergeFrom((edu.washington.escience.myria.proto.DataProto.BooleanColumnMessage) other);
        } else {
          super.mergeFrom(other);
          return this;
        }
      }

      public Builder mergeFrom(final edu.washington.escience.myria.proto.DataProto.BooleanColumnMessage other) {
        if (other == edu.washington.escience.myria.proto.DataProto.BooleanColumnMessage.getDefaultInstance()) {
          return this;
        }
        if (other.hasData()) {
          setData(other.getData());
        }
        mergeUnknownFields(other.getUnknownFields());
        return this;
      }

      @Override
      public final boolean isInitialized() {
        if (!hasData()) {

          return false;
        }
        return true;
      }

      @Override
      public Builder mergeFrom(final com.google.protobuf.CodedInputStream input,
          final com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws java.io.IOException {
        edu.washington.escience.myria.proto.DataProto.BooleanColumnMessage parsedMessage = null;
        try {
          parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry);
        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
          parsedMessage = (edu.washington.escience.myria.proto.DataProto.BooleanColumnMessage) e.getUnfinishedMessage();
          throw e;
        } finally {
          if (parsedMessage != null) {
            mergeFrom(parsedMessage);
          }
        }
        return this;
      }

      private int bitField0_;

      private com.google.protobuf.ByteString data_ = com.google.protobuf.ByteString.EMPTY;

      /**
       * <code>required bytes data = 1;</code>
       */
      @Override
      public boolean hasData() {
        return ((bitField0_ & 0x00000001) == 0x00000001);
      }

      /**
       * <code>required bytes data = 1;</code>
       */
      @Override
      public com.google.protobuf.ByteString getData() {
        return data_;
      }

      /**
       * <code>required bytes data = 1;</code>
       */
      public Builder setData(final com.google.protobuf.ByteString value) {
        if (value == null) {
          throw new NullPointerException();
        }
        bitField0_ |= 0x00000001;
        data_ = value;
        onChanged();
        return this;
      }

      /**
       * <code>required bytes data = 1;</code>
       */
      public Builder clearData() {
        bitField0_ = (bitField0_ & ~0x00000001);
        data_ = getDefaultInstance().getData();
        onChanged();
        return this;
      }

      // @@protoc_insertion_point(builder_scope:BooleanColumnMessage)
    }

    static {
      defaultInstance = new BooleanColumnMessage(true);
      defaultInstance.initFields();
    }

    // @@protoc_insertion_point(class_scope:BooleanColumnMessage)
  }

  public interface DateTimeColumnMessageOrBuilder extends
  // @@protoc_insertion_point(interface_extends:DateTimeColumnMessage)
      com.google.protobuf.MessageOrBuilder {

    /**
     * <code>required bytes data = 1;</code>
     */
    boolean hasData();

    /**
     * <code>required bytes data = 1;</code>
     */
    com.google.protobuf.ByteString getData();
  }
  /**
   * Protobuf type {@code DateTimeColumnMessage}
   */
  public static final class DateTimeColumnMessage extends com.google.protobuf.GeneratedMessage implements
  // @@protoc_insertion_point(message_implements:DateTimeColumnMessage)
      DateTimeColumnMessageOrBuilder {
    // Use DateTimeColumnMessage.newBuilder() to construct.
    private DateTimeColumnMessage(final com.google.protobuf.GeneratedMessage.Builder<?> builder) {
      super(builder);
      unknownFields = builder.getUnknownFields();
    }

    private DateTimeColumnMessage(final boolean noInit) {
      unknownFields = com.google.protobuf.UnknownFieldSet.getDefaultInstance();
    }

    private static final DateTimeColumnMessage defaultInstance;

    public static DateTimeColumnMessage getDefaultInstance() {
      return defaultInstance;
    }

    @Override
    public DateTimeColumnMessage getDefaultInstanceForType() {
      return defaultInstance;
    }

    private final com.google.protobuf.UnknownFieldSet unknownFields;

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

    private DateTimeColumnMessage(final com.google.protobuf.CodedInputStream input,
        final com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      initFields();
      com.google.protobuf.UnknownFieldSet.Builder unknownFields = com.google.protobuf.UnknownFieldSet.newBuilder();
      try {
        boolean done = false;
        while (!done) {
          int tag = input.readTag();
          switch (tag) {
            case 0:
              done = true;
              break;
            default: {
              if (!parseUnknownField(input, unknownFields, extensionRegistry, tag)) {
                done = true;
              }
              break;
            }
            case 10: {
              bitField0_ |= 0x00000001;
              data_ = input.readBytes();
              break;
            }
          }
        }
      } catch (com.google.protobuf.InvalidProtocolBufferException e) {
        throw e.setUnfinishedMessage(this);
      } catch (java.io.IOException e) {
        throw new com.google.protobuf.InvalidProtocolBufferException(e.getMessage()).setUnfinishedMessage(this);
      } finally {
        this.unknownFields = unknownFields.build();
        makeExtensionsImmutable();
      }
    }

    public static final com.google.protobuf.Descriptors.Descriptor getDescriptor() {
      return edu.washington.escience.myria.proto.DataProto.internal_static_DateTimeColumnMessage_descriptor;
    }

    @Override
    protected com.google.protobuf.GeneratedMessage.FieldAccessorTable internalGetFieldAccessorTable() {
      return edu.washington.escience.myria.proto.DataProto.internal_static_DateTimeColumnMessage_fieldAccessorTable
          .ensureFieldAccessorsInitialized(edu.washington.escience.myria.proto.DataProto.DateTimeColumnMessage.class,
              edu.washington.escience.myria.proto.DataProto.DateTimeColumnMessage.Builder.class);
    }

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

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

    private int bitField0_;
    public static final int DATA_FIELD_NUMBER = 1;
    private com.google.protobuf.ByteString data_;

    /**
     * <code>required bytes data = 1;</code>
     */
    @Override
    public boolean hasData() {
      return ((bitField0_ & 0x00000001) == 0x00000001);
    }

    /**
     * <code>required bytes data = 1;</code>
     */
    @Override
    public com.google.protobuf.ByteString getData() {
      return data_;
    }

    private void initFields() {
      data_ = com.google.protobuf.ByteString.EMPTY;
    }

    private byte memoizedIsInitialized = -1;

    @Override
    public final boolean isInitialized() {
      byte isInitialized = memoizedIsInitialized;
      if (isInitialized == 1) {
        return true;
      }
      if (isInitialized == 0) {
        return false;
      }

      if (!hasData()) {
        memoizedIsInitialized = 0;
        return false;
      }
      memoizedIsInitialized = 1;
      return true;
    }

    @Override
    public void writeTo(final com.google.protobuf.CodedOutputStream output) throws java.io.IOException {
      getSerializedSize();
      if (((bitField0_ & 0x00000001) == 0x00000001)) {
        output.writeBytes(1, data_);
      }
      getUnknownFields().writeTo(output);
    }

    private int memoizedSerializedSize = -1;

    @Override
    public int getSerializedSize() {
      int size = memoizedSerializedSize;
      if (size != -1) {
        return size;
      }

      size = 0;
      if (((bitField0_ & 0x00000001) == 0x00000001)) {
        size += com.google.protobuf.CodedOutputStream.computeBytesSize(1, data_);
      }
      size += getUnknownFields().getSerializedSize();
      memoizedSerializedSize = size;
      return size;
    }

    private static final long serialVersionUID = 0L;

    @java.lang.Override
    protected java.lang.Object writeReplace() throws java.io.ObjectStreamException {
      return super.writeReplace();
    }

    public static edu.washington.escience.myria.proto.DataProto.DateTimeColumnMessage parseFrom(
        final com.google.protobuf.ByteString data) throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }

    public static edu.washington.escience.myria.proto.DataProto.DateTimeColumnMessage parseFrom(
        final com.google.protobuf.ByteString data, final com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }

    public static edu.washington.escience.myria.proto.DataProto.DateTimeColumnMessage parseFrom(final byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }

    public static edu.washington.escience.myria.proto.DataProto.DateTimeColumnMessage parseFrom(final byte[] data,
        final com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }

    public static edu.washington.escience.myria.proto.DataProto.DateTimeColumnMessage parseFrom(
        final java.io.InputStream input) throws java.io.IOException {
      return PARSER.parseFrom(input);
    }

    public static edu.washington.escience.myria.proto.DataProto.DateTimeColumnMessage parseFrom(
        final java.io.InputStream input, final com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return PARSER.parseFrom(input, extensionRegistry);
    }

    public static edu.washington.escience.myria.proto.DataProto.DateTimeColumnMessage parseDelimitedFrom(
        final java.io.InputStream input) throws java.io.IOException {
      return PARSER.parseDelimitedFrom(input);
    }

    public static edu.washington.escience.myria.proto.DataProto.DateTimeColumnMessage parseDelimitedFrom(
        final java.io.InputStream input, final com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return PARSER.parseDelimitedFrom(input, extensionRegistry);
    }

    public static edu.washington.escience.myria.proto.DataProto.DateTimeColumnMessage parseFrom(
        final com.google.protobuf.CodedInputStream input) throws java.io.IOException {
      return PARSER.parseFrom(input);
    }

    public static edu.washington.escience.myria.proto.DataProto.DateTimeColumnMessage parseFrom(
        final com.google.protobuf.CodedInputStream input,
        final com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws java.io.IOException {
      return PARSER.parseFrom(input, extensionRegistry);
    }

    public static Builder newBuilder() {
      return Builder.create();
    }

    @Override
    public Builder newBuilderForType() {
      return newBuilder();
    }

    public static Builder newBuilder(final edu.washington.escience.myria.proto.DataProto.DateTimeColumnMessage prototype) {
      return newBuilder().mergeFrom(prototype);
    }

    @Override
    public Builder toBuilder() {
      return newBuilder(this);
    }

    @java.lang.Override
    protected Builder newBuilderForType(final com.google.protobuf.GeneratedMessage.BuilderParent parent) {
      Builder builder = new Builder(parent);
      return builder;
    }

    /**
     * Protobuf type {@code DateTimeColumnMessage}
     */
    public static final class Builder extends com.google.protobuf.GeneratedMessage.Builder<Builder> implements
    // @@protoc_insertion_point(builder_implements:DateTimeColumnMessage)
        edu.washington.escience.myria.proto.DataProto.DateTimeColumnMessageOrBuilder {
      public static final com.google.protobuf.Descriptors.Descriptor getDescriptor() {
        return edu.washington.escience.myria.proto.DataProto.internal_static_DateTimeColumnMessage_descriptor;
      }

      @Override
      protected com.google.protobuf.GeneratedMessage.FieldAccessorTable internalGetFieldAccessorTable() {
        return edu.washington.escience.myria.proto.DataProto.internal_static_DateTimeColumnMessage_fieldAccessorTable
            .ensureFieldAccessorsInitialized(edu.washington.escience.myria.proto.DataProto.DateTimeColumnMessage.class,
                edu.washington.escience.myria.proto.DataProto.DateTimeColumnMessage.Builder.class);
      }

      // Construct using edu.washington.escience.myria.proto.DataProto.DateTimeColumnMessage.newBuilder()
      private Builder() {
        maybeForceBuilderInitialization();
      }

      private Builder(final com.google.protobuf.GeneratedMessage.BuilderParent parent) {
        super(parent);
        maybeForceBuilderInitialization();
      }

      private void maybeForceBuilderInitialization() {
        if (com.google.protobuf.GeneratedMessage.alwaysUseFieldBuilders) {
        }
      }

      private static Builder create() {
        return new Builder();
      }

      @Override
      public Builder clear() {
        super.clear();
        data_ = com.google.protobuf.ByteString.EMPTY;
        bitField0_ = (bitField0_ & ~0x00000001);
        return this;
      }

      @Override
      public Builder clone() {
        return create().mergeFrom(buildPartial());
      }

      @Override
      public com.google.protobuf.Descriptors.Descriptor getDescriptorForType() {
        return edu.washington.escience.myria.proto.DataProto.internal_static_DateTimeColumnMessage_descriptor;
      }

      @Override
      public edu.washington.escience.myria.proto.DataProto.DateTimeColumnMessage getDefaultInstanceForType() {
        return edu.washington.escience.myria.proto.DataProto.DateTimeColumnMessage.getDefaultInstance();
      }

      @Override
      public edu.washington.escience.myria.proto.DataProto.DateTimeColumnMessage build() {
        edu.washington.escience.myria.proto.DataProto.DateTimeColumnMessage result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return result;
      }

      @Override
      public edu.washington.escience.myria.proto.DataProto.DateTimeColumnMessage buildPartial() {
        edu.washington.escience.myria.proto.DataProto.DateTimeColumnMessage result =
            new edu.washington.escience.myria.proto.DataProto.DateTimeColumnMessage(this);
        int from_bitField0_ = bitField0_;
        int to_bitField0_ = 0;
        if (((from_bitField0_ & 0x00000001) == 0x00000001)) {
          to_bitField0_ |= 0x00000001;
        }
        result.data_ = data_;
        result.bitField0_ = to_bitField0_;
        onBuilt();
        return result;
      }

      @Override
      public Builder mergeFrom(final com.google.protobuf.Message other) {
        if (other instanceof edu.washington.escience.myria.proto.DataProto.DateTimeColumnMessage) {
          return mergeFrom((edu.washington.escience.myria.proto.DataProto.DateTimeColumnMessage) other);
        } else {
          super.mergeFrom(other);
          return this;
        }
      }

      public Builder mergeFrom(final edu.washington.escience.myria.proto.DataProto.DateTimeColumnMessage other) {
        if (other == edu.washington.escience.myria.proto.DataProto.DateTimeColumnMessage.getDefaultInstance()) {
          return this;
        }
        if (other.hasData()) {
          setData(other.getData());
        }
        mergeUnknownFields(other.getUnknownFields());
        return this;
      }

      @Override
      public final boolean isInitialized() {
        if (!hasData()) {

          return false;
        }
        return true;
      }

      @Override
      public Builder mergeFrom(final com.google.protobuf.CodedInputStream input,
          final com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws java.io.IOException {
        edu.washington.escience.myria.proto.DataProto.DateTimeColumnMessage parsedMessage = null;
        try {
          parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry);
        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
          parsedMessage =
              (edu.washington.escience.myria.proto.DataProto.DateTimeColumnMessage) e.getUnfinishedMessage();
          throw e;
        } finally {
          if (parsedMessage != null) {
            mergeFrom(parsedMessage);
          }
        }
        return this;
      }

      private int bitField0_;

      private com.google.protobuf.ByteString data_ = com.google.protobuf.ByteString.EMPTY;

      /**
       * <code>required bytes data = 1;</code>
       */
      @Override
      public boolean hasData() {
        return ((bitField0_ & 0x00000001) == 0x00000001);
      }

      /**
       * <code>required bytes data = 1;</code>
       */
      @Override
      public com.google.protobuf.ByteString getData() {
        return data_;
      }

      /**
       * <code>required bytes data = 1;</code>
       */
      public Builder setData(final com.google.protobuf.ByteString value) {
        if (value == null) {
          throw new NullPointerException();
        }
        bitField0_ |= 0x00000001;
        data_ = value;
        onChanged();
        return this;
      }

      /**
       * <code>required bytes data = 1;</code>
       */
      public Builder clearData() {
        bitField0_ = (bitField0_ & ~0x00000001);
        data_ = getDefaultInstance().getData();
        onChanged();
        return this;
      }

      // @@protoc_insertion_point(builder_scope:DateTimeColumnMessage)
    }

    static {
      defaultInstance = new DateTimeColumnMessage(true);
      defaultInstance.initFields();
    }

    // @@protoc_insertion_point(class_scope:DateTimeColumnMessage)
  }

  private static final com.google.protobuf.Descriptors.Descriptor internal_static_DataMessage_descriptor;
  private static com.google.protobuf.GeneratedMessage.FieldAccessorTable internal_static_DataMessage_fieldAccessorTable;
  private static final com.google.protobuf.Descriptors.Descriptor internal_static_ColumnMessage_descriptor;
  private static com.google.protobuf.GeneratedMessage.FieldAccessorTable internal_static_ColumnMessage_fieldAccessorTable;
  private static final com.google.protobuf.Descriptors.Descriptor internal_static_IntColumnMessage_descriptor;
  private static com.google.protobuf.GeneratedMessage.FieldAccessorTable internal_static_IntColumnMessage_fieldAccessorTable;
  private static final com.google.protobuf.Descriptors.Descriptor internal_static_LongColumnMessage_descriptor;
  private static com.google.protobuf.GeneratedMessage.FieldAccessorTable internal_static_LongColumnMessage_fieldAccessorTable;
  private static final com.google.protobuf.Descriptors.Descriptor internal_static_FloatColumnMessage_descriptor;
  private static com.google.protobuf.GeneratedMessage.FieldAccessorTable internal_static_FloatColumnMessage_fieldAccessorTable;
  private static final com.google.protobuf.Descriptors.Descriptor internal_static_DoubleColumnMessage_descriptor;
  private static com.google.protobuf.GeneratedMessage.FieldAccessorTable internal_static_DoubleColumnMessage_fieldAccessorTable;
  private static final com.google.protobuf.Descriptors.Descriptor internal_static_StringColumnMessage_descriptor;
  private static com.google.protobuf.GeneratedMessage.FieldAccessorTable internal_static_StringColumnMessage_fieldAccessorTable;
  private static final com.google.protobuf.Descriptors.Descriptor internal_static_BooleanColumnMessage_descriptor;
  private static com.google.protobuf.GeneratedMessage.FieldAccessorTable internal_static_BooleanColumnMessage_fieldAccessorTable;
  private static final com.google.protobuf.Descriptors.Descriptor internal_static_DateTimeColumnMessage_descriptor;
  private static com.google.protobuf.GeneratedMessage.FieldAccessorTable internal_static_DateTimeColumnMessage_fieldAccessorTable;

  public static com.google.protobuf.Descriptors.FileDescriptor getDescriptor() {
    return descriptor;
  }

  private static com.google.protobuf.Descriptors.FileDescriptor descriptor;
  static {
    java.lang.String[] descriptorData =
        {
            "\n\014column.proto\"\241\001\n\013DataMessage\022\037\n\004type\030\001"
                + " \002(\0162\021.DataMessage.Type\022\022\n\noperatorID\030\002 "
                + "\001(\004\022\037\n\007columns\030\003 \003(\0132\016.ColumnMessage\022\022\n\n"
                + "num_tuples\030\004 \001(\r\022\013\n\003seq\030\005 \001(\004\"\033\n\004Type\022\n\n"
                + "\006NORMAL\020\001\022\007\n\003EOI\020\002\"\274\003\n\rColumnMessage\022!\n\004"
                + "type\030\001 \002(\0162\023.ColumnMessage.Type\022%\n\nint_c"
                + "olumn\030\003 \001(\0132\021.IntColumnMessage\022\'\n\013long_c"
                + "olumn\030\004 \001(\0132\022.LongColumnMessage\022)\n\014float"
                + "_column\030\005 \001(\0132\023.FloatColumnMessage\022+\n\rdo"
                + "uble_column\030\006 \001(\0132\024.DoubleColumnMessage\022",
            "+\n\rstring_column\030\007 \001(\0132\024.StringColumnMes"
                + "sage\022-\n\016boolean_column\030\010 \001(\0132\025.BooleanCo"
                + "lumnMessage\022+\n\013date_column\030\t \001(\0132\026.DateT"
                + "imeColumnMessage\"W\n\004Type\022\007\n\003INT\020\000\022\010\n\004LON"
                + "G\020\001\022\t\n\005FLOAT\020\002\022\n\n\006DOUBLE\020\003\022\n\n\006STRING\020\004\022\013"
                + "\n\007BOOLEAN\020\005\022\014\n\010DATETIME\020\006\" \n\020IntColumnMe"
                + "ssage\022\014\n\004data\030\001 \002(\014\"!\n\021LongColumnMessage"
                + "\022\014\n\004data\030\001 \002(\014\"\"\n\022FloatColumnMessage\022\014\n\004"
                + "data\030\001 \002(\014\"#\n\023DoubleColumnMessage\022\014\n\004dat"
                + "a\030\001 \002(\014\"O\n\023StringColumnMessage\022\014\n\004data\030\001",
            " \002(\014\022\025\n\rstart_indices\030\002 \003(\005\022\023\n\013end_indic"
                + "es\030\003 \003(\005\"$\n\024BooleanColumnMessage\022\014\n\004data"
                + "\030\001 \002(\014\"%\n\025DateTimeColumnMessage\022\014\n\004data\030"
                + "\001 \002(\014B0\n#edu.washington.escience.myria.p" + "rotoB\tDataProto" };
    com.google.protobuf.Descriptors.FileDescriptor.InternalDescriptorAssigner assigner =
        new com.google.protobuf.Descriptors.FileDescriptor.InternalDescriptorAssigner() {
          @Override
          public com.google.protobuf.ExtensionRegistry assignDescriptors(
              final com.google.protobuf.Descriptors.FileDescriptor root) {
            descriptor = root;
            return null;
          }
        };
    com.google.protobuf.Descriptors.FileDescriptor.internalBuildGeneratedFileFrom(descriptorData,
        new com.google.protobuf.Descriptors.FileDescriptor[] {}, assigner);
    internal_static_DataMessage_descriptor = getDescriptor().getMessageTypes().get(0);
    internal_static_DataMessage_fieldAccessorTable =
        new com.google.protobuf.GeneratedMessage.FieldAccessorTable(internal_static_DataMessage_descriptor,
            new java.lang.String[] { "Type", "OperatorID", "Columns", "NumTuples", "Seq", });
    internal_static_ColumnMessage_descriptor = getDescriptor().getMessageTypes().get(1);
    internal_static_ColumnMessage_fieldAccessorTable =
        new com.google.protobuf.GeneratedMessage.FieldAccessorTable(internal_static_ColumnMessage_descriptor,
            new java.lang.String[] {
                "Type", "IntColumn", "LongColumn", "FloatColumn", "DoubleColumn", "StringColumn", "BooleanColumn",
                "DateColumn", });
    internal_static_IntColumnMessage_descriptor = getDescriptor().getMessageTypes().get(2);
    internal_static_IntColumnMessage_fieldAccessorTable =
        new com.google.protobuf.GeneratedMessage.FieldAccessorTable(internal_static_IntColumnMessage_descriptor,
            new java.lang.String[] { "Data", });
    internal_static_LongColumnMessage_descriptor = getDescriptor().getMessageTypes().get(3);
    internal_static_LongColumnMessage_fieldAccessorTable =
        new com.google.protobuf.GeneratedMessage.FieldAccessorTable(internal_static_LongColumnMessage_descriptor,
            new java.lang.String[] { "Data", });
    internal_static_FloatColumnMessage_descriptor = getDescriptor().getMessageTypes().get(4);
    internal_static_FloatColumnMessage_fieldAccessorTable =
        new com.google.protobuf.GeneratedMessage.FieldAccessorTable(internal_static_FloatColumnMessage_descriptor,
            new java.lang.String[] { "Data", });
    internal_static_DoubleColumnMessage_descriptor = getDescriptor().getMessageTypes().get(5);
    internal_static_DoubleColumnMessage_fieldAccessorTable =
        new com.google.protobuf.GeneratedMessage.FieldAccessorTable(internal_static_DoubleColumnMessage_descriptor,
            new java.lang.String[] { "Data", });
    internal_static_StringColumnMessage_descriptor = getDescriptor().getMessageTypes().get(6);
    internal_static_StringColumnMessage_fieldAccessorTable =
        new com.google.protobuf.GeneratedMessage.FieldAccessorTable(internal_static_StringColumnMessage_descriptor,
            new java.lang.String[] { "Data", "StartIndices", "EndIndices", });
    internal_static_BooleanColumnMessage_descriptor = getDescriptor().getMessageTypes().get(7);
    internal_static_BooleanColumnMessage_fieldAccessorTable =
        new com.google.protobuf.GeneratedMessage.FieldAccessorTable(internal_static_BooleanColumnMessage_descriptor,
            new java.lang.String[] { "Data", });
    internal_static_DateTimeColumnMessage_descriptor = getDescriptor().getMessageTypes().get(8);
    internal_static_DateTimeColumnMessage_fieldAccessorTable =
        new com.google.protobuf.GeneratedMessage.FieldAccessorTable(internal_static_DateTimeColumnMessage_descriptor,
            new java.lang.String[] { "Data", });
  }

  // @@protoc_insertion_point(outer_class_scope)
}
