You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@drill.apache.org by ja...@apache.org on 2013/09/19 18:45:03 UTC

[07/12] DRILL-233: Move protobuf IDLs to a separate module and check in the compile Java sources

http://git-wip-us.apache.org/repos/asf/incubator-drill/blob/07c6c21d/protocol/src/main/java/org/apache/drill/exec/proto/ExecProtos.java
----------------------------------------------------------------------
diff --git a/protocol/src/main/java/org/apache/drill/exec/proto/ExecProtos.java b/protocol/src/main/java/org/apache/drill/exec/proto/ExecProtos.java
new file mode 100644
index 0000000..2ec2683
--- /dev/null
+++ b/protocol/src/main/java/org/apache/drill/exec/proto/ExecProtos.java
@@ -0,0 +1,7095 @@
+/**
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+// Generated by the protocol buffer compiler.  DO NOT EDIT!
+// source: ExecutionProtos.proto
+
+package org.apache.drill.exec.proto;
+
+public final class ExecProtos {
+  private ExecProtos() {}
+  public static void registerAllExtensions(
+      com.google.protobuf.ExtensionRegistry registry) {
+  }
+  /**
+   * Protobuf enum {@code exec.bit.RpcType}
+   *
+   * <pre>
+   *&#47;/// UserToBit RPC ///////
+   * </pre>
+   */
+  public enum RpcType
+      implements com.google.protobuf.ProtocolMessageEnum {
+    /**
+     * <code>HANDSHAKE = 0;</code>
+     */
+    HANDSHAKE(0, 0),
+    /**
+     * <code>ACK = 1;</code>
+     */
+    ACK(1, 1),
+    /**
+     * <code>GOODBYE = 2;</code>
+     */
+    GOODBYE(2, 2),
+    /**
+     * <code>REQ_INIATILIZE_FRAGMENT = 3;</code>
+     *
+     * <pre>
+     * bit requests
+     * </pre>
+     */
+    REQ_INIATILIZE_FRAGMENT(3, 3),
+    /**
+     * <code>REQ_RECORD_BATCH = 4;</code>
+     *
+     * <pre>
+     * send record batch overview, returns Ack
+     * </pre>
+     */
+    REQ_RECORD_BATCH(4, 4),
+    /**
+     * <code>REQ_CANCEL_FRAGMENT = 6;</code>
+     *
+     * <pre>
+     * send a cancellation message for a fragment, returns Ack
+     * </pre>
+     */
+    REQ_CANCEL_FRAGMENT(5, 6),
+    /**
+     * <code>REQ_FRAGMENT_STATUS = 7;</code>
+     *
+     * <pre>
+     * get a fragment status, returns FragmentStatus
+     * </pre>
+     */
+    REQ_FRAGMENT_STATUS(6, 7),
+    /**
+     * <code>REQ_BIT_STATUS = 8;</code>
+     *
+     * <pre>
+     * get bit status.
+     * </pre>
+     */
+    REQ_BIT_STATUS(7, 8),
+    /**
+     * <code>RESP_FRAGMENT_HANDLE = 9;</code>
+     *
+     * <pre>
+     * bit responses
+     * </pre>
+     */
+    RESP_FRAGMENT_HANDLE(8, 9),
+    /**
+     * <code>RESP_FRAGMENT_STATUS = 10;</code>
+     */
+    RESP_FRAGMENT_STATUS(9, 10),
+    /**
+     * <code>RESP_BIT_STATUS = 11;</code>
+     */
+    RESP_BIT_STATUS(10, 11),
+    ;
+
+    /**
+     * <code>HANDSHAKE = 0;</code>
+     */
+    public static final int HANDSHAKE_VALUE = 0;
+    /**
+     * <code>ACK = 1;</code>
+     */
+    public static final int ACK_VALUE = 1;
+    /**
+     * <code>GOODBYE = 2;</code>
+     */
+    public static final int GOODBYE_VALUE = 2;
+    /**
+     * <code>REQ_INIATILIZE_FRAGMENT = 3;</code>
+     *
+     * <pre>
+     * bit requests
+     * </pre>
+     */
+    public static final int REQ_INIATILIZE_FRAGMENT_VALUE = 3;
+    /**
+     * <code>REQ_RECORD_BATCH = 4;</code>
+     *
+     * <pre>
+     * send record batch overview, returns Ack
+     * </pre>
+     */
+    public static final int REQ_RECORD_BATCH_VALUE = 4;
+    /**
+     * <code>REQ_CANCEL_FRAGMENT = 6;</code>
+     *
+     * <pre>
+     * send a cancellation message for a fragment, returns Ack
+     * </pre>
+     */
+    public static final int REQ_CANCEL_FRAGMENT_VALUE = 6;
+    /**
+     * <code>REQ_FRAGMENT_STATUS = 7;</code>
+     *
+     * <pre>
+     * get a fragment status, returns FragmentStatus
+     * </pre>
+     */
+    public static final int REQ_FRAGMENT_STATUS_VALUE = 7;
+    /**
+     * <code>REQ_BIT_STATUS = 8;</code>
+     *
+     * <pre>
+     * get bit status.
+     * </pre>
+     */
+    public static final int REQ_BIT_STATUS_VALUE = 8;
+    /**
+     * <code>RESP_FRAGMENT_HANDLE = 9;</code>
+     *
+     * <pre>
+     * bit responses
+     * </pre>
+     */
+    public static final int RESP_FRAGMENT_HANDLE_VALUE = 9;
+    /**
+     * <code>RESP_FRAGMENT_STATUS = 10;</code>
+     */
+    public static final int RESP_FRAGMENT_STATUS_VALUE = 10;
+    /**
+     * <code>RESP_BIT_STATUS = 11;</code>
+     */
+    public static final int RESP_BIT_STATUS_VALUE = 11;
+
+
+    public final int getNumber() { return value; }
+
+    public static RpcType valueOf(int value) {
+      switch (value) {
+        case 0: return HANDSHAKE;
+        case 1: return ACK;
+        case 2: return GOODBYE;
+        case 3: return REQ_INIATILIZE_FRAGMENT;
+        case 4: return REQ_RECORD_BATCH;
+        case 6: return REQ_CANCEL_FRAGMENT;
+        case 7: return REQ_FRAGMENT_STATUS;
+        case 8: return REQ_BIT_STATUS;
+        case 9: return RESP_FRAGMENT_HANDLE;
+        case 10: return RESP_FRAGMENT_STATUS;
+        case 11: return RESP_BIT_STATUS;
+        default: return null;
+      }
+    }
+
+    public static com.google.protobuf.Internal.EnumLiteMap<RpcType>
+        internalGetValueMap() {
+      return internalValueMap;
+    }
+    private static com.google.protobuf.Internal.EnumLiteMap<RpcType>
+        internalValueMap =
+          new com.google.protobuf.Internal.EnumLiteMap<RpcType>() {
+            public RpcType findValueByNumber(int number) {
+              return RpcType.valueOf(number);
+            }
+          };
+
+    public final com.google.protobuf.Descriptors.EnumValueDescriptor
+        getValueDescriptor() {
+      return getDescriptor().getValues().get(index);
+    }
+    public final com.google.protobuf.Descriptors.EnumDescriptor
+        getDescriptorForType() {
+      return getDescriptor();
+    }
+    public static final com.google.protobuf.Descriptors.EnumDescriptor
+        getDescriptor() {
+      return org.apache.drill.exec.proto.ExecProtos.getDescriptor().getEnumTypes().get(0);
+    }
+
+    private static final RpcType[] VALUES = values();
+
+    public static RpcType valueOf(
+        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 RpcType(int index, int value) {
+      this.index = index;
+      this.value = value;
+    }
+
+    // @@protoc_insertion_point(enum_scope:exec.bit.RpcType)
+  }
+
+  public interface BitHandshakeOrBuilder
+      extends com.google.protobuf.MessageOrBuilder {
+
+    // optional int32 rpc_version = 1;
+    /**
+     * <code>optional int32 rpc_version = 1;</code>
+     */
+    boolean hasRpcVersion();
+    /**
+     * <code>optional int32 rpc_version = 1;</code>
+     */
+    int getRpcVersion();
+
+    // optional .exec.DrillbitEndpoint endpoint = 2;
+    /**
+     * <code>optional .exec.DrillbitEndpoint endpoint = 2;</code>
+     */
+    boolean hasEndpoint();
+    /**
+     * <code>optional .exec.DrillbitEndpoint endpoint = 2;</code>
+     */
+    org.apache.drill.exec.proto.CoordinationProtos.DrillbitEndpoint getEndpoint();
+    /**
+     * <code>optional .exec.DrillbitEndpoint endpoint = 2;</code>
+     */
+    org.apache.drill.exec.proto.CoordinationProtos.DrillbitEndpointOrBuilder getEndpointOrBuilder();
+  }
+  /**
+   * Protobuf type {@code exec.bit.BitHandshake}
+   */
+  public static final class BitHandshake extends
+      com.google.protobuf.GeneratedMessage
+      implements BitHandshakeOrBuilder {
+    // Use BitHandshake.newBuilder() to construct.
+    private BitHandshake(com.google.protobuf.GeneratedMessage.Builder<?> builder) {
+      super(builder);
+      this.unknownFields = builder.getUnknownFields();
+    }
+    private BitHandshake(boolean noInit) { this.unknownFields = com.google.protobuf.UnknownFieldSet.getDefaultInstance(); }
+
+    private static final BitHandshake defaultInstance;
+    public static BitHandshake getDefaultInstance() {
+      return defaultInstance;
+    }
+
+    public BitHandshake getDefaultInstanceForType() {
+      return defaultInstance;
+    }
+
+    private final com.google.protobuf.UnknownFieldSet unknownFields;
+    @java.lang.Override
+    public final com.google.protobuf.UnknownFieldSet
+        getUnknownFields() {
+      return this.unknownFields;
+    }
+    private BitHandshake(
+        com.google.protobuf.CodedInputStream input,
+        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+        throws com.google.protobuf.InvalidProtocolBufferException {
+      initFields();
+      int mutable_bitField0_ = 0;
+      com.google.protobuf.UnknownFieldSet.Builder unknownFields =
+          com.google.protobuf.UnknownFieldSet.newBuilder();
+      try {
+        boolean done = false;
+        while (!done) {
+          int tag = input.readTag();
+          switch (tag) {
+            case 0:
+              done = true;
+              break;
+            default: {
+              if (!parseUnknownField(input, unknownFields,
+                                     extensionRegistry, tag)) {
+                done = true;
+              }
+              break;
+            }
+            case 8: {
+              bitField0_ |= 0x00000001;
+              rpcVersion_ = input.readInt32();
+              break;
+            }
+            case 18: {
+              org.apache.drill.exec.proto.CoordinationProtos.DrillbitEndpoint.Builder subBuilder = null;
+              if (((bitField0_ & 0x00000002) == 0x00000002)) {
+                subBuilder = endpoint_.toBuilder();
+              }
+              endpoint_ = input.readMessage(org.apache.drill.exec.proto.CoordinationProtos.DrillbitEndpoint.PARSER, extensionRegistry);
+              if (subBuilder != null) {
+                subBuilder.mergeFrom(endpoint_);
+                endpoint_ = subBuilder.buildPartial();
+              }
+              bitField0_ |= 0x00000002;
+              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 org.apache.drill.exec.proto.ExecProtos.internal_static_exec_bit_BitHandshake_descriptor;
+    }
+
+    protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
+        internalGetFieldAccessorTable() {
+      return org.apache.drill.exec.proto.ExecProtos.internal_static_exec_bit_BitHandshake_fieldAccessorTable
+          .ensureFieldAccessorsInitialized(
+              org.apache.drill.exec.proto.ExecProtos.BitHandshake.class, org.apache.drill.exec.proto.ExecProtos.BitHandshake.Builder.class);
+    }
+
+    public static com.google.protobuf.Parser<BitHandshake> PARSER =
+        new com.google.protobuf.AbstractParser<BitHandshake>() {
+      public BitHandshake parsePartialFrom(
+          com.google.protobuf.CodedInputStream input,
+          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+          throws com.google.protobuf.InvalidProtocolBufferException {
+        return new BitHandshake(input, extensionRegistry);
+      }
+    };
+
+    @java.lang.Override
+    public com.google.protobuf.Parser<BitHandshake> getParserForType() {
+      return PARSER;
+    }
+
+    private int bitField0_;
+    // optional int32 rpc_version = 1;
+    public static final int RPC_VERSION_FIELD_NUMBER = 1;
+    private int rpcVersion_;
+    /**
+     * <code>optional int32 rpc_version = 1;</code>
+     */
+    public boolean hasRpcVersion() {
+      return ((bitField0_ & 0x00000001) == 0x00000001);
+    }
+    /**
+     * <code>optional int32 rpc_version = 1;</code>
+     */
+    public int getRpcVersion() {
+      return rpcVersion_;
+    }
+
+    // optional .exec.DrillbitEndpoint endpoint = 2;
+    public static final int ENDPOINT_FIELD_NUMBER = 2;
+    private org.apache.drill.exec.proto.CoordinationProtos.DrillbitEndpoint endpoint_;
+    /**
+     * <code>optional .exec.DrillbitEndpoint endpoint = 2;</code>
+     */
+    public boolean hasEndpoint() {
+      return ((bitField0_ & 0x00000002) == 0x00000002);
+    }
+    /**
+     * <code>optional .exec.DrillbitEndpoint endpoint = 2;</code>
+     */
+    public org.apache.drill.exec.proto.CoordinationProtos.DrillbitEndpoint getEndpoint() {
+      return endpoint_;
+    }
+    /**
+     * <code>optional .exec.DrillbitEndpoint endpoint = 2;</code>
+     */
+    public org.apache.drill.exec.proto.CoordinationProtos.DrillbitEndpointOrBuilder getEndpointOrBuilder() {
+      return endpoint_;
+    }
+
+    private void initFields() {
+      rpcVersion_ = 0;
+      endpoint_ = org.apache.drill.exec.proto.CoordinationProtos.DrillbitEndpoint.getDefaultInstance();
+    }
+    private byte memoizedIsInitialized = -1;
+    public final boolean isInitialized() {
+      byte isInitialized = memoizedIsInitialized;
+      if (isInitialized != -1) return isInitialized == 1;
+
+      memoizedIsInitialized = 1;
+      return true;
+    }
+
+    public void writeTo(com.google.protobuf.CodedOutputStream output)
+                        throws java.io.IOException {
+      getSerializedSize();
+      if (((bitField0_ & 0x00000001) == 0x00000001)) {
+        output.writeInt32(1, rpcVersion_);
+      }
+      if (((bitField0_ & 0x00000002) == 0x00000002)) {
+        output.writeMessage(2, endpoint_);
+      }
+      getUnknownFields().writeTo(output);
+    }
+
+    private int memoizedSerializedSize = -1;
+    public int getSerializedSize() {
+      int size = memoizedSerializedSize;
+      if (size != -1) return size;
+
+      size = 0;
+      if (((bitField0_ & 0x00000001) == 0x00000001)) {
+        size += com.google.protobuf.CodedOutputStream
+          .computeInt32Size(1, rpcVersion_);
+      }
+      if (((bitField0_ & 0x00000002) == 0x00000002)) {
+        size += com.google.protobuf.CodedOutputStream
+          .computeMessageSize(2, endpoint_);
+      }
+      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 org.apache.drill.exec.proto.ExecProtos.BitHandshake parseFrom(
+        com.google.protobuf.ByteString data)
+        throws com.google.protobuf.InvalidProtocolBufferException {
+      return PARSER.parseFrom(data);
+    }
+    public static org.apache.drill.exec.proto.ExecProtos.BitHandshake parseFrom(
+        com.google.protobuf.ByteString data,
+        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+        throws com.google.protobuf.InvalidProtocolBufferException {
+      return PARSER.parseFrom(data, extensionRegistry);
+    }
+    public static org.apache.drill.exec.proto.ExecProtos.BitHandshake parseFrom(byte[] data)
+        throws com.google.protobuf.InvalidProtocolBufferException {
+      return PARSER.parseFrom(data);
+    }
+    public static org.apache.drill.exec.proto.ExecProtos.BitHandshake parseFrom(
+        byte[] data,
+        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+        throws com.google.protobuf.InvalidProtocolBufferException {
+      return PARSER.parseFrom(data, extensionRegistry);
+    }
+    public static org.apache.drill.exec.proto.ExecProtos.BitHandshake parseFrom(java.io.InputStream input)
+        throws java.io.IOException {
+      return PARSER.parseFrom(input);
+    }
+    public static org.apache.drill.exec.proto.ExecProtos.BitHandshake parseFrom(
+        java.io.InputStream input,
+        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+        throws java.io.IOException {
+      return PARSER.parseFrom(input, extensionRegistry);
+    }
+    public static org.apache.drill.exec.proto.ExecProtos.BitHandshake parseDelimitedFrom(java.io.InputStream input)
+        throws java.io.IOException {
+      return PARSER.parseDelimitedFrom(input);
+    }
+    public static org.apache.drill.exec.proto.ExecProtos.BitHandshake parseDelimitedFrom(
+        java.io.InputStream input,
+        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+        throws java.io.IOException {
+      return PARSER.parseDelimitedFrom(input, extensionRegistry);
+    }
+    public static org.apache.drill.exec.proto.ExecProtos.BitHandshake parseFrom(
+        com.google.protobuf.CodedInputStream input)
+        throws java.io.IOException {
+      return PARSER.parseFrom(input);
+    }
+    public static org.apache.drill.exec.proto.ExecProtos.BitHandshake parseFrom(
+        com.google.protobuf.CodedInputStream input,
+        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+        throws java.io.IOException {
+      return PARSER.parseFrom(input, extensionRegistry);
+    }
+
+    public static Builder newBuilder() { return Builder.create(); }
+    public Builder newBuilderForType() { return newBuilder(); }
+    public static Builder newBuilder(org.apache.drill.exec.proto.ExecProtos.BitHandshake prototype) {
+      return newBuilder().mergeFrom(prototype);
+    }
+    public Builder toBuilder() { return newBuilder(this); }
+
+    @java.lang.Override
+    protected Builder newBuilderForType(
+        com.google.protobuf.GeneratedMessage.BuilderParent parent) {
+      Builder builder = new Builder(parent);
+      return builder;
+    }
+    /**
+     * Protobuf type {@code exec.bit.BitHandshake}
+     */
+    public static final class Builder extends
+        com.google.protobuf.GeneratedMessage.Builder<Builder>
+       implements org.apache.drill.exec.proto.ExecProtos.BitHandshakeOrBuilder {
+      public static final com.google.protobuf.Descriptors.Descriptor
+          getDescriptor() {
+        return org.apache.drill.exec.proto.ExecProtos.internal_static_exec_bit_BitHandshake_descriptor;
+      }
+
+      protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
+          internalGetFieldAccessorTable() {
+        return org.apache.drill.exec.proto.ExecProtos.internal_static_exec_bit_BitHandshake_fieldAccessorTable
+            .ensureFieldAccessorsInitialized(
+                org.apache.drill.exec.proto.ExecProtos.BitHandshake.class, org.apache.drill.exec.proto.ExecProtos.BitHandshake.Builder.class);
+      }
+
+      // Construct using org.apache.drill.exec.proto.ExecProtos.BitHandshake.newBuilder()
+      private Builder() {
+        maybeForceBuilderInitialization();
+      }
+
+      private Builder(
+          com.google.protobuf.GeneratedMessage.BuilderParent parent) {
+        super(parent);
+        maybeForceBuilderInitialization();
+      }
+      private void maybeForceBuilderInitialization() {
+        if (com.google.protobuf.GeneratedMessage.alwaysUseFieldBuilders) {
+          getEndpointFieldBuilder();
+        }
+      }
+      private static Builder create() {
+        return new Builder();
+      }
+
+      public Builder clear() {
+        super.clear();
+        rpcVersion_ = 0;
+        bitField0_ = (bitField0_ & ~0x00000001);
+        if (endpointBuilder_ == null) {
+          endpoint_ = org.apache.drill.exec.proto.CoordinationProtos.DrillbitEndpoint.getDefaultInstance();
+        } else {
+          endpointBuilder_.clear();
+        }
+        bitField0_ = (bitField0_ & ~0x00000002);
+        return this;
+      }
+
+      public Builder clone() {
+        return create().mergeFrom(buildPartial());
+      }
+
+      public com.google.protobuf.Descriptors.Descriptor
+          getDescriptorForType() {
+        return org.apache.drill.exec.proto.ExecProtos.internal_static_exec_bit_BitHandshake_descriptor;
+      }
+
+      public org.apache.drill.exec.proto.ExecProtos.BitHandshake getDefaultInstanceForType() {
+        return org.apache.drill.exec.proto.ExecProtos.BitHandshake.getDefaultInstance();
+      }
+
+      public org.apache.drill.exec.proto.ExecProtos.BitHandshake build() {
+        org.apache.drill.exec.proto.ExecProtos.BitHandshake result = buildPartial();
+        if (!result.isInitialized()) {
+          throw newUninitializedMessageException(result);
+        }
+        return result;
+      }
+
+      public org.apache.drill.exec.proto.ExecProtos.BitHandshake buildPartial() {
+        org.apache.drill.exec.proto.ExecProtos.BitHandshake result = new org.apache.drill.exec.proto.ExecProtos.BitHandshake(this);
+        int from_bitField0_ = bitField0_;
+        int to_bitField0_ = 0;
+        if (((from_bitField0_ & 0x00000001) == 0x00000001)) {
+          to_bitField0_ |= 0x00000001;
+        }
+        result.rpcVersion_ = rpcVersion_;
+        if (((from_bitField0_ & 0x00000002) == 0x00000002)) {
+          to_bitField0_ |= 0x00000002;
+        }
+        if (endpointBuilder_ == null) {
+          result.endpoint_ = endpoint_;
+        } else {
+          result.endpoint_ = endpointBuilder_.build();
+        }
+        result.bitField0_ = to_bitField0_;
+        onBuilt();
+        return result;
+      }
+
+      public Builder mergeFrom(com.google.protobuf.Message other) {
+        if (other instanceof org.apache.drill.exec.proto.ExecProtos.BitHandshake) {
+          return mergeFrom((org.apache.drill.exec.proto.ExecProtos.BitHandshake)other);
+        } else {
+          super.mergeFrom(other);
+          return this;
+        }
+      }
+
+      public Builder mergeFrom(org.apache.drill.exec.proto.ExecProtos.BitHandshake other) {
+        if (other == org.apache.drill.exec.proto.ExecProtos.BitHandshake.getDefaultInstance()) return this;
+        if (other.hasRpcVersion()) {
+          setRpcVersion(other.getRpcVersion());
+        }
+        if (other.hasEndpoint()) {
+          mergeEndpoint(other.getEndpoint());
+        }
+        this.mergeUnknownFields(other.getUnknownFields());
+        return this;
+      }
+
+      public final boolean isInitialized() {
+        return true;
+      }
+
+      public Builder mergeFrom(
+          com.google.protobuf.CodedInputStream input,
+          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+          throws java.io.IOException {
+        org.apache.drill.exec.proto.ExecProtos.BitHandshake parsedMessage = null;
+        try {
+          parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry);
+        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
+          parsedMessage = (org.apache.drill.exec.proto.ExecProtos.BitHandshake) e.getUnfinishedMessage();
+          throw e;
+        } finally {
+          if (parsedMessage != null) {
+            mergeFrom(parsedMessage);
+          }
+        }
+        return this;
+      }
+      private int bitField0_;
+
+      // optional int32 rpc_version = 1;
+      private int rpcVersion_ ;
+      /**
+       * <code>optional int32 rpc_version = 1;</code>
+       */
+      public boolean hasRpcVersion() {
+        return ((bitField0_ & 0x00000001) == 0x00000001);
+      }
+      /**
+       * <code>optional int32 rpc_version = 1;</code>
+       */
+      public int getRpcVersion() {
+        return rpcVersion_;
+      }
+      /**
+       * <code>optional int32 rpc_version = 1;</code>
+       */
+      public Builder setRpcVersion(int value) {
+        bitField0_ |= 0x00000001;
+        rpcVersion_ = value;
+        onChanged();
+        return this;
+      }
+      /**
+       * <code>optional int32 rpc_version = 1;</code>
+       */
+      public Builder clearRpcVersion() {
+        bitField0_ = (bitField0_ & ~0x00000001);
+        rpcVersion_ = 0;
+        onChanged();
+        return this;
+      }
+
+      // optional .exec.DrillbitEndpoint endpoint = 2;
+      private org.apache.drill.exec.proto.CoordinationProtos.DrillbitEndpoint endpoint_ = org.apache.drill.exec.proto.CoordinationProtos.DrillbitEndpoint.getDefaultInstance();
+      private com.google.protobuf.SingleFieldBuilder<
+          org.apache.drill.exec.proto.CoordinationProtos.DrillbitEndpoint, org.apache.drill.exec.proto.CoordinationProtos.DrillbitEndpoint.Builder, org.apache.drill.exec.proto.CoordinationProtos.DrillbitEndpointOrBuilder> endpointBuilder_;
+      /**
+       * <code>optional .exec.DrillbitEndpoint endpoint = 2;</code>
+       */
+      public boolean hasEndpoint() {
+        return ((bitField0_ & 0x00000002) == 0x00000002);
+      }
+      /**
+       * <code>optional .exec.DrillbitEndpoint endpoint = 2;</code>
+       */
+      public org.apache.drill.exec.proto.CoordinationProtos.DrillbitEndpoint getEndpoint() {
+        if (endpointBuilder_ == null) {
+          return endpoint_;
+        } else {
+          return endpointBuilder_.getMessage();
+        }
+      }
+      /**
+       * <code>optional .exec.DrillbitEndpoint endpoint = 2;</code>
+       */
+      public Builder setEndpoint(org.apache.drill.exec.proto.CoordinationProtos.DrillbitEndpoint value) {
+        if (endpointBuilder_ == null) {
+          if (value == null) {
+            throw new NullPointerException();
+          }
+          endpoint_ = value;
+          onChanged();
+        } else {
+          endpointBuilder_.setMessage(value);
+        }
+        bitField0_ |= 0x00000002;
+        return this;
+      }
+      /**
+       * <code>optional .exec.DrillbitEndpoint endpoint = 2;</code>
+       */
+      public Builder setEndpoint(
+          org.apache.drill.exec.proto.CoordinationProtos.DrillbitEndpoint.Builder builderForValue) {
+        if (endpointBuilder_ == null) {
+          endpoint_ = builderForValue.build();
+          onChanged();
+        } else {
+          endpointBuilder_.setMessage(builderForValue.build());
+        }
+        bitField0_ |= 0x00000002;
+        return this;
+      }
+      /**
+       * <code>optional .exec.DrillbitEndpoint endpoint = 2;</code>
+       */
+      public Builder mergeEndpoint(org.apache.drill.exec.proto.CoordinationProtos.DrillbitEndpoint value) {
+        if (endpointBuilder_ == null) {
+          if (((bitField0_ & 0x00000002) == 0x00000002) &&
+              endpoint_ != org.apache.drill.exec.proto.CoordinationProtos.DrillbitEndpoint.getDefaultInstance()) {
+            endpoint_ =
+              org.apache.drill.exec.proto.CoordinationProtos.DrillbitEndpoint.newBuilder(endpoint_).mergeFrom(value).buildPartial();
+          } else {
+            endpoint_ = value;
+          }
+          onChanged();
+        } else {
+          endpointBuilder_.mergeFrom(value);
+        }
+        bitField0_ |= 0x00000002;
+        return this;
+      }
+      /**
+       * <code>optional .exec.DrillbitEndpoint endpoint = 2;</code>
+       */
+      public Builder clearEndpoint() {
+        if (endpointBuilder_ == null) {
+          endpoint_ = org.apache.drill.exec.proto.CoordinationProtos.DrillbitEndpoint.getDefaultInstance();
+          onChanged();
+        } else {
+          endpointBuilder_.clear();
+        }
+        bitField0_ = (bitField0_ & ~0x00000002);
+        return this;
+      }
+      /**
+       * <code>optional .exec.DrillbitEndpoint endpoint = 2;</code>
+       */
+      public org.apache.drill.exec.proto.CoordinationProtos.DrillbitEndpoint.Builder getEndpointBuilder() {
+        bitField0_ |= 0x00000002;
+        onChanged();
+        return getEndpointFieldBuilder().getBuilder();
+      }
+      /**
+       * <code>optional .exec.DrillbitEndpoint endpoint = 2;</code>
+       */
+      public org.apache.drill.exec.proto.CoordinationProtos.DrillbitEndpointOrBuilder getEndpointOrBuilder() {
+        if (endpointBuilder_ != null) {
+          return endpointBuilder_.getMessageOrBuilder();
+        } else {
+          return endpoint_;
+        }
+      }
+      /**
+       * <code>optional .exec.DrillbitEndpoint endpoint = 2;</code>
+       */
+      private com.google.protobuf.SingleFieldBuilder<
+          org.apache.drill.exec.proto.CoordinationProtos.DrillbitEndpoint, org.apache.drill.exec.proto.CoordinationProtos.DrillbitEndpoint.Builder, org.apache.drill.exec.proto.CoordinationProtos.DrillbitEndpointOrBuilder> 
+          getEndpointFieldBuilder() {
+        if (endpointBuilder_ == null) {
+          endpointBuilder_ = new com.google.protobuf.SingleFieldBuilder<
+              org.apache.drill.exec.proto.CoordinationProtos.DrillbitEndpoint, org.apache.drill.exec.proto.CoordinationProtos.DrillbitEndpoint.Builder, org.apache.drill.exec.proto.CoordinationProtos.DrillbitEndpointOrBuilder>(
+                  endpoint_,
+                  getParentForChildren(),
+                  isClean());
+          endpoint_ = null;
+        }
+        return endpointBuilder_;
+      }
+
+      // @@protoc_insertion_point(builder_scope:exec.bit.BitHandshake)
+    }
+
+    static {
+      defaultInstance = new BitHandshake(true);
+      defaultInstance.initFields();
+    }
+
+    // @@protoc_insertion_point(class_scope:exec.bit.BitHandshake)
+  }
+
+  public interface BitBatchChunkOrBuilder
+      extends com.google.protobuf.MessageOrBuilder {
+  }
+  /**
+   * Protobuf type {@code exec.bit.BitBatchChunk}
+   */
+  public static final class BitBatchChunk extends
+      com.google.protobuf.GeneratedMessage
+      implements BitBatchChunkOrBuilder {
+    // Use BitBatchChunk.newBuilder() to construct.
+    private BitBatchChunk(com.google.protobuf.GeneratedMessage.Builder<?> builder) {
+      super(builder);
+      this.unknownFields = builder.getUnknownFields();
+    }
+    private BitBatchChunk(boolean noInit) { this.unknownFields = com.google.protobuf.UnknownFieldSet.getDefaultInstance(); }
+
+    private static final BitBatchChunk defaultInstance;
+    public static BitBatchChunk getDefaultInstance() {
+      return defaultInstance;
+    }
+
+    public BitBatchChunk getDefaultInstanceForType() {
+      return defaultInstance;
+    }
+
+    private final com.google.protobuf.UnknownFieldSet unknownFields;
+    @java.lang.Override
+    public final com.google.protobuf.UnknownFieldSet
+        getUnknownFields() {
+      return this.unknownFields;
+    }
+    private BitBatchChunk(
+        com.google.protobuf.CodedInputStream input,
+        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;
+            }
+          }
+        }
+      } 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 org.apache.drill.exec.proto.ExecProtos.internal_static_exec_bit_BitBatchChunk_descriptor;
+    }
+
+    protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
+        internalGetFieldAccessorTable() {
+      return org.apache.drill.exec.proto.ExecProtos.internal_static_exec_bit_BitBatchChunk_fieldAccessorTable
+          .ensureFieldAccessorsInitialized(
+              org.apache.drill.exec.proto.ExecProtos.BitBatchChunk.class, org.apache.drill.exec.proto.ExecProtos.BitBatchChunk.Builder.class);
+    }
+
+    public static com.google.protobuf.Parser<BitBatchChunk> PARSER =
+        new com.google.protobuf.AbstractParser<BitBatchChunk>() {
+      public BitBatchChunk parsePartialFrom(
+          com.google.protobuf.CodedInputStream input,
+          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+          throws com.google.protobuf.InvalidProtocolBufferException {
+        return new BitBatchChunk(input, extensionRegistry);
+      }
+    };
+
+    @java.lang.Override
+    public com.google.protobuf.Parser<BitBatchChunk> getParserForType() {
+      return PARSER;
+    }
+
+    private void initFields() {
+    }
+    private byte memoizedIsInitialized = -1;
+    public final boolean isInitialized() {
+      byte isInitialized = memoizedIsInitialized;
+      if (isInitialized != -1) return isInitialized == 1;
+
+      memoizedIsInitialized = 1;
+      return true;
+    }
+
+    public void writeTo(com.google.protobuf.CodedOutputStream output)
+                        throws java.io.IOException {
+      getSerializedSize();
+      getUnknownFields().writeTo(output);
+    }
+
+    private int memoizedSerializedSize = -1;
+    public int getSerializedSize() {
+      int size = memoizedSerializedSize;
+      if (size != -1) return size;
+
+      size = 0;
+      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 org.apache.drill.exec.proto.ExecProtos.BitBatchChunk parseFrom(
+        com.google.protobuf.ByteString data)
+        throws com.google.protobuf.InvalidProtocolBufferException {
+      return PARSER.parseFrom(data);
+    }
+    public static org.apache.drill.exec.proto.ExecProtos.BitBatchChunk parseFrom(
+        com.google.protobuf.ByteString data,
+        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+        throws com.google.protobuf.InvalidProtocolBufferException {
+      return PARSER.parseFrom(data, extensionRegistry);
+    }
+    public static org.apache.drill.exec.proto.ExecProtos.BitBatchChunk parseFrom(byte[] data)
+        throws com.google.protobuf.InvalidProtocolBufferException {
+      return PARSER.parseFrom(data);
+    }
+    public static org.apache.drill.exec.proto.ExecProtos.BitBatchChunk parseFrom(
+        byte[] data,
+        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+        throws com.google.protobuf.InvalidProtocolBufferException {
+      return PARSER.parseFrom(data, extensionRegistry);
+    }
+    public static org.apache.drill.exec.proto.ExecProtos.BitBatchChunk parseFrom(java.io.InputStream input)
+        throws java.io.IOException {
+      return PARSER.parseFrom(input);
+    }
+    public static org.apache.drill.exec.proto.ExecProtos.BitBatchChunk parseFrom(
+        java.io.InputStream input,
+        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+        throws java.io.IOException {
+      return PARSER.parseFrom(input, extensionRegistry);
+    }
+    public static org.apache.drill.exec.proto.ExecProtos.BitBatchChunk parseDelimitedFrom(java.io.InputStream input)
+        throws java.io.IOException {
+      return PARSER.parseDelimitedFrom(input);
+    }
+    public static org.apache.drill.exec.proto.ExecProtos.BitBatchChunk parseDelimitedFrom(
+        java.io.InputStream input,
+        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+        throws java.io.IOException {
+      return PARSER.parseDelimitedFrom(input, extensionRegistry);
+    }
+    public static org.apache.drill.exec.proto.ExecProtos.BitBatchChunk parseFrom(
+        com.google.protobuf.CodedInputStream input)
+        throws java.io.IOException {
+      return PARSER.parseFrom(input);
+    }
+    public static org.apache.drill.exec.proto.ExecProtos.BitBatchChunk parseFrom(
+        com.google.protobuf.CodedInputStream input,
+        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+        throws java.io.IOException {
+      return PARSER.parseFrom(input, extensionRegistry);
+    }
+
+    public static Builder newBuilder() { return Builder.create(); }
+    public Builder newBuilderForType() { return newBuilder(); }
+    public static Builder newBuilder(org.apache.drill.exec.proto.ExecProtos.BitBatchChunk prototype) {
+      return newBuilder().mergeFrom(prototype);
+    }
+    public Builder toBuilder() { return newBuilder(this); }
+
+    @java.lang.Override
+    protected Builder newBuilderForType(
+        com.google.protobuf.GeneratedMessage.BuilderParent parent) {
+      Builder builder = new Builder(parent);
+      return builder;
+    }
+    /**
+     * Protobuf type {@code exec.bit.BitBatchChunk}
+     */
+    public static final class Builder extends
+        com.google.protobuf.GeneratedMessage.Builder<Builder>
+       implements org.apache.drill.exec.proto.ExecProtos.BitBatchChunkOrBuilder {
+      public static final com.google.protobuf.Descriptors.Descriptor
+          getDescriptor() {
+        return org.apache.drill.exec.proto.ExecProtos.internal_static_exec_bit_BitBatchChunk_descriptor;
+      }
+
+      protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
+          internalGetFieldAccessorTable() {
+        return org.apache.drill.exec.proto.ExecProtos.internal_static_exec_bit_BitBatchChunk_fieldAccessorTable
+            .ensureFieldAccessorsInitialized(
+                org.apache.drill.exec.proto.ExecProtos.BitBatchChunk.class, org.apache.drill.exec.proto.ExecProtos.BitBatchChunk.Builder.class);
+      }
+
+      // Construct using org.apache.drill.exec.proto.ExecProtos.BitBatchChunk.newBuilder()
+      private Builder() {
+        maybeForceBuilderInitialization();
+      }
+
+      private Builder(
+          com.google.protobuf.GeneratedMessage.BuilderParent parent) {
+        super(parent);
+        maybeForceBuilderInitialization();
+      }
+      private void maybeForceBuilderInitialization() {
+        if (com.google.protobuf.GeneratedMessage.alwaysUseFieldBuilders) {
+        }
+      }
+      private static Builder create() {
+        return new Builder();
+      }
+
+      public Builder clear() {
+        super.clear();
+        return this;
+      }
+
+      public Builder clone() {
+        return create().mergeFrom(buildPartial());
+      }
+
+      public com.google.protobuf.Descriptors.Descriptor
+          getDescriptorForType() {
+        return org.apache.drill.exec.proto.ExecProtos.internal_static_exec_bit_BitBatchChunk_descriptor;
+      }
+
+      public org.apache.drill.exec.proto.ExecProtos.BitBatchChunk getDefaultInstanceForType() {
+        return org.apache.drill.exec.proto.ExecProtos.BitBatchChunk.getDefaultInstance();
+      }
+
+      public org.apache.drill.exec.proto.ExecProtos.BitBatchChunk build() {
+        org.apache.drill.exec.proto.ExecProtos.BitBatchChunk result = buildPartial();
+        if (!result.isInitialized()) {
+          throw newUninitializedMessageException(result);
+        }
+        return result;
+      }
+
+      public org.apache.drill.exec.proto.ExecProtos.BitBatchChunk buildPartial() {
+        org.apache.drill.exec.proto.ExecProtos.BitBatchChunk result = new org.apache.drill.exec.proto.ExecProtos.BitBatchChunk(this);
+        onBuilt();
+        return result;
+      }
+
+      public Builder mergeFrom(com.google.protobuf.Message other) {
+        if (other instanceof org.apache.drill.exec.proto.ExecProtos.BitBatchChunk) {
+          return mergeFrom((org.apache.drill.exec.proto.ExecProtos.BitBatchChunk)other);
+        } else {
+          super.mergeFrom(other);
+          return this;
+        }
+      }
+
+      public Builder mergeFrom(org.apache.drill.exec.proto.ExecProtos.BitBatchChunk other) {
+        if (other == org.apache.drill.exec.proto.ExecProtos.BitBatchChunk.getDefaultInstance()) return this;
+        this.mergeUnknownFields(other.getUnknownFields());
+        return this;
+      }
+
+      public final boolean isInitialized() {
+        return true;
+      }
+
+      public Builder mergeFrom(
+          com.google.protobuf.CodedInputStream input,
+          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+          throws java.io.IOException {
+        org.apache.drill.exec.proto.ExecProtos.BitBatchChunk parsedMessage = null;
+        try {
+          parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry);
+        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
+          parsedMessage = (org.apache.drill.exec.proto.ExecProtos.BitBatchChunk) e.getUnfinishedMessage();
+          throw e;
+        } finally {
+          if (parsedMessage != null) {
+            mergeFrom(parsedMessage);
+          }
+        }
+        return this;
+      }
+
+      // @@protoc_insertion_point(builder_scope:exec.bit.BitBatchChunk)
+    }
+
+    static {
+      defaultInstance = new BitBatchChunk(true);
+      defaultInstance.initFields();
+    }
+
+    // @@protoc_insertion_point(class_scope:exec.bit.BitBatchChunk)
+  }
+
+  public interface BitStatusOrBuilder
+      extends com.google.protobuf.MessageOrBuilder {
+
+    // repeated .exec.bit.FragmentStatus fragment_status = 1;
+    /**
+     * <code>repeated .exec.bit.FragmentStatus fragment_status = 1;</code>
+     */
+    java.util.List<org.apache.drill.exec.proto.ExecProtos.FragmentStatus> 
+        getFragmentStatusList();
+    /**
+     * <code>repeated .exec.bit.FragmentStatus fragment_status = 1;</code>
+     */
+    org.apache.drill.exec.proto.ExecProtos.FragmentStatus getFragmentStatus(int index);
+    /**
+     * <code>repeated .exec.bit.FragmentStatus fragment_status = 1;</code>
+     */
+    int getFragmentStatusCount();
+    /**
+     * <code>repeated .exec.bit.FragmentStatus fragment_status = 1;</code>
+     */
+    java.util.List<? extends org.apache.drill.exec.proto.ExecProtos.FragmentStatusOrBuilder> 
+        getFragmentStatusOrBuilderList();
+    /**
+     * <code>repeated .exec.bit.FragmentStatus fragment_status = 1;</code>
+     */
+    org.apache.drill.exec.proto.ExecProtos.FragmentStatusOrBuilder getFragmentStatusOrBuilder(
+        int index);
+  }
+  /**
+   * Protobuf type {@code exec.bit.BitStatus}
+   */
+  public static final class BitStatus extends
+      com.google.protobuf.GeneratedMessage
+      implements BitStatusOrBuilder {
+    // Use BitStatus.newBuilder() to construct.
+    private BitStatus(com.google.protobuf.GeneratedMessage.Builder<?> builder) {
+      super(builder);
+      this.unknownFields = builder.getUnknownFields();
+    }
+    private BitStatus(boolean noInit) { this.unknownFields = com.google.protobuf.UnknownFieldSet.getDefaultInstance(); }
+
+    private static final BitStatus defaultInstance;
+    public static BitStatus getDefaultInstance() {
+      return defaultInstance;
+    }
+
+    public BitStatus getDefaultInstanceForType() {
+      return defaultInstance;
+    }
+
+    private final com.google.protobuf.UnknownFieldSet unknownFields;
+    @java.lang.Override
+    public final com.google.protobuf.UnknownFieldSet
+        getUnknownFields() {
+      return this.unknownFields;
+    }
+    private BitStatus(
+        com.google.protobuf.CodedInputStream input,
+        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+        throws com.google.protobuf.InvalidProtocolBufferException {
+      initFields();
+      int mutable_bitField0_ = 0;
+      com.google.protobuf.UnknownFieldSet.Builder unknownFields =
+          com.google.protobuf.UnknownFieldSet.newBuilder();
+      try {
+        boolean done = false;
+        while (!done) {
+          int tag = input.readTag();
+          switch (tag) {
+            case 0:
+              done = true;
+              break;
+            default: {
+              if (!parseUnknownField(input, unknownFields,
+                                     extensionRegistry, tag)) {
+                done = true;
+              }
+              break;
+            }
+            case 10: {
+              if (!((mutable_bitField0_ & 0x00000001) == 0x00000001)) {
+                fragmentStatus_ = new java.util.ArrayList<org.apache.drill.exec.proto.ExecProtos.FragmentStatus>();
+                mutable_bitField0_ |= 0x00000001;
+              }
+              fragmentStatus_.add(input.readMessage(org.apache.drill.exec.proto.ExecProtos.FragmentStatus.PARSER, extensionRegistry));
+              break;
+            }
+          }
+        }
+      } catch (com.google.protobuf.InvalidProtocolBufferException e) {
+        throw e.setUnfinishedMessage(this);
+      } catch (java.io.IOException e) {
+        throw new com.google.protobuf.InvalidProtocolBufferException(
+            e.getMessage()).setUnfinishedMessage(this);
+      } finally {
+        if (((mutable_bitField0_ & 0x00000001) == 0x00000001)) {
+          fragmentStatus_ = java.util.Collections.unmodifiableList(fragmentStatus_);
+        }
+        this.unknownFields = unknownFields.build();
+        makeExtensionsImmutable();
+      }
+    }
+    public static final com.google.protobuf.Descriptors.Descriptor
+        getDescriptor() {
+      return org.apache.drill.exec.proto.ExecProtos.internal_static_exec_bit_BitStatus_descriptor;
+    }
+
+    protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
+        internalGetFieldAccessorTable() {
+      return org.apache.drill.exec.proto.ExecProtos.internal_static_exec_bit_BitStatus_fieldAccessorTable
+          .ensureFieldAccessorsInitialized(
+              org.apache.drill.exec.proto.ExecProtos.BitStatus.class, org.apache.drill.exec.proto.ExecProtos.BitStatus.Builder.class);
+    }
+
+    public static com.google.protobuf.Parser<BitStatus> PARSER =
+        new com.google.protobuf.AbstractParser<BitStatus>() {
+      public BitStatus parsePartialFrom(
+          com.google.protobuf.CodedInputStream input,
+          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+          throws com.google.protobuf.InvalidProtocolBufferException {
+        return new BitStatus(input, extensionRegistry);
+      }
+    };
+
+    @java.lang.Override
+    public com.google.protobuf.Parser<BitStatus> getParserForType() {
+      return PARSER;
+    }
+
+    // repeated .exec.bit.FragmentStatus fragment_status = 1;
+    public static final int FRAGMENT_STATUS_FIELD_NUMBER = 1;
+    private java.util.List<org.apache.drill.exec.proto.ExecProtos.FragmentStatus> fragmentStatus_;
+    /**
+     * <code>repeated .exec.bit.FragmentStatus fragment_status = 1;</code>
+     */
+    public java.util.List<org.apache.drill.exec.proto.ExecProtos.FragmentStatus> getFragmentStatusList() {
+      return fragmentStatus_;
+    }
+    /**
+     * <code>repeated .exec.bit.FragmentStatus fragment_status = 1;</code>
+     */
+    public java.util.List<? extends org.apache.drill.exec.proto.ExecProtos.FragmentStatusOrBuilder> 
+        getFragmentStatusOrBuilderList() {
+      return fragmentStatus_;
+    }
+    /**
+     * <code>repeated .exec.bit.FragmentStatus fragment_status = 1;</code>
+     */
+    public int getFragmentStatusCount() {
+      return fragmentStatus_.size();
+    }
+    /**
+     * <code>repeated .exec.bit.FragmentStatus fragment_status = 1;</code>
+     */
+    public org.apache.drill.exec.proto.ExecProtos.FragmentStatus getFragmentStatus(int index) {
+      return fragmentStatus_.get(index);
+    }
+    /**
+     * <code>repeated .exec.bit.FragmentStatus fragment_status = 1;</code>
+     */
+    public org.apache.drill.exec.proto.ExecProtos.FragmentStatusOrBuilder getFragmentStatusOrBuilder(
+        int index) {
+      return fragmentStatus_.get(index);
+    }
+
+    private void initFields() {
+      fragmentStatus_ = java.util.Collections.emptyList();
+    }
+    private byte memoizedIsInitialized = -1;
+    public final boolean isInitialized() {
+      byte isInitialized = memoizedIsInitialized;
+      if (isInitialized != -1) return isInitialized == 1;
+
+      memoizedIsInitialized = 1;
+      return true;
+    }
+
+    public void writeTo(com.google.protobuf.CodedOutputStream output)
+                        throws java.io.IOException {
+      getSerializedSize();
+      for (int i = 0; i < fragmentStatus_.size(); i++) {
+        output.writeMessage(1, fragmentStatus_.get(i));
+      }
+      getUnknownFields().writeTo(output);
+    }
+
+    private int memoizedSerializedSize = -1;
+    public int getSerializedSize() {
+      int size = memoizedSerializedSize;
+      if (size != -1) return size;
+
+      size = 0;
+      for (int i = 0; i < fragmentStatus_.size(); i++) {
+        size += com.google.protobuf.CodedOutputStream
+          .computeMessageSize(1, fragmentStatus_.get(i));
+      }
+      size += getUnknownFields().getSerializedSize();
+      memoizedSerializedSize = size;
+      return size;
+    }
+
+    private static final long serialVersionUID = 0L;
+    @java.lang.Override
+    protected java.lang.Object writeReplace()
+        throws java.io.ObjectStreamException {
+      return super.writeReplace();
+    }
+
+    public static org.apache.drill.exec.proto.ExecProtos.BitStatus parseFrom(
+        com.google.protobuf.ByteString data)
+        throws com.google.protobuf.InvalidProtocolBufferException {
+      return PARSER.parseFrom(data);
+    }
+    public static org.apache.drill.exec.proto.ExecProtos.BitStatus parseFrom(
+        com.google.protobuf.ByteString data,
+        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+        throws com.google.protobuf.InvalidProtocolBufferException {
+      return PARSER.parseFrom(data, extensionRegistry);
+    }
+    public static org.apache.drill.exec.proto.ExecProtos.BitStatus parseFrom(byte[] data)
+        throws com.google.protobuf.InvalidProtocolBufferException {
+      return PARSER.parseFrom(data);
+    }
+    public static org.apache.drill.exec.proto.ExecProtos.BitStatus parseFrom(
+        byte[] data,
+        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+        throws com.google.protobuf.InvalidProtocolBufferException {
+      return PARSER.parseFrom(data, extensionRegistry);
+    }
+    public static org.apache.drill.exec.proto.ExecProtos.BitStatus parseFrom(java.io.InputStream input)
+        throws java.io.IOException {
+      return PARSER.parseFrom(input);
+    }
+    public static org.apache.drill.exec.proto.ExecProtos.BitStatus parseFrom(
+        java.io.InputStream input,
+        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+        throws java.io.IOException {
+      return PARSER.parseFrom(input, extensionRegistry);
+    }
+    public static org.apache.drill.exec.proto.ExecProtos.BitStatus parseDelimitedFrom(java.io.InputStream input)
+        throws java.io.IOException {
+      return PARSER.parseDelimitedFrom(input);
+    }
+    public static org.apache.drill.exec.proto.ExecProtos.BitStatus parseDelimitedFrom(
+        java.io.InputStream input,
+        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+        throws java.io.IOException {
+      return PARSER.parseDelimitedFrom(input, extensionRegistry);
+    }
+    public static org.apache.drill.exec.proto.ExecProtos.BitStatus parseFrom(
+        com.google.protobuf.CodedInputStream input)
+        throws java.io.IOException {
+      return PARSER.parseFrom(input);
+    }
+    public static org.apache.drill.exec.proto.ExecProtos.BitStatus parseFrom(
+        com.google.protobuf.CodedInputStream input,
+        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+        throws java.io.IOException {
+      return PARSER.parseFrom(input, extensionRegistry);
+    }
+
+    public static Builder newBuilder() { return Builder.create(); }
+    public Builder newBuilderForType() { return newBuilder(); }
+    public static Builder newBuilder(org.apache.drill.exec.proto.ExecProtos.BitStatus prototype) {
+      return newBuilder().mergeFrom(prototype);
+    }
+    public Builder toBuilder() { return newBuilder(this); }
+
+    @java.lang.Override
+    protected Builder newBuilderForType(
+        com.google.protobuf.GeneratedMessage.BuilderParent parent) {
+      Builder builder = new Builder(parent);
+      return builder;
+    }
+    /**
+     * Protobuf type {@code exec.bit.BitStatus}
+     */
+    public static final class Builder extends
+        com.google.protobuf.GeneratedMessage.Builder<Builder>
+       implements org.apache.drill.exec.proto.ExecProtos.BitStatusOrBuilder {
+      public static final com.google.protobuf.Descriptors.Descriptor
+          getDescriptor() {
+        return org.apache.drill.exec.proto.ExecProtos.internal_static_exec_bit_BitStatus_descriptor;
+      }
+
+      protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
+          internalGetFieldAccessorTable() {
+        return org.apache.drill.exec.proto.ExecProtos.internal_static_exec_bit_BitStatus_fieldAccessorTable
+            .ensureFieldAccessorsInitialized(
+                org.apache.drill.exec.proto.ExecProtos.BitStatus.class, org.apache.drill.exec.proto.ExecProtos.BitStatus.Builder.class);
+      }
+
+      // Construct using org.apache.drill.exec.proto.ExecProtos.BitStatus.newBuilder()
+      private Builder() {
+        maybeForceBuilderInitialization();
+      }
+
+      private Builder(
+          com.google.protobuf.GeneratedMessage.BuilderParent parent) {
+        super(parent);
+        maybeForceBuilderInitialization();
+      }
+      private void maybeForceBuilderInitialization() {
+        if (com.google.protobuf.GeneratedMessage.alwaysUseFieldBuilders) {
+          getFragmentStatusFieldBuilder();
+        }
+      }
+      private static Builder create() {
+        return new Builder();
+      }
+
+      public Builder clear() {
+        super.clear();
+        if (fragmentStatusBuilder_ == null) {
+          fragmentStatus_ = java.util.Collections.emptyList();
+          bitField0_ = (bitField0_ & ~0x00000001);
+        } else {
+          fragmentStatusBuilder_.clear();
+        }
+        return this;
+      }
+
+      public Builder clone() {
+        return create().mergeFrom(buildPartial());
+      }
+
+      public com.google.protobuf.Descriptors.Descriptor
+          getDescriptorForType() {
+        return org.apache.drill.exec.proto.ExecProtos.internal_static_exec_bit_BitStatus_descriptor;
+      }
+
+      public org.apache.drill.exec.proto.ExecProtos.BitStatus getDefaultInstanceForType() {
+        return org.apache.drill.exec.proto.ExecProtos.BitStatus.getDefaultInstance();
+      }
+
+      public org.apache.drill.exec.proto.ExecProtos.BitStatus build() {
+        org.apache.drill.exec.proto.ExecProtos.BitStatus result = buildPartial();
+        if (!result.isInitialized()) {
+          throw newUninitializedMessageException(result);
+        }
+        return result;
+      }
+
+      public org.apache.drill.exec.proto.ExecProtos.BitStatus buildPartial() {
+        org.apache.drill.exec.proto.ExecProtos.BitStatus result = new org.apache.drill.exec.proto.ExecProtos.BitStatus(this);
+        int from_bitField0_ = bitField0_;
+        if (fragmentStatusBuilder_ == null) {
+          if (((bitField0_ & 0x00000001) == 0x00000001)) {
+            fragmentStatus_ = java.util.Collections.unmodifiableList(fragmentStatus_);
+            bitField0_ = (bitField0_ & ~0x00000001);
+          }
+          result.fragmentStatus_ = fragmentStatus_;
+        } else {
+          result.fragmentStatus_ = fragmentStatusBuilder_.build();
+        }
+        onBuilt();
+        return result;
+      }
+
+      public Builder mergeFrom(com.google.protobuf.Message other) {
+        if (other instanceof org.apache.drill.exec.proto.ExecProtos.BitStatus) {
+          return mergeFrom((org.apache.drill.exec.proto.ExecProtos.BitStatus)other);
+        } else {
+          super.mergeFrom(other);
+          return this;
+        }
+      }
+
+      public Builder mergeFrom(org.apache.drill.exec.proto.ExecProtos.BitStatus other) {
+        if (other == org.apache.drill.exec.proto.ExecProtos.BitStatus.getDefaultInstance()) return this;
+        if (fragmentStatusBuilder_ == null) {
+          if (!other.fragmentStatus_.isEmpty()) {
+            if (fragmentStatus_.isEmpty()) {
+              fragmentStatus_ = other.fragmentStatus_;
+              bitField0_ = (bitField0_ & ~0x00000001);
+            } else {
+              ensureFragmentStatusIsMutable();
+              fragmentStatus_.addAll(other.fragmentStatus_);
+            }
+            onChanged();
+          }
+        } else {
+          if (!other.fragmentStatus_.isEmpty()) {
+            if (fragmentStatusBuilder_.isEmpty()) {
+              fragmentStatusBuilder_.dispose();
+              fragmentStatusBuilder_ = null;
+              fragmentStatus_ = other.fragmentStatus_;
+              bitField0_ = (bitField0_ & ~0x00000001);
+              fragmentStatusBuilder_ = 
+                com.google.protobuf.GeneratedMessage.alwaysUseFieldBuilders ?
+                   getFragmentStatusFieldBuilder() : null;
+            } else {
+              fragmentStatusBuilder_.addAllMessages(other.fragmentStatus_);
+            }
+          }
+        }
+        this.mergeUnknownFields(other.getUnknownFields());
+        return this;
+      }
+
+      public final boolean isInitialized() {
+        return true;
+      }
+
+      public Builder mergeFrom(
+          com.google.protobuf.CodedInputStream input,
+          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+          throws java.io.IOException {
+        org.apache.drill.exec.proto.ExecProtos.BitStatus parsedMessage = null;
+        try {
+          parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry);
+        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
+          parsedMessage = (org.apache.drill.exec.proto.ExecProtos.BitStatus) e.getUnfinishedMessage();
+          throw e;
+        } finally {
+          if (parsedMessage != null) {
+            mergeFrom(parsedMessage);
+          }
+        }
+        return this;
+      }
+      private int bitField0_;
+
+      // repeated .exec.bit.FragmentStatus fragment_status = 1;
+      private java.util.List<org.apache.drill.exec.proto.ExecProtos.FragmentStatus> fragmentStatus_ =
+        java.util.Collections.emptyList();
+      private void ensureFragmentStatusIsMutable() {
+        if (!((bitField0_ & 0x00000001) == 0x00000001)) {
+          fragmentStatus_ = new java.util.ArrayList<org.apache.drill.exec.proto.ExecProtos.FragmentStatus>(fragmentStatus_);
+          bitField0_ |= 0x00000001;
+         }
+      }
+
+      private com.google.protobuf.RepeatedFieldBuilder<
+          org.apache.drill.exec.proto.ExecProtos.FragmentStatus, org.apache.drill.exec.proto.ExecProtos.FragmentStatus.Builder, org.apache.drill.exec.proto.ExecProtos.FragmentStatusOrBuilder> fragmentStatusBuilder_;
+
+      /**
+       * <code>repeated .exec.bit.FragmentStatus fragment_status = 1;</code>
+       */
+      public java.util.List<org.apache.drill.exec.proto.ExecProtos.FragmentStatus> getFragmentStatusList() {
+        if (fragmentStatusBuilder_ == null) {
+          return java.util.Collections.unmodifiableList(fragmentStatus_);
+        } else {
+          return fragmentStatusBuilder_.getMessageList();
+        }
+      }
+      /**
+       * <code>repeated .exec.bit.FragmentStatus fragment_status = 1;</code>
+       */
+      public int getFragmentStatusCount() {
+        if (fragmentStatusBuilder_ == null) {
+          return fragmentStatus_.size();
+        } else {
+          return fragmentStatusBuilder_.getCount();
+        }
+      }
+      /**
+       * <code>repeated .exec.bit.FragmentStatus fragment_status = 1;</code>
+       */
+      public org.apache.drill.exec.proto.ExecProtos.FragmentStatus getFragmentStatus(int index) {
+        if (fragmentStatusBuilder_ == null) {
+          return fragmentStatus_.get(index);
+        } else {
+          return fragmentStatusBuilder_.getMessage(index);
+        }
+      }
+      /**
+       * <code>repeated .exec.bit.FragmentStatus fragment_status = 1;</code>
+       */
+      public Builder setFragmentStatus(
+          int index, org.apache.drill.exec.proto.ExecProtos.FragmentStatus value) {
+        if (fragmentStatusBuilder_ == null) {
+          if (value == null) {
+            throw new NullPointerException();
+          }
+          ensureFragmentStatusIsMutable();
+          fragmentStatus_.set(index, value);
+          onChanged();
+        } else {
+          fragmentStatusBuilder_.setMessage(index, value);
+        }
+        return this;
+      }
+      /**
+       * <code>repeated .exec.bit.FragmentStatus fragment_status = 1;</code>
+       */
+      public Builder setFragmentStatus(
+          int index, org.apache.drill.exec.proto.ExecProtos.FragmentStatus.Builder builderForValue) {
+        if (fragmentStatusBuilder_ == null) {
+          ensureFragmentStatusIsMutable();
+          fragmentStatus_.set(index, builderForValue.build());
+          onChanged();
+        } else {
+          fragmentStatusBuilder_.setMessage(index, builderForValue.build());
+        }
+        return this;
+      }
+      /**
+       * <code>repeated .exec.bit.FragmentStatus fragment_status = 1;</code>
+       */
+      public Builder addFragmentStatus(org.apache.drill.exec.proto.ExecProtos.FragmentStatus value) {
+        if (fragmentStatusBuilder_ == null) {
+          if (value == null) {
+            throw new NullPointerException();
+          }
+          ensureFragmentStatusIsMutable();
+          fragmentStatus_.add(value);
+          onChanged();
+        } else {
+          fragmentStatusBuilder_.addMessage(value);
+        }
+        return this;
+      }
+      /**
+       * <code>repeated .exec.bit.FragmentStatus fragment_status = 1;</code>
+       */
+      public Builder addFragmentStatus(
+          int index, org.apache.drill.exec.proto.ExecProtos.FragmentStatus value) {
+        if (fragmentStatusBuilder_ == null) {
+          if (value == null) {
+            throw new NullPointerException();
+          }
+          ensureFragmentStatusIsMutable();
+          fragmentStatus_.add(index, value);
+          onChanged();
+        } else {
+          fragmentStatusBuilder_.addMessage(index, value);
+        }
+        return this;
+      }
+      /**
+       * <code>repeated .exec.bit.FragmentStatus fragment_status = 1;</code>
+       */
+      public Builder addFragmentStatus(
+          org.apache.drill.exec.proto.ExecProtos.FragmentStatus.Builder builderForValue) {
+        if (fragmentStatusBuilder_ == null) {
+          ensureFragmentStatusIsMutable();
+          fragmentStatus_.add(builderForValue.build());
+          onChanged();
+        } else {
+          fragmentStatusBuilder_.addMessage(builderForValue.build());
+        }
+        return this;
+      }
+      /**
+       * <code>repeated .exec.bit.FragmentStatus fragment_status = 1;</code>
+       */
+      public Builder addFragmentStatus(
+          int index, org.apache.drill.exec.proto.ExecProtos.FragmentStatus.Builder builderForValue) {
+        if (fragmentStatusBuilder_ == null) {
+          ensureFragmentStatusIsMutable();
+          fragmentStatus_.add(index, builderForValue.build());
+          onChanged();
+        } else {
+          fragmentStatusBuilder_.addMessage(index, builderForValue.build());
+        }
+        return this;
+      }
+      /**
+       * <code>repeated .exec.bit.FragmentStatus fragment_status = 1;</code>
+       */
+      public Builder addAllFragmentStatus(
+          java.lang.Iterable<? extends org.apache.drill.exec.proto.ExecProtos.FragmentStatus> values) {
+        if (fragmentStatusBuilder_ == null) {
+          ensureFragmentStatusIsMutable();
+          super.addAll(values, fragmentStatus_);
+          onChanged();
+        } else {
+          fragmentStatusBuilder_.addAllMessages(values);
+        }
+        return this;
+      }
+      /**
+       * <code>repeated .exec.bit.FragmentStatus fragment_status = 1;</code>
+       */
+      public Builder clearFragmentStatus() {
+        if (fragmentStatusBuilder_ == null) {
+          fragmentStatus_ = java.util.Collections.emptyList();
+          bitField0_ = (bitField0_ & ~0x00000001);
+          onChanged();
+        } else {
+          fragmentStatusBuilder_.clear();
+        }
+        return this;
+      }
+      /**
+       * <code>repeated .exec.bit.FragmentStatus fragment_status = 1;</code>
+       */
+      public Builder removeFragmentStatus(int index) {
+        if (fragmentStatusBuilder_ == null) {
+          ensureFragmentStatusIsMutable();
+          fragmentStatus_.remove(index);
+          onChanged();
+        } else {
+          fragmentStatusBuilder_.remove(index);
+        }
+        return this;
+      }
+      /**
+       * <code>repeated .exec.bit.FragmentStatus fragment_status = 1;</code>
+       */
+      public org.apache.drill.exec.proto.ExecProtos.FragmentStatus.Builder getFragmentStatusBuilder(
+          int index) {
+        return getFragmentStatusFieldBuilder().getBuilder(index);
+      }
+      /**
+       * <code>repeated .exec.bit.FragmentStatus fragment_status = 1;</code>
+       */
+      public org.apache.drill.exec.proto.ExecProtos.FragmentStatusOrBuilder getFragmentStatusOrBuilder(
+          int index) {
+        if (fragmentStatusBuilder_ == null) {
+          return fragmentStatus_.get(index);  } else {
+          return fragmentStatusBuilder_.getMessageOrBuilder(index);
+        }
+      }
+      /**
+       * <code>repeated .exec.bit.FragmentStatus fragment_status = 1;</code>
+       */
+      public java.util.List<? extends org.apache.drill.exec.proto.ExecProtos.FragmentStatusOrBuilder> 
+           getFragmentStatusOrBuilderList() {
+        if (fragmentStatusBuilder_ != null) {
+          return fragmentStatusBuilder_.getMessageOrBuilderList();
+        } else {
+          return java.util.Collections.unmodifiableList(fragmentStatus_);
+        }
+      }
+      /**
+       * <code>repeated .exec.bit.FragmentStatus fragment_status = 1;</code>
+       */
+      public org.apache.drill.exec.proto.ExecProtos.FragmentStatus.Builder addFragmentStatusBuilder() {
+        return getFragmentStatusFieldBuilder().addBuilder(
+            org.apache.drill.exec.proto.ExecProtos.FragmentStatus.getDefaultInstance());
+      }
+      /**
+       * <code>repeated .exec.bit.FragmentStatus fragment_status = 1;</code>
+       */
+      public org.apache.drill.exec.proto.ExecProtos.FragmentStatus.Builder addFragmentStatusBuilder(
+          int index) {
+        return getFragmentStatusFieldBuilder().addBuilder(
+            index, org.apache.drill.exec.proto.ExecProtos.FragmentStatus.getDefaultInstance());
+      }
+      /**
+       * <code>repeated .exec.bit.FragmentStatus fragment_status = 1;</code>
+       */
+      public java.util.List<org.apache.drill.exec.proto.ExecProtos.FragmentStatus.Builder> 
+           getFragmentStatusBuilderList() {
+        return getFragmentStatusFieldBuilder().getBuilderList();
+      }
+      private com.google.protobuf.RepeatedFieldBuilder<
+          org.apache.drill.exec.proto.ExecProtos.FragmentStatus, org.apache.drill.exec.proto.ExecProtos.FragmentStatus.Builder, org.apache.drill.exec.proto.ExecProtos.FragmentStatusOrBuilder> 
+          getFragmentStatusFieldBuilder() {
+        if (fragmentStatusBuilder_ == null) {
+          fragmentStatusBuilder_ = new com.google.protobuf.RepeatedFieldBuilder<
+              org.apache.drill.exec.proto.ExecProtos.FragmentStatus, org.apache.drill.exec.proto.ExecProtos.FragmentStatus.Builder, org.apache.drill.exec.proto.ExecProtos.FragmentStatusOrBuilder>(
+                  fragmentStatus_,
+                  ((bitField0_ & 0x00000001) == 0x00000001),
+                  getParentForChildren(),
+                  isClean());
+          fragmentStatus_ = null;
+        }
+        return fragmentStatusBuilder_;
+      }
+
+      // @@protoc_insertion_point(builder_scope:exec.bit.BitStatus)
+    }
+
+    static {
+      defaultInstance = new BitStatus(true);
+      defaultInstance.initFields();
+    }
+
+    // @@protoc_insertion_point(class_scope:exec.bit.BitStatus)
+  }
+
+  public interface FragmentStatusOrBuilder
+      extends com.google.protobuf.MessageOrBuilder {
+
+    // optional int64 memory_use = 1;
+    /**
+     * <code>optional int64 memory_use = 1;</code>
+     */
+    boolean hasMemoryUse();
+    /**
+     * <code>optional int64 memory_use = 1;</code>
+     */
+    long getMemoryUse();
+
+    // optional int64 batches_completed = 2;
+    /**
+     * <code>optional int64 batches_completed = 2;</code>
+     */
+    boolean hasBatchesCompleted();
+    /**
+     * <code>optional int64 batches_completed = 2;</code>
+     */
+    long getBatchesCompleted();
+
+    // optional int64 records_completed = 3;
+    /**
+     * <code>optional int64 records_completed = 3;</code>
+     */
+    boolean hasRecordsCompleted();
+    /**
+     * <code>optional int64 records_completed = 3;</code>
+     */
+    long getRecordsCompleted();
+
+    // optional int32 estimated_completion_percentage = 4;
+    /**
+     * <code>optional int32 estimated_completion_percentage = 4;</code>
+     */
+    boolean hasEstimatedCompletionPercentage();
+    /**
+     * <code>optional int32 estimated_completion_percentage = 4;</code>
+     */
+    int getEstimatedCompletionPercentage();
+
+    // optional .exec.bit.FragmentStatus.FragmentState state = 5;
+    /**
+     * <code>optional .exec.bit.FragmentStatus.FragmentState state = 5;</code>
+     */
+    boolean hasState();
+    /**
+     * <code>optional .exec.bit.FragmentStatus.FragmentState state = 5;</code>
+     */
+    org.apache.drill.exec.proto.ExecProtos.FragmentStatus.FragmentState getState();
+
+    // optional int64 data_processed = 6;
+    /**
+     * <code>optional int64 data_processed = 6;</code>
+     */
+    boolean hasDataProcessed();
+    /**
+     * <code>optional int64 data_processed = 6;</code>
+     */
+    long getDataProcessed();
+
+    // optional .exec.bit.FragmentHandle handle = 7;
+    /**
+     * <code>optional .exec.bit.FragmentHandle handle = 7;</code>
+     */
+    boolean hasHandle();
+    /**
+     * <code>optional .exec.bit.FragmentHandle handle = 7;</code>
+     */
+    org.apache.drill.exec.proto.ExecProtos.FragmentHandle getHandle();
+    /**
+     * <code>optional .exec.bit.FragmentHandle handle = 7;</code>
+     */
+    org.apache.drill.exec.proto.ExecProtos.FragmentHandleOrBuilder getHandleOrBuilder();
+
+    // optional .exec.shared.DrillPBError error = 8;
+    /**
+     * <code>optional .exec.shared.DrillPBError error = 8;</code>
+     */
+    boolean hasError();
+    /**
+     * <code>optional .exec.shared.DrillPBError error = 8;</code>
+     */
+    org.apache.drill.exec.proto.UserBitShared.DrillPBError getError();
+    /**
+     * <code>optional .exec.shared.DrillPBError error = 8;</code>
+     */
+    org.apache.drill.exec.proto.UserBitShared.DrillPBErrorOrBuilder getErrorOrBuilder();
+
+    // optional int64 running_time = 9;
+    /**
+     * <code>optional int64 running_time = 9;</code>
+     */
+    boolean hasRunningTime();
+    /**
+     * <code>optional int64 running_time = 9;</code>
+     */
+    long getRunningTime();
+  }
+  /**
+   * Protobuf type {@code exec.bit.FragmentStatus}
+   */
+  public static final class FragmentStatus extends
+      com.google.protobuf.GeneratedMessage
+      implements FragmentStatusOrBuilder {
+    // Use FragmentStatus.newBuilder() to construct.
+    private FragmentStatus(com.google.protobuf.GeneratedMessage.Builder<?> builder) {
+      super(builder);
+      this.unknownFields = builder.getUnknownFields();
+    }
+    private FragmentStatus(boolean noInit) { this.unknownFields = com.google.protobuf.UnknownFieldSet.getDefaultInstance(); }
+
+    private static final FragmentStatus defaultInstance;
+    public static FragmentStatus getDefaultInstance() {
+      return defaultInstance;
+    }
+
+    public FragmentStatus getDefaultInstanceForType() {
+      return defaultInstance;
+    }
+
+    private final com.google.protobuf.UnknownFieldSet unknownFields;
+    @java.lang.Override
+    public final com.google.protobuf.UnknownFieldSet
+        getUnknownFields() {
+      return this.unknownFields;
+    }
+    private FragmentStatus(
+        com.google.protobuf.CodedInputStream input,
+        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+        throws com.google.protobuf.InvalidProtocolBufferException {
+      initFields();
+      int mutable_bitField0_ = 0;
+      com.google.protobuf.UnknownFieldSet.Builder unknownFields =
+          com.google.protobuf.UnknownFieldSet.newBuilder();
+      try {
+        boolean done = false;
+        while (!done) {
+          int tag = input.readTag();
+          switch (tag) {
+            case 0:
+              done = true;
+              break;
+            default: {
+              if (!parseUnknownField(input, unknownFields,
+                                     extensionRegistry, tag)) {
+                done = true;
+              }
+              break;
+            }
+            case 8: {
+              bitField0_ |= 0x00000001;
+              memoryUse_ = input.readInt64();
+              break;
+            }
+            case 16: {
+              bitField0_ |= 0x00000002;
+              batchesCompleted_ = input.readInt64();
+              break;
+            }
+            case 24: {
+              bitField0_ |= 0x00000004;
+              recordsCompleted_ = input.readInt64();
+              break;
+            }
+            case 32: {
+              bitField0_ |= 0x00000008;
+              estimatedCompletionPercentage_ = input.readInt32();
+              break;
+            }
+            case 40: {
+              int rawValue = input.readEnum();
+              org.apache.drill.exec.proto.ExecProtos.FragmentStatus.FragmentState value = org.apache.drill.exec.proto.ExecProtos.FragmentStatus.FragmentState.valueOf(rawValue);
+              if (value == null) {
+                unknownFields.mergeVarintField(5, rawValue);
+              } else {
+                bitField0_ |= 0x00000010;
+                state_ = value;
+              }
+              break;
+            }
+            case 48: {
+              bitField0_ |= 0x00000020;
+              dataProcessed_ = input.readInt64();
+              break;
+            }
+            case 58: {
+              org.apache.drill.exec.proto.ExecProtos.FragmentHandle.Builder subBuilder = null;
+              if (((bitField0_ & 0x00000040) == 0x00000040)) {
+                subBuilder = handle_.toBuilder();
+              }
+              handle_ = input.readMessage(org.apache.drill.exec.proto.ExecProtos.FragmentHandle.PARSER, extensionRegistry);
+              if (subBuilder != null) {
+                subBuilder.mergeFrom(handle_);
+                handle_ = subBuilder.buildPartial();
+              }
+              bitField0_ |= 0x00000040;
+              break;
+            }
+            case 66: {
+              org.apache.drill.exec.proto.UserBitShared.DrillPBError.Builder subBuilder = null;
+              if (((bitField0_ & 0x00000080) == 0x00000080)) {
+                subBuilder = error_.toBuilder();
+              }
+              error_ = input.readMessage(org.apache.drill.exec.proto.UserBitShared.DrillPBError.PARSER, extensionRegistry);
+              if (subBuilder != null) {
+                subBuilder.mergeFrom(error_);
+                error_ = subBuilder.buildPartial();
+              }
+              bitField0_ |= 0x00000080;
+              break;
+            }
+            case 72: {
+              bitField0_ |= 0x00000100;
+              runningTime_ = input.readInt64();
+              break;
+            }
+          }
+        }
+      } catch (com.google.protobuf.InvalidProtocolBufferException e) {
+        throw e.setUnfinishedMessage(this);
+      } catch (java.io.IOException e) {
+        throw new com.google.protobuf.InvalidProtocolBufferException(
+            e.getMessage()).setUnfinishedMessage(this);
+      } finally {
+        this.unknownFields = unknownFields.build();
+        makeExtensionsImmutable();
+      }
+    }
+    public static final com.google.protobuf.Descriptors.Descriptor
+        getDescriptor() {
+      return org.apache.drill.exec.proto.ExecProtos.internal_static_exec_bit_FragmentStatus_descriptor;
+    }
+
+    protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
+        internalGetFieldAccessorTable() {
+      return org.apache.drill.exec.proto.ExecProtos.internal_static_exec_bit_FragmentStatus_fieldAccessorTable
+          .ensureFieldAccessorsInitialized(
+              org.apache.drill.exec.proto.ExecProtos.FragmentStatus.class, org.apache.drill.exec.proto.ExecProtos.FragmentStatus.Builder.class);
+    }
+
+    public static com.google.protobuf.Parser<FragmentStatus> PARSER =
+        new com.google.protobuf.AbstractParser<FragmentStatus>() {
+      public FragmentStatus parsePartialFrom(
+          com.google.protobuf.CodedInputStream input,
+          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+          throws com.google.protobuf.InvalidProtocolBufferException {
+        return new FragmentStatus(input, extensionRegistry);
+      }
+    };
+
+    @java.lang.Override
+    public com.google.protobuf.Parser<FragmentStatus> getParserForType() {
+      return PARSER;
+    }
+
+    /**
+     * Protobuf enum {@code exec.bit.FragmentStatus.FragmentState}
+     */
+    public enum FragmentState
+        implements com.google.protobuf.ProtocolMessageEnum {
+      /**
+       * <code>SENDING = 0;</code>
+       */
+      SENDING(0, 0),
+      /**
+       * <code>AWAITING_ALLOCATION = 1;</code>
+       */
+      AWAITING_ALLOCATION(1, 1),
+      /**
+       * <code>RUNNING = 2;</code>
+       */
+      RUNNING(2, 2),
+      /**
+       * <code>FINISHED = 3;</code>
+       */
+      FINISHED(3, 3),
+      /**
+       * <code>CANCELLED = 4;</code>
+       */
+      CANCELLED(4, 4),
+      /**
+       * <code>FAILED = 5;</code>
+       */
+      FAILED(5, 5),
+      ;
+
+      /**
+       * <code>SENDING = 0;</code>
+       */
+      public static final int SENDING_VALUE = 0;
+      /**
+       * <code>AWAITING_ALLOCATION = 1;</code>
+       */
+      public static final int AWAITING_ALLOCATION_VALUE = 1;
+      /**
+       * <code>RUNNING = 2;</code>
+       */
+      public static final int RUNNING_VALUE = 2;
+      /**
+       * <code>FINISHED = 3;</code>
+       */
+      public static final int FINISHED_VALUE = 3;
+      /**
+       * <code>CANCELLED = 4;</code>
+       */
+      public static final int CANCELLED_VALUE = 4;
+      /**
+       * <code>FAILED = 5;</code>
+       */
+      public static final int FAILED_VALUE = 5;
+
+
+      public final int getNumber() { return value; }
+
+      public static FragmentState valueOf(int value) {
+        switch (value) {
+          case 0: return SENDING;
+          case 1: return AWAITING_ALLOCATION;
+          case 2: return RUNNING;
+          case 3: return FINISHED;
+          case 4: return CANCELLED;
+          case 5: return FAILED;
+          default: return null;
+        }
+      }
+
+      public static com.google.protobuf.Internal.EnumLiteMap<FragmentState>
+          internalGetValueMap() {
+        return internalValueMap;
+      }
+      private static com.google.protobuf.Internal.EnumLiteMap<FragmentState>
+          internalValueMap =
+            new com.google.protobuf.Internal.EnumLiteMap<FragmentState>() {
+              public FragmentState findValueByNumber(int number) {
+                return FragmentState.valueOf(number);
+              }
+            };
+
+      public final com.google.protobuf.Descriptors.EnumValueDescriptor
+          getValueDescriptor() {
+        return getDescriptor().getValues().get(index);
+      }
+      public final com.google.protobuf.Descriptors.EnumDescriptor
+          getDescriptorForType() {
+        return getDescriptor();
+      }
+      public static final com.google.protobuf.Descriptors.EnumDescriptor
+          getDescriptor() {
+        return org.apache.drill.exec.proto.ExecProtos.FragmentStatus.getDescriptor().getEnumTypes().get(0);
+      }
+
+      private static final FragmentState[] VALUES = values();
+
+      public static FragmentState valueOf(
+          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 FragmentState(int index, int value) {
+        this.index = index;
+        this.value = value;
+      }
+
+      // @@protoc_insertion_point(enum_scope:exec.bit.FragmentStatus.FragmentState)
+    }
+
+    private int bitField0_;
+    // optional int64 memory_use = 1;
+    public static final int MEMORY_USE_FIELD_NUMBER = 1;
+    private long memoryUse_;
+    /**
+     * <code>optional int64 memory_use = 1;</code>
+     */
+    public boolean hasMemoryUse() {
+      return ((bitField0_ & 0x00000001) == 0x00000001);
+    }
+    /**
+     * <code>optional int64 memory_use = 1;</code>
+     */
+    public long getMemoryUse() {
+      return memoryUse_;
+    }
+
+    // optional int64 batches_completed = 2;
+    public static final int BATCHES_COMPLETED_FIELD_NUMBER = 2;
+    private long batchesCompleted_;
+    /**
+     * <code>optional int64 batches_completed = 2;</code>
+     */
+    public boolean hasBatchesCompleted() {
+      return ((bitField0_ & 0x00000002) == 0x00000002);
+    }
+    /**
+     * <code>optional int64 batches_completed = 2;</code>
+     */
+    public long getBatchesCompleted() {
+      return batchesCompleted_;
+    }
+
+    // optional int64 records_completed = 3;
+    public static final int RECORDS_COMPLETED_FIELD_NUMBER = 3;
+    private long recordsCompleted_;
+    /**
+     * <code>optional int64 records_completed = 3;</code>
+     */
+    public boolean hasRecordsCompleted() {
+      return ((bitField0_ & 0x00000004) == 0x00000004);
+    }
+    /**
+     * <code>optional int64 records_completed = 3;</code>
+     */
+    public long getRecordsCompleted() {
+      return recordsCompleted_;
+    }
+
+    // optional int32 estimated_completion_percentage = 4;
+    public static final int ESTIMATED_COMPLETION_PERCENTAGE_FIELD_NUMBER = 4;
+    private int estimatedCompletionPercentage_;
+    /**
+     * <code>optional int32 estimated_completion_percentage = 4;</code>
+     */
+    public boolean hasEstimatedCompletionPercentage() {
+      return ((bitField0_ & 0x00000008) == 0x00000008);
+    }
+    /**
+     * <code>optional int32 estimated_completion_percentage = 4;</code>
+     */
+    public int getEstimatedCompletionPercentage() {
+      return estimatedCompletionPercentage_;
+    }
+
+    // optional .exec.bit.FragmentStatus.FragmentState state = 5;
+    public static final int STATE_FIELD_NUMBER = 5;
+    private org.apache.drill.exec.proto.ExecProtos.FragmentStatus.FragmentState state_;
+    /**
+     * <code>optional .exec.bit.FragmentStatus.FragmentState state = 5;</code>
+     */
+    public boolean hasState() {
+      return ((bitField0_ & 0x00000010) == 0x00000010);
+    }
+    /**
+     * <code>optional .exec.bit.FragmentStatus.FragmentState state = 5;</code>
+     */
+    public org.apache.drill.exec.proto.ExecProtos.FragmentStatus.FragmentState getState() {
+      return state_;
+    }
+
+    // optional int64 data_processed = 6;
+    public static final int DATA_PROCESSED_FIELD_NUMBER = 6;
+    private long dataProcessed_;
+    /**
+     * <code>optional int64 data_processed = 6;</code>
+     */
+    public boolean hasDataProcessed() {
+      return ((bitField0_ & 0x00000020) == 0x00000020);
+    }
+    /**
+     * <code>optional int64 data_processed = 6;</code>
+     */
+    public long getDataProcessed() {
+      return dataProcessed_;
+    }
+
+    // optional .exec.bit.FragmentHandle handle = 7;
+    public static final int HANDLE_FIELD_NUMBER = 7;
+    private org.apache.drill.exec.proto.ExecProtos.FragmentHandle handle_;
+    /**
+     * <code>optional .exec.bit.FragmentHandle handle = 7;</code>
+     */
+    public boolean hasHandle() {
+      return ((bitField0_ & 0x00000040) == 0x00000040);
+    }
+    /**
+     * <code>optional .exec.bit.FragmentHandle handle = 7;</code>
+     */
+    public org.apache.drill.exec.proto.ExecProtos.FragmentHandle getHandle() {
+      return handle_;
+    }
+    /**
+     * <code>optional .exec.bit.FragmentHandle handle = 7;</code>
+     */
+    public org.apache.drill.exec.proto.ExecProtos.FragmentHandleOrBuilder getHandleOrBuilder() {
+      return handle_;
+    }
+
+    // optional .exec.shared.DrillPBError error = 8;
+    public static final int ERROR_FIELD_NUMBER = 8;
+    private org.apache.drill.exec.proto.UserBitShared.DrillPBError error_;
+    /**
+     * <code>optional .exec.shared.DrillPBError error = 8;</code>
+     */
+    public boolean hasError() {
+      return ((bitField0_ & 0x00000080) == 0x00000080);
+    }
+    /**
+     * <code>optional .exec.shared.DrillPBError error = 8;</code>
+     */
+    public org.apache.drill.exec.proto.UserBitShared.DrillPBError getError() {
+      return error_;
+    }
+    /**
+     * <code>optional .exec.shared.DrillPBError error = 8;</code>
+     */
+    public org.apache.drill.exec.proto.UserBitShared.DrillPBErrorOrBuilder getErrorOrBuilder() {
+      return error_;
+    }
+
+    // optional int64 running_time = 9;
+    public static final int RUNNING_TIME_FIELD_NUMBER = 9;
+    private long runningTime_;
+    /**
+     * <code>optional int64 running_time = 9;</code>
+     */
+    public boolean hasRunningTime() {
+      return ((bitField0_ & 0x00000100) == 0x00000100);
+    }
+    /**
+     * <code>optional int64 running_time = 9;</code>
+     */
+    public long getRunningTime() {
+      return runningTime_;
+    }
+
+    private void initFields() {
+      memoryUse_ = 0L;
+      batchesCompleted_ = 0L;
+      recordsCompleted_ = 0L;
+      estimatedCompletionPercentage_ = 0;
+      state_ = org.apache.drill.exec.proto.ExecProtos.FragmentStatus.FragmentState.SENDING;
+      dataProcessed_ = 0L;
+      handle_ = org.apache.drill.exec.proto.ExecProtos.FragmentHandle.getDefaultInstance();
+      error_ = org.apache.drill.exec.proto.UserBitShared.DrillPBError.getDefaultInstance();
+      runningTime_ = 0L;
+    }
+    private byte memoizedIsInitialized = -1;
+    public final boolean isInitialized() {
+      byte isInitialized = memoizedIsInitialized;
+      if (isInitialized != -1) return isInitialized == 1;
+
+      memoizedIsInitialized = 1;
+      return true;
+    }
+
+    public void writeTo(com.google.protobuf.CodedOutputStream output)
+                        throws java.io.IOException {
+      getSerializedSize();
+      if (((bitField0_ & 0x00000001) == 0x00000001)) {
+        output.writeInt64(1, memoryUse_);
+      }
+      if (((bitField0_ & 0x00000002) == 0x00000002)) {
+        output.writeInt64(2, batchesCompleted_);
+      }
+      if (((bitField0_ & 0x00000004) == 0x00000004)) {
+        output.writeInt64(3, recordsCompleted_);
+      }
+      if (((bitField0_ & 0x00000008) == 0x00000008)) {
+        output.writeInt32(4, estimatedCompletionPercentage_);
+      }
+      if (((bitField0_ & 0x00000010) == 0x00000010)) {
+        output.writeEnum(5, state_.getNumber());
+      }
+      if (((bitField0_ & 0x00000020) == 0x00000020)) {
+        output.writeInt64(6, dataProcessed_);
+      }
+      if (((bitField0_ & 0x00000040) == 0x00000040)) {
+        output.writeMessage(7, handle_);
+      }
+      if (((bitField0_ & 0x00000080) == 0x00000080)) {
+        output.writeMessage(8, error_);
+      }
+      if (((bitField0_ & 0x00000100) == 0x00000100)) {
+        output.writeInt64(9, runningTime_);
+      }
+      getUnknownFields().writeTo(output);
+    }
+
+    private int memoizedSerializedSize = -1;
+    public int getSerializedSize() {
+      int 

<TRUNCATED>