You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@drill.apache.org by hm...@apache.org on 2019/03/05 01:02:43 UTC

[drill] branch master updated: DRILL-6642: Update protocol-buffers version

This is an automated email from the ASF dual-hosted git repository.

hmaduri pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/drill.git


The following commit(s) were added to refs/heads/master by this push:
     new 2c3e2de  DRILL-6642: Update protocol-buffers version
2c3e2de is described below

commit 2c3e2de2f94fd3f21a11c22b7944b94953e4f397
Author: Anton Gozhiy <an...@gmail.com>
AuthorDate: Wed Oct 31 13:23:51 2018 +0200

    DRILL-6642: Update protocol-buffers version
    
    1. Updated protobuf to version 3.6.1
    2. Added protobuf to the root pom dependency management
    3. Added classes BoundedByteString and LiteralByteString for compatibility with HBase
    4. Added ProtobufPatcher to provide compatibility with MapR-DB and HBase
    closes #1639
---
 .travis.yml                                        |    19 +-
 contrib/native/client/readme.linux                 |    14 +-
 contrib/native/client/readme.macos                 |     2 +-
 contrib/native/client/readme.win.txt               |     4 +-
 .../client/src/include/drill/protobuf/Types.pb.h   |   264 +-
 .../native/client/src/protobuf/BitControl.pb.cc    |  4188 ++--
 contrib/native/client/src/protobuf/BitControl.pb.h |  2758 ++-
 contrib/native/client/src/protobuf/BitData.pb.cc   |  1752 +-
 contrib/native/client/src/protobuf/BitData.pb.h    |  1006 +-
 .../native/client/src/protobuf/Coordination.pb.cc  |  1408 +-
 .../native/client/src/protobuf/Coordination.pb.h   |   949 +-
 .../client/src/protobuf/ExecutionProtos.pb.cc      |   804 +-
 .../client/src/protobuf/ExecutionProtos.pb.h       |   508 +-
 .../native/client/src/protobuf/GeneralRPC.pb.cc    |  1036 +-
 contrib/native/client/src/protobuf/GeneralRPC.pb.h |   655 +-
 contrib/native/client/src/protobuf/SchemaDef.pb.cc |    97 +-
 contrib/native/client/src/protobuf/SchemaDef.pb.h  |    55 +-
 contrib/native/client/src/protobuf/Types.pb.cc     |   586 +-
 contrib/native/client/src/protobuf/User.pb.cc      | 15926 ++++++++-------
 contrib/native/client/src/protobuf/User.pb.h       | 11716 ++++++-----
 .../native/client/src/protobuf/UserBitShared.pb.cc | 10335 +++++-----
 .../native/client/src/protobuf/UserBitShared.pb.h  |  7137 ++++---
 .../org/apache/drill/hbase/HBaseTestsSuite.java    |     2 +
 contrib/storage-hive/hive-exec-shade/pom.xml       |     4 +
 exec/java-exec/pom.xml                             |     1 -
 .../org/apache/drill/exec/server/Drillbit.java     |     7 +
 .../apache/drill/exec/util/ProtobufPatcher.java    |   186 +
 exec/rpc/pom.xml                                   |     1 -
 exec/vector/pom.xml                                |     1 -
 pom.xml                                            |     6 +
 protocol/pom.xml                                   |     1 -
 protocol/readme.txt                                |    24 +-
 .../org/apache/drill/common/types/TypeProtos.java  |  1091 +-
 .../org/apache/drill/exec/proto/BitControl.java    |  4292 ++--
 .../java/org/apache/drill/exec/proto/BitData.java  |  1825 +-
 .../drill/exec/proto/CoordinationProtos.java       |  1288 +-
 .../org/apache/drill/exec/proto/ExecProtos.java    |   753 +-
 .../apache/drill/exec/proto/GeneralRPCProtos.java  |  1262 +-
 .../apache/drill/exec/proto/SchemaDefProtos.java   |    53 +-
 .../org/apache/drill/exec/proto/UserBitShared.java | 10129 ++++++----
 .../org/apache/drill/exec/proto/UserProtos.java    | 19562 ++++++++++++-------
 41 files changed, 60762 insertions(+), 40945 deletions(-)

diff --git a/.travis.yml b/.travis.yml
index c7def48..e85b140 100644
--- a/.travis.yml
+++ b/.travis.yml
@@ -25,15 +25,26 @@ jdk:
 cache:
   directories:
   - "$HOME/.m2"
+  - "$HOME/protobuf"
 before_install:
   - git fetch --unshallow
   # Install libraries required for protobuf generation
   - |
     if [ $PHASE = "build_checkstyle_protobuf" ]; then \
-      sudo apt-get install -y libboost-all-dev libzookeeper-mt-dev libsasl2-dev cmake libcppunit-dev && \
-      pushd .. && wget https://github.com/google/protobuf/releases/download/v2.5.0/protobuf-2.5.0.tar.gz && \
-      tar -xzvf protobuf-2.5.0.tar.gz && \
-      pushd protobuf-2.5.0 && ./configure --prefix=/usr && make && sudo make install && popd && popd; \
+      sudo apt-get install -y libboost-all-dev libzookeeper-mt-dev libsasl2-dev cmake libcppunit-dev checkinstall && \
+      pushd .. && \
+      if [ -f $HOME/protobuf/protobuf_3.6.1* ]; then \
+        sudo dpkg -i $HOME/protobuf/protobuf_3.6.1*; \
+      else \
+        wget https://github.com/protocolbuffers/protobuf/releases/download/v3.6.1/protobuf-java-3.6.1.zip && \
+        unzip protobuf-java-3.6.1.zip && pushd protobuf-3.6.1 && \
+        ./configure && sudo make && sudo checkinstall -y && \
+        if [ ! -d $HOME/protobuf ]; then \
+          mkdir -p $HOME/protobuf; \
+        fi && \
+        mv protobuf_3.6.1* $HOME/protobuf/ && popd; \
+      fi && \
+      sudo ldconfig && popd; \
     fi
 install:
   # For tests phase runs unit tests
diff --git a/contrib/native/client/readme.linux b/contrib/native/client/readme.linux
index 92fe519..dab0023 100644
--- a/contrib/native/client/readme.linux
+++ b/contrib/native/client/readme.linux
@@ -27,15 +27,15 @@ Install Prerequisites
 1) CMAKE 3.0
     $> yum install cmake3
 
-2.1) Download protobuf 2.5 from :
-    http://rpm.pbone.net/index.php3/stat/4/idpl/23552166/dir/centos_6/com/protobuf-2.5.0-16.1.x86_64.rpm.html
-    http://rpm.pbone.net/index.php3/stat/4/idpl/23552167/dir/centos_6/com/protobuf-compiler-2.5.0-16.1.x86_64.rpm.html
-    http://rpm.pbone.net/index.php3/stat/4/idpl/23552169/dir/centos_6/com/protobuf-devel-2.5.0-16.1.x86_64.rpm.html
+2.1) Download protobuf 3.6 from :
+    https://github.com/protocolbuffers/protobuf/releases/download/v3.6.1/protobuf-java-3.6.1.zip
 
 2.2) Install Protobufs
-    $> sudo yum install protobuf
-    $> sudo yum install protobuf-compiler
-    $> sudo yum install protobuf-devel
+    $> unzip protobuf-java-3.6.1.zip
+    $> cd protobuf-3.6.1
+    $> ./configure
+    $> sudo make
+    $> sudo make install
 
 3)
 3.1) Install Zookeeper prerequisites
diff --git a/contrib/native/client/readme.macos b/contrib/native/client/readme.macos
index f50c30a..ccee806 100644
--- a/contrib/native/client/readme.macos
+++ b/contrib/native/client/readme.macos
@@ -36,7 +36,7 @@ Install Prerequisites
 2.0) Install cppunit 
   $> brew install cppunit 
 
-2.1) Install protobuf 2.5.0 (or higher)
+2.1) Install protobuf 3.6.1 (or higher)
   $> brew install protobuf
 
 2.2) Install zookeeper
diff --git a/contrib/native/client/readme.win.txt b/contrib/native/client/readme.win.txt
index bd84b91..c4ed704 100644
--- a/contrib/native/client/readme.win.txt
+++ b/contrib/native/client/readme.win.txt
@@ -118,8 +118,8 @@ Windows platforms should be more or less similar.
         iii) If you do not have the 64 bit assembler installed, boost-context does not
         build. It is safe to ignore it as boost-context is not needed for Drill
 
-2.2 Protobuf (2.5.0)
-    Get protobuf from here: https://protobuf.googlecode.com/files/protobuf-2.5.0.zip
+2.2 Protobuf (3.6.1)
+    Get protobuf from here: https://github.com/protocolbuffers/protobuf/releases/download/v3.6.1/protoc-3.6.1-win32.zip
 
     a) Protobuf builds static libraries
     b) In Visual Studio, open <PROTOBUF_HOME>/vsprojects/protobuf.sln. The IDE may
diff --git a/contrib/native/client/src/include/drill/protobuf/Types.pb.h b/contrib/native/client/src/include/drill/protobuf/Types.pb.h
index b1dec7b..ed99a61 100644
--- a/contrib/native/client/src/include/drill/protobuf/Types.pb.h
+++ b/contrib/native/client/src/include/drill/protobuf/Types.pb.h
@@ -1,40 +1,62 @@
 // Generated by the protocol buffer compiler.  DO NOT EDIT!
 // source: Types.proto
 
-#ifndef PROTOBUF_Types_2eproto__INCLUDED
-#define PROTOBUF_Types_2eproto__INCLUDED
+#ifndef PROTOBUF_INCLUDED_Types_2eproto
+#define PROTOBUF_INCLUDED_Types_2eproto
 
 #include <string>
 
 #include <google/protobuf/stubs/common.h>
 
-#if GOOGLE_PROTOBUF_VERSION < 2005000
+#if GOOGLE_PROTOBUF_VERSION < 3006001
 #error This file was generated by a newer version of protoc which is
 #error incompatible with your Protocol Buffer headers.  Please update
 #error your headers.
 #endif
-#if 2005000 < GOOGLE_PROTOBUF_MIN_PROTOC_VERSION
+#if 3006001 < GOOGLE_PROTOBUF_MIN_PROTOC_VERSION
 #error This file was generated by an older version of protoc which is
 #error incompatible with your Protocol Buffer headers.  Please
 #error regenerate this file with a newer version of protoc.
 #endif
 
+#include <google/protobuf/io/coded_stream.h>
+#include <google/protobuf/arena.h>
+#include <google/protobuf/arenastring.h>
+#include <google/protobuf/generated_message_table_driven.h>
 #include <google/protobuf/generated_message_util.h>
+#include <google/protobuf/inlined_string_field.h>
+#include <google/protobuf/metadata.h>
 #include <google/protobuf/message.h>
-#include <google/protobuf/repeated_field.h>
-#include <google/protobuf/extension_set.h>
+#include <google/protobuf/repeated_field.h>  // IWYU pragma: export
+#include <google/protobuf/extension_set.h>  // IWYU pragma: export
 #include <google/protobuf/generated_enum_reflection.h>
 #include <google/protobuf/unknown_field_set.h>
 // @@protoc_insertion_point(includes)
-
+#define PROTOBUF_INTERNAL_EXPORT_protobuf_Types_2eproto 
+
+namespace protobuf_Types_2eproto {
+// Internal implementation detail -- do not use these members.
+struct TableStruct {
+  static const ::google::protobuf::internal::ParseTableField entries[];
+  static const ::google::protobuf::internal::AuxillaryParseTableField aux[];
+  static const ::google::protobuf::internal::ParseTable schema[1];
+  static const ::google::protobuf::internal::FieldMetadata field_metadata[];
+  static const ::google::protobuf::internal::SerializationTable serialization_table[];
+  static const ::google::protobuf::uint32 offsets[];
+};
+void AddDescriptors();
+}  // namespace protobuf_Types_2eproto
 namespace common {
-
-// Internal implementation detail -- do not call these.
-void  protobuf_AddDesc_Types_2eproto();
-void protobuf_AssignDesc_Types_2eproto();
-void protobuf_ShutdownFile_Types_2eproto();
-
 class MajorType;
+class MajorTypeDefaultTypeInternal;
+extern MajorTypeDefaultTypeInternal _MajorType_default_instance_;
+}  // namespace common
+namespace google {
+namespace protobuf {
+template<> ::common::MajorType* Arena::CreateMaybeMessage<::common::MajorType>(Arena*);
+}  // namespace protobuf
+}  // namespace google
+namespace common {
 
 enum MinorType {
   LATE = 0,
@@ -114,7 +136,7 @@ inline bool DataMode_Parse(
 }
 // ===================================================================
 
-class MajorType : public ::google::protobuf::Message {
+class MajorType : public ::google::protobuf::Message /* @@protoc_insertion_point(class_definition:common.MajorType) */ {
  public:
   MajorType();
   virtual ~MajorType();
@@ -125,141 +147,177 @@ class MajorType : public ::google::protobuf::Message {
     CopyFrom(from);
     return *this;
   }
+  #if LANG_CXX11
+  MajorType(MajorType&& from) noexcept
+    : MajorType() {
+    *this = ::std::move(from);
+  }
 
+  inline MajorType& operator=(MajorType&& from) noexcept {
+    if (GetArenaNoVirtual() == from.GetArenaNoVirtual()) {
+      if (this != &from) InternalSwap(&from);
+    } else {
+      CopyFrom(from);
+    }
+    return *this;
+  }
+  #endif
   inline const ::google::protobuf::UnknownFieldSet& unknown_fields() const {
-    return _unknown_fields_;
+    return _internal_metadata_.unknown_fields();
   }
-
   inline ::google::protobuf::UnknownFieldSet* mutable_unknown_fields() {
-    return &_unknown_fields_;
+    return _internal_metadata_.mutable_unknown_fields();
   }
 
   static const ::google::protobuf::Descriptor* descriptor();
   static const MajorType& default_instance();
 
+  static void InitAsDefaultInstance();  // FOR INTERNAL USE ONLY
+  static inline const MajorType* internal_default_instance() {
+    return reinterpret_cast<const MajorType*>(
+               &_MajorType_default_instance_);
+  }
+  static constexpr int kIndexInFileMessages =
+    0;
+
   void Swap(MajorType* other);
+  friend void swap(MajorType& a, MajorType& b) {
+    a.Swap(&b);
+  }
 
   // implements Message ----------------------------------------------
 
-  MajorType* New() const;
-  void CopyFrom(const ::google::protobuf::Message& from);
-  void MergeFrom(const ::google::protobuf::Message& from);
+  inline MajorType* New() const final {
+    return CreateMaybeMessage<MajorType>(NULL);
+  }
+
+  MajorType* New(::google::protobuf::Arena* arena) const final {
+    return CreateMaybeMessage<MajorType>(arena);
+  }
+  void CopyFrom(const ::google::protobuf::Message& from) final;
+  void MergeFrom(const ::google::protobuf::Message& from) final;
   void CopyFrom(const MajorType& from);
   void MergeFrom(const MajorType& from);
-  void Clear();
-  bool IsInitialized() const;
+  void Clear() final;
+  bool IsInitialized() const final;
 
-  int ByteSize() const;
+  size_t ByteSizeLong() const final;
   bool MergePartialFromCodedStream(
-      ::google::protobuf::io::CodedInputStream* input);
+      ::google::protobuf::io::CodedInputStream* input) final;
   void SerializeWithCachedSizes(
-      ::google::protobuf::io::CodedOutputStream* output) const;
-  ::google::protobuf::uint8* SerializeWithCachedSizesToArray(::google::protobuf::uint8* output) const;
-  int GetCachedSize() const { return _cached_size_; }
+      ::google::protobuf::io::CodedOutputStream* output) const final;
+  ::google::protobuf::uint8* InternalSerializeWithCachedSizesToArray(
+      bool deterministic, ::google::protobuf::uint8* target) const final;
+  int GetCachedSize() const final { return _cached_size_.Get(); }
+
   private:
   void SharedCtor();
   void SharedDtor();
-  void SetCachedSize(int size) const;
+  void SetCachedSize(int size) const final;
+  void InternalSwap(MajorType* other);
+  private:
+  inline ::google::protobuf::Arena* GetArenaNoVirtual() const {
+    return NULL;
+  }
+  inline void* MaybeArenaPtr() const {
+    return NULL;
+  }
   public:
 
-  ::google::protobuf::Metadata GetMetadata() const;
+  ::google::protobuf::Metadata GetMetadata() const final;
 
   // nested types ----------------------------------------------------
 
   // accessors -------------------------------------------------------
 
+  // repeated .common.MinorType sub_type = 7;
+  int sub_type_size() const;
+  void clear_sub_type();
+  static const int kSubTypeFieldNumber = 7;
+  ::common::MinorType sub_type(int index) const;
+  void set_sub_type(int index, ::common::MinorType value);
+  void add_sub_type(::common::MinorType value);
+  const ::google::protobuf::RepeatedField<int>& sub_type() const;
+  ::google::protobuf::RepeatedField<int>* mutable_sub_type();
+
   // optional .common.MinorType minor_type = 1;
-  inline bool has_minor_type() const;
-  inline void clear_minor_type();
+  bool has_minor_type() const;
+  void clear_minor_type();
   static const int kMinorTypeFieldNumber = 1;
-  inline ::common::MinorType minor_type() const;
-  inline void set_minor_type(::common::MinorType value);
+  ::common::MinorType minor_type() const;
+  void set_minor_type(::common::MinorType value);
 
   // optional .common.DataMode mode = 2;
-  inline bool has_mode() const;
-  inline void clear_mode();
+  bool has_mode() const;
+  void clear_mode();
   static const int kModeFieldNumber = 2;
-  inline ::common::DataMode mode() const;
-  inline void set_mode(::common::DataMode value);
+  ::common::DataMode mode() const;
+  void set_mode(::common::DataMode value);
 
   // optional int32 width = 3;
-  inline bool has_width() const;
-  inline void clear_width();
+  bool has_width() const;
+  void clear_width();
   static const int kWidthFieldNumber = 3;
-  inline ::google::protobuf::int32 width() const;
-  inline void set_width(::google::protobuf::int32 value);
+  ::google::protobuf::int32 width() const;
+  void set_width(::google::protobuf::int32 value);
 
   // optional int32 precision = 4;
-  inline bool has_precision() const;
-  inline void clear_precision();
+  bool has_precision() const;
+  void clear_precision();
   static const int kPrecisionFieldNumber = 4;
-  inline ::google::protobuf::int32 precision() const;
-  inline void set_precision(::google::protobuf::int32 value);
+  ::google::protobuf::int32 precision() const;
+  void set_precision(::google::protobuf::int32 value);
 
   // optional int32 scale = 5;
-  inline bool has_scale() const;
-  inline void clear_scale();
+  bool has_scale() const;
+  void clear_scale();
   static const int kScaleFieldNumber = 5;
-  inline ::google::protobuf::int32 scale() const;
-  inline void set_scale(::google::protobuf::int32 value);
+  ::google::protobuf::int32 scale() const;
+  void set_scale(::google::protobuf::int32 value);
 
   // optional int32 timeZone = 6;
-  inline bool has_timezone() const;
-  inline void clear_timezone();
+  bool has_timezone() const;
+  void clear_timezone();
   static const int kTimeZoneFieldNumber = 6;
-  inline ::google::protobuf::int32 timezone() const;
-  inline void set_timezone(::google::protobuf::int32 value);
-
-  // repeated .common.MinorType sub_type = 7;
-  inline int sub_type_size() const;
-  inline void clear_sub_type();
-  static const int kSubTypeFieldNumber = 7;
-  inline ::common::MinorType sub_type(int index) const;
-  inline void set_sub_type(int index, ::common::MinorType value);
-  inline void add_sub_type(::common::MinorType value);
-  inline const ::google::protobuf::RepeatedField<int>& sub_type() const;
-  inline ::google::protobuf::RepeatedField<int>* mutable_sub_type();
+  ::google::protobuf::int32 timezone() const;
+  void set_timezone(::google::protobuf::int32 value);
 
   // @@protoc_insertion_point(class_scope:common.MajorType)
  private:
-  inline void set_has_minor_type();
-  inline void clear_has_minor_type();
-  inline void set_has_mode();
-  inline void clear_has_mode();
-  inline void set_has_width();
-  inline void clear_has_width();
-  inline void set_has_precision();
-  inline void clear_has_precision();
-  inline void set_has_scale();
-  inline void clear_has_scale();
-  inline void set_has_timezone();
-  inline void clear_has_timezone();
-
-  ::google::protobuf::UnknownFieldSet _unknown_fields_;
-
+  void set_has_minor_type();
+  void clear_has_minor_type();
+  void set_has_mode();
+  void clear_has_mode();
+  void set_has_width();
+  void clear_has_width();
+  void set_has_precision();
+  void clear_has_precision();
+  void set_has_scale();
+  void clear_has_scale();
+  void set_has_timezone();
+  void clear_has_timezone();
+
+  ::google::protobuf::internal::InternalMetadataWithArena _internal_metadata_;
+  ::google::protobuf::internal::HasBits<1> _has_bits_;
+  mutable ::google::protobuf::internal::CachedSize _cached_size_;
+  ::google::protobuf::RepeatedField<int> sub_type_;
   int minor_type_;
   int mode_;
   ::google::protobuf::int32 width_;
   ::google::protobuf::int32 precision_;
   ::google::protobuf::int32 scale_;
   ::google::protobuf::int32 timezone_;
-  ::google::protobuf::RepeatedField<int> sub_type_;
-
-  mutable int _cached_size_;
-  ::google::protobuf::uint32 _has_bits_[(7 + 31) / 32];
-
-  friend void  protobuf_AddDesc_Types_2eproto();
-  friend void protobuf_AssignDesc_Types_2eproto();
-  friend void protobuf_ShutdownFile_Types_2eproto();
-
-  void InitAsDefaultInstance();
-  static MajorType* default_instance_;
+  friend struct ::protobuf_Types_2eproto::TableStruct;
 };
 // ===================================================================
 
 
 // ===================================================================
 
+#ifdef __GNUC__
+  #pragma GCC diagnostic push
+  #pragma GCC diagnostic ignored "-Wstrict-aliasing"
+#endif  // __GNUC__
 // MajorType
 
 // optional .common.MinorType minor_type = 1;
@@ -277,12 +335,14 @@ inline void MajorType::clear_minor_type() {
   clear_has_minor_type();
 }
 inline ::common::MinorType MajorType::minor_type() const {
+  // @@protoc_insertion_point(field_get:common.MajorType.minor_type)
   return static_cast< ::common::MinorType >(minor_type_);
 }
 inline void MajorType::set_minor_type(::common::MinorType value) {
   assert(::common::MinorType_IsValid(value));
   set_has_minor_type();
   minor_type_ = value;
+  // @@protoc_insertion_point(field_set:common.MajorType.minor_type)
 }
 
 // optional .common.DataMode mode = 2;
@@ -300,12 +360,14 @@ inline void MajorType::clear_mode() {
   clear_has_mode();
 }
 inline ::common::DataMode MajorType::mode() const {
+  // @@protoc_insertion_point(field_get:common.MajorType.mode)
   return static_cast< ::common::DataMode >(mode_);
 }
 inline void MajorType::set_mode(::common::DataMode value) {
   assert(::common::DataMode_IsValid(value));
   set_has_mode();
   mode_ = value;
+  // @@protoc_insertion_point(field_set:common.MajorType.mode)
 }
 
 // optional int32 width = 3;
@@ -323,11 +385,13 @@ inline void MajorType::clear_width() {
   clear_has_width();
 }
 inline ::google::protobuf::int32 MajorType::width() const {
+  // @@protoc_insertion_point(field_get:common.MajorType.width)
   return width_;
 }
 inline void MajorType::set_width(::google::protobuf::int32 value) {
   set_has_width();
   width_ = value;
+  // @@protoc_insertion_point(field_set:common.MajorType.width)
 }
 
 // optional int32 precision = 4;
@@ -345,11 +409,13 @@ inline void MajorType::clear_precision() {
   clear_has_precision();
 }
 inline ::google::protobuf::int32 MajorType::precision() const {
+  // @@protoc_insertion_point(field_get:common.MajorType.precision)
   return precision_;
 }
 inline void MajorType::set_precision(::google::protobuf::int32 value) {
   set_has_precision();
   precision_ = value;
+  // @@protoc_insertion_point(field_set:common.MajorType.precision)
 }
 
 // optional int32 scale = 5;
@@ -367,11 +433,13 @@ inline void MajorType::clear_scale() {
   clear_has_scale();
 }
 inline ::google::protobuf::int32 MajorType::scale() const {
+  // @@protoc_insertion_point(field_get:common.MajorType.scale)
   return scale_;
 }
 inline void MajorType::set_scale(::google::protobuf::int32 value) {
   set_has_scale();
   scale_ = value;
+  // @@protoc_insertion_point(field_set:common.MajorType.scale)
 }
 
 // optional int32 timeZone = 6;
@@ -389,11 +457,13 @@ inline void MajorType::clear_timezone() {
   clear_has_timezone();
 }
 inline ::google::protobuf::int32 MajorType::timezone() const {
+  // @@protoc_insertion_point(field_get:common.MajorType.timeZone)
   return timezone_;
 }
 inline void MajorType::set_timezone(::google::protobuf::int32 value) {
   set_has_timezone();
   timezone_ = value;
+  // @@protoc_insertion_point(field_set:common.MajorType.timeZone)
 }
 
 // repeated .common.MinorType sub_type = 7;
@@ -404,47 +474,55 @@ inline void MajorType::clear_sub_type() {
   sub_type_.Clear();
 }
 inline ::common::MinorType MajorType::sub_type(int index) const {
+  // @@protoc_insertion_point(field_get:common.MajorType.sub_type)
   return static_cast< ::common::MinorType >(sub_type_.Get(index));
 }
 inline void MajorType::set_sub_type(int index, ::common::MinorType value) {
   assert(::common::MinorType_IsValid(value));
   sub_type_.Set(index, value);
+  // @@protoc_insertion_point(field_set:common.MajorType.sub_type)
 }
 inline void MajorType::add_sub_type(::common::MinorType value) {
   assert(::common::MinorType_IsValid(value));
   sub_type_.Add(value);
+  // @@protoc_insertion_point(field_add:common.MajorType.sub_type)
 }
 inline const ::google::protobuf::RepeatedField<int>&
 MajorType::sub_type() const {
+  // @@protoc_insertion_point(field_list:common.MajorType.sub_type)
   return sub_type_;
 }
 inline ::google::protobuf::RepeatedField<int>*
 MajorType::mutable_sub_type() {
+  // @@protoc_insertion_point(field_mutable_list:common.MajorType.sub_type)
   return &sub_type_;
 }
 
+#ifdef __GNUC__
+  #pragma GCC diagnostic pop
+#endif  // __GNUC__
 
 // @@protoc_insertion_point(namespace_scope)
 
 }  // namespace common
 
-#ifndef SWIG
 namespace google {
 namespace protobuf {
 
+template <> struct is_proto_enum< ::common::MinorType> : ::std::true_type {};
 template <>
 inline const EnumDescriptor* GetEnumDescriptor< ::common::MinorType>() {
   return ::common::MinorType_descriptor();
 }
+template <> struct is_proto_enum< ::common::DataMode> : ::std::true_type {};
 template <>
 inline const EnumDescriptor* GetEnumDescriptor< ::common::DataMode>() {
   return ::common::DataMode_descriptor();
 }
 
-}  // namespace google
 }  // namespace protobuf
-#endif  // SWIG
+}  // namespace google
 
 // @@protoc_insertion_point(global_scope)
 
-#endif  // PROTOBUF_Types_2eproto__INCLUDED
+#endif  // PROTOBUF_INCLUDED_Types_2eproto
diff --git a/contrib/native/client/src/protobuf/BitControl.pb.cc b/contrib/native/client/src/protobuf/BitControl.pb.cc
index 53e53ea..3bf9db5 100644
--- a/contrib/native/client/src/protobuf/BitControl.pb.cc
+++ b/contrib/native/client/src/protobuf/BitControl.pb.cc
@@ -1,403 +1,520 @@
 // Generated by the protocol buffer compiler.  DO NOT EDIT!
 // source: BitControl.proto
 
-#define INTERNAL_SUPPRESS_PROTOBUF_FIELD_DEPRECATION
 #include "BitControl.pb.h"
 
 #include <algorithm>
 
 #include <google/protobuf/stubs/common.h>
-#include <google/protobuf/stubs/once.h>
+#include <google/protobuf/stubs/port.h>
 #include <google/protobuf/io/coded_stream.h>
 #include <google/protobuf/wire_format_lite_inl.h>
 #include <google/protobuf/descriptor.h>
 #include <google/protobuf/generated_message_reflection.h>
 #include <google/protobuf/reflection_ops.h>
 #include <google/protobuf/wire_format.h>
+// This is a temporary google only hack
+#ifdef GOOGLE_PROTOBUF_ENFORCE_UNIQUENESS
+#include "third_party/protobuf/version.h"
+#endif
 // @@protoc_insertion_point(includes)
 
+namespace protobuf_BitControl_2eproto {
+extern PROTOBUF_INTERNAL_EXPORT_protobuf_BitControl_2eproto ::google::protobuf::internal::SCCInfo<0> scc_info_Collector;
+extern PROTOBUF_INTERNAL_EXPORT_protobuf_BitControl_2eproto ::google::protobuf::internal::SCCInfo<0> scc_info_QueryContextInformation;
+extern PROTOBUF_INTERNAL_EXPORT_protobuf_BitControl_2eproto ::google::protobuf::internal::SCCInfo<2> scc_info_FragmentStatus;
+extern PROTOBUF_INTERNAL_EXPORT_protobuf_BitControl_2eproto ::google::protobuf::internal::SCCInfo<5> scc_info_PlanFragment;
+}  // namespace protobuf_BitControl_2eproto
+namespace protobuf_Coordination_2eproto {
+extern PROTOBUF_INTERNAL_EXPORT_protobuf_Coordination_2eproto ::google::protobuf::internal::SCCInfo<1> scc_info_DrillbitEndpoint;
+}  // namespace protobuf_Coordination_2eproto
+namespace protobuf_ExecutionProtos_2eproto {
+extern PROTOBUF_INTERNAL_EXPORT_protobuf_ExecutionProtos_2eproto ::google::protobuf::internal::SCCInfo<1> scc_info_FragmentHandle;
+}  // namespace protobuf_ExecutionProtos_2eproto
+namespace protobuf_UserBitShared_2eproto {
+extern PROTOBUF_INTERNAL_EXPORT_protobuf_UserBitShared_2eproto ::google::protobuf::internal::SCCInfo<0> scc_info_UserCredentials;
+extern PROTOBUF_INTERNAL_EXPORT_protobuf_UserBitShared_2eproto ::google::protobuf::internal::SCCInfo<3> scc_info_MinorFragmentProfile;
+}  // namespace protobuf_UserBitShared_2eproto
 namespace exec {
 namespace bit {
 namespace control {
+class BitControlHandshakeDefaultTypeInternal {
+ public:
+  ::google::protobuf::internal::ExplicitlyConstructed<BitControlHandshake>
+      _instance;
+} _BitControlHandshake_default_instance_;
+class BitStatusDefaultTypeInternal {
+ public:
+  ::google::protobuf::internal::ExplicitlyConstructed<BitStatus>
+      _instance;
+} _BitStatus_default_instance_;
+class FragmentStatusDefaultTypeInternal {
+ public:
+  ::google::protobuf::internal::ExplicitlyConstructed<FragmentStatus>
+      _instance;
+} _FragmentStatus_default_instance_;
+class InitializeFragmentsDefaultTypeInternal {
+ public:
+  ::google::protobuf::internal::ExplicitlyConstructed<InitializeFragments>
+      _instance;
+} _InitializeFragments_default_instance_;
+class CustomMessageDefaultTypeInternal {
+ public:
+  ::google::protobuf::internal::ExplicitlyConstructed<CustomMessage>
+      _instance;
+} _CustomMessage_default_instance_;
+class PlanFragmentDefaultTypeInternal {
+ public:
+  ::google::protobuf::internal::ExplicitlyConstructed<PlanFragment>
+      _instance;
+} _PlanFragment_default_instance_;
+class CollectorDefaultTypeInternal {
+ public:
+  ::google::protobuf::internal::ExplicitlyConstructed<Collector>
+      _instance;
+} _Collector_default_instance_;
+class QueryContextInformationDefaultTypeInternal {
+ public:
+  ::google::protobuf::internal::ExplicitlyConstructed<QueryContextInformation>
+      _instance;
+} _QueryContextInformation_default_instance_;
+class WorkQueueStatusDefaultTypeInternal {
+ public:
+  ::google::protobuf::internal::ExplicitlyConstructed<WorkQueueStatus>
+      _instance;
+} _WorkQueueStatus_default_instance_;
+class FinishedReceiverDefaultTypeInternal {
+ public:
+  ::google::protobuf::internal::ExplicitlyConstructed<FinishedReceiver>
+      _instance;
+} _FinishedReceiver_default_instance_;
+}  // namespace control
+}  // namespace bit
+}  // namespace exec
+namespace protobuf_BitControl_2eproto {
+static void InitDefaultsBitControlHandshake() {
+  GOOGLE_PROTOBUF_VERIFY_VERSION;
 
-namespace {
-
-const ::google::protobuf::Descriptor* BitControlHandshake_descriptor_ = NULL;
-const ::google::protobuf::internal::GeneratedMessageReflection*
-  BitControlHandshake_reflection_ = NULL;
-const ::google::protobuf::Descriptor* BitStatus_descriptor_ = NULL;
-const ::google::protobuf::internal::GeneratedMessageReflection*
-  BitStatus_reflection_ = NULL;
-const ::google::protobuf::Descriptor* FragmentStatus_descriptor_ = NULL;
-const ::google::protobuf::internal::GeneratedMessageReflection*
-  FragmentStatus_reflection_ = NULL;
-const ::google::protobuf::Descriptor* InitializeFragments_descriptor_ = NULL;
-const ::google::protobuf::internal::GeneratedMessageReflection*
-  InitializeFragments_reflection_ = NULL;
-const ::google::protobuf::Descriptor* CustomMessage_descriptor_ = NULL;
-const ::google::protobuf::internal::GeneratedMessageReflection*
-  CustomMessage_reflection_ = NULL;
-const ::google::protobuf::Descriptor* PlanFragment_descriptor_ = NULL;
-const ::google::protobuf::internal::GeneratedMessageReflection*
-  PlanFragment_reflection_ = NULL;
-const ::google::protobuf::Descriptor* Collector_descriptor_ = NULL;
-const ::google::protobuf::internal::GeneratedMessageReflection*
-  Collector_reflection_ = NULL;
-const ::google::protobuf::Descriptor* QueryContextInformation_descriptor_ = NULL;
-const ::google::protobuf::internal::GeneratedMessageReflection*
-  QueryContextInformation_reflection_ = NULL;
-const ::google::protobuf::Descriptor* WorkQueueStatus_descriptor_ = NULL;
-const ::google::protobuf::internal::GeneratedMessageReflection*
-  WorkQueueStatus_reflection_ = NULL;
-const ::google::protobuf::Descriptor* FinishedReceiver_descriptor_ = NULL;
-const ::google::protobuf::internal::GeneratedMessageReflection*
-  FinishedReceiver_reflection_ = NULL;
-const ::google::protobuf::EnumDescriptor* RpcType_descriptor_ = NULL;
-
-}  // namespace
-
-
-void protobuf_AssignDesc_BitControl_2eproto() {
-  protobuf_AddDesc_BitControl_2eproto();
-  const ::google::protobuf::FileDescriptor* file =
-    ::google::protobuf::DescriptorPool::generated_pool()->FindFileByName(
-      "BitControl.proto");
-  GOOGLE_CHECK(file != NULL);
-  BitControlHandshake_descriptor_ = file->message_type(0);
-  static const int BitControlHandshake_offsets_[4] = {
-    GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(BitControlHandshake, rpc_version_),
-    GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(BitControlHandshake, channel_),
-    GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(BitControlHandshake, endpoint_),
-    GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(BitControlHandshake, authenticationmechanisms_),
-  };
-  BitControlHandshake_reflection_ =
-    new ::google::protobuf::internal::GeneratedMessageReflection(
-      BitControlHandshake_descriptor_,
-      BitControlHandshake::default_instance_,
-      BitControlHandshake_offsets_,
-      GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(BitControlHandshake, _has_bits_[0]),
-      GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(BitControlHandshake, _unknown_fields_),
-      -1,
-      ::google::protobuf::DescriptorPool::generated_pool(),
-      ::google::protobuf::MessageFactory::generated_factory(),
-      sizeof(BitControlHandshake));
-  BitStatus_descriptor_ = file->message_type(1);
-  static const int BitStatus_offsets_[1] = {
-    GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(BitStatus, fragment_status_),
-  };
-  BitStatus_reflection_ =
-    new ::google::protobuf::internal::GeneratedMessageReflection(
-      BitStatus_descriptor_,
-      BitStatus::default_instance_,
-      BitStatus_offsets_,
-      GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(BitStatus, _has_bits_[0]),
-      GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(BitStatus, _unknown_fields_),
-      -1,
-      ::google::protobuf::DescriptorPool::generated_pool(),
-      ::google::protobuf::MessageFactory::generated_factory(),
-      sizeof(BitStatus));
-  FragmentStatus_descriptor_ = file->message_type(2);
-  static const int FragmentStatus_offsets_[2] = {
-    GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(FragmentStatus, profile_),
-    GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(FragmentStatus, handle_),
-  };
-  FragmentStatus_reflection_ =
-    new ::google::protobuf::internal::GeneratedMessageReflection(
-      FragmentStatus_descriptor_,
-      FragmentStatus::default_instance_,
-      FragmentStatus_offsets_,
-      GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(FragmentStatus, _has_bits_[0]),
-      GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(FragmentStatus, _unknown_fields_),
-      -1,
-      ::google::protobuf::DescriptorPool::generated_pool(),
-      ::google::protobuf::MessageFactory::generated_factory(),
-      sizeof(FragmentStatus));
-  InitializeFragments_descriptor_ = file->message_type(3);
-  static const int InitializeFragments_offsets_[1] = {
-    GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(InitializeFragments, fragment_),
-  };
-  InitializeFragments_reflection_ =
-    new ::google::protobuf::internal::GeneratedMessageReflection(
-      InitializeFragments_descriptor_,
-      InitializeFragments::default_instance_,
-      InitializeFragments_offsets_,
-      GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(InitializeFragments, _has_bits_[0]),
-      GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(InitializeFragments, _unknown_fields_),
-      -1,
-      ::google::protobuf::DescriptorPool::generated_pool(),
-      ::google::protobuf::MessageFactory::generated_factory(),
-      sizeof(InitializeFragments));
-  CustomMessage_descriptor_ = file->message_type(4);
-  static const int CustomMessage_offsets_[2] = {
-    GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(CustomMessage, type_),
-    GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(CustomMessage, message_),
-  };
-  CustomMessage_reflection_ =
-    new ::google::protobuf::internal::GeneratedMessageReflection(
-      CustomMessage_descriptor_,
-      CustomMessage::default_instance_,
-      CustomMessage_offsets_,
-      GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(CustomMessage, _has_bits_[0]),
-      GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(CustomMessage, _unknown_fields_),
-      -1,
-      ::google::protobuf::DescriptorPool::generated_pool(),
-      ::google::protobuf::MessageFactory::generated_factory(),
-      sizeof(CustomMessage));
-  PlanFragment_descriptor_ = file->message_type(5);
-  static const int PlanFragment_offsets_[15] = {
-    GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(PlanFragment, handle_),
-    GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(PlanFragment, network_cost_),
-    GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(PlanFragment, cpu_cost_),
-    GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(PlanFragment, disk_cost_),
-    GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(PlanFragment, memory_cost_),
-    GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(PlanFragment, fragment_json_),
-    GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(PlanFragment, leaf_fragment_),
-    GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(PlanFragment, assignment_),
-    GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(PlanFragment, foreman_),
-    GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(PlanFragment, mem_initial_),
-    GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(PlanFragment, mem_max_),
-    GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(PlanFragment, credentials_),
-    GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(PlanFragment, options_json_),
-    GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(PlanFragment, context_),
-    GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(PlanFragment, collector_),
-  };
-  PlanFragment_reflection_ =
-    new ::google::protobuf::internal::GeneratedMessageReflection(
-      PlanFragment_descriptor_,
-      PlanFragment::default_instance_,
-      PlanFragment_offsets_,
-      GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(PlanFragment, _has_bits_[0]),
-      GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(PlanFragment, _unknown_fields_),
-      -1,
-      ::google::protobuf::DescriptorPool::generated_pool(),
-      ::google::protobuf::MessageFactory::generated_factory(),
-      sizeof(PlanFragment));
-  Collector_descriptor_ = file->message_type(6);
-  static const int Collector_offsets_[4] = {
-    GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(Collector, opposite_major_fragment_id_),
-    GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(Collector, incoming_minor_fragment_),
-    GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(Collector, supports_out_of_order_),
-    GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(Collector, is_spooling_),
-  };
-  Collector_reflection_ =
-    new ::google::protobuf::internal::GeneratedMessageReflection(
-      Collector_descriptor_,
-      Collector::default_instance_,
-      Collector_offsets_,
-      GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(Collector, _has_bits_[0]),
-      GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(Collector, _unknown_fields_),
-      -1,
-      ::google::protobuf::DescriptorPool::generated_pool(),
-      ::google::protobuf::MessageFactory::generated_factory(),
-      sizeof(Collector));
-  QueryContextInformation_descriptor_ = file->message_type(7);
-  static const int QueryContextInformation_offsets_[4] = {
-    GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(QueryContextInformation, query_start_time_),
-    GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(QueryContextInformation, time_zone_),
-    GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(QueryContextInformation, default_schema_name_),
-    GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(QueryContextInformation, session_id_),
-  };
-  QueryContextInformation_reflection_ =
-    new ::google::protobuf::internal::GeneratedMessageReflection(
-      QueryContextInformation_descriptor_,
-      QueryContextInformation::default_instance_,
-      QueryContextInformation_offsets_,
-      GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(QueryContextInformation, _has_bits_[0]),
-      GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(QueryContextInformation, _unknown_fields_),
-      -1,
-      ::google::protobuf::DescriptorPool::generated_pool(),
-      ::google::protobuf::MessageFactory::generated_factory(),
-      sizeof(QueryContextInformation));
-  WorkQueueStatus_descriptor_ = file->message_type(8);
-  static const int WorkQueueStatus_offsets_[3] = {
-    GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(WorkQueueStatus, endpoint_),
-    GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(WorkQueueStatus, queue_length_),
-    GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(WorkQueueStatus, report_time_),
-  };
-  WorkQueueStatus_reflection_ =
-    new ::google::protobuf::internal::GeneratedMessageReflection(
-      WorkQueueStatus_descriptor_,
-      WorkQueueStatus::default_instance_,
-      WorkQueueStatus_offsets_,
-      GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(WorkQueueStatus, _has_bits_[0]),
-      GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(WorkQueueStatus, _unknown_fields_),
-      -1,
-      ::google::protobuf::DescriptorPool::generated_pool(),
-      ::google::protobuf::MessageFactory::generated_factory(),
-      sizeof(WorkQueueStatus));
-  FinishedReceiver_descriptor_ = file->message_type(9);
-  static const int FinishedReceiver_offsets_[2] = {
-    GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(FinishedReceiver, receiver_),
-    GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(FinishedReceiver, sender_),
-  };
-  FinishedReceiver_reflection_ =
-    new ::google::protobuf::internal::GeneratedMessageReflection(
-      FinishedReceiver_descriptor_,
-      FinishedReceiver::default_instance_,
-      FinishedReceiver_offsets_,
-      GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(FinishedReceiver, _has_bits_[0]),
-      GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(FinishedReceiver, _unknown_fields_),
-      -1,
-      ::google::protobuf::DescriptorPool::generated_pool(),
-      ::google::protobuf::MessageFactory::generated_factory(),
-      sizeof(FinishedReceiver));
-  RpcType_descriptor_ = file->enum_type(0);
+  {
+    void* ptr = &::exec::bit::control::_BitControlHandshake_default_instance_;
+    new (ptr) ::exec::bit::control::BitControlHandshake();
+    ::google::protobuf::internal::OnShutdownDestroyMessage(ptr);
+  }
+  ::exec::bit::control::BitControlHandshake::InitAsDefaultInstance();
 }
 
-namespace {
+::google::protobuf::internal::SCCInfo<1> scc_info_BitControlHandshake =
+    {{ATOMIC_VAR_INIT(::google::protobuf::internal::SCCInfoBase::kUninitialized), 1, InitDefaultsBitControlHandshake}, {
+      &protobuf_Coordination_2eproto::scc_info_DrillbitEndpoint.base,}};
 
-GOOGLE_PROTOBUF_DECLARE_ONCE(protobuf_AssignDescriptors_once_);
-inline void protobuf_AssignDescriptorsOnce() {
-  ::google::protobuf::GoogleOnceInit(&protobuf_AssignDescriptors_once_,
-                 &protobuf_AssignDesc_BitControl_2eproto);
+static void InitDefaultsBitStatus() {
+  GOOGLE_PROTOBUF_VERIFY_VERSION;
+
+  {
+    void* ptr = &::exec::bit::control::_BitStatus_default_instance_;
+    new (ptr) ::exec::bit::control::BitStatus();
+    ::google::protobuf::internal::OnShutdownDestroyMessage(ptr);
+  }
+  ::exec::bit::control::BitStatus::InitAsDefaultInstance();
 }
 
-void protobuf_RegisterTypes(const ::std::string&) {
-  protobuf_AssignDescriptorsOnce();
-  ::google::protobuf::MessageFactory::InternalRegisterGeneratedMessage(
-    BitControlHandshake_descriptor_, &BitControlHandshake::default_instance());
-  ::google::protobuf::MessageFactory::InternalRegisterGeneratedMessage(
-    BitStatus_descriptor_, &BitStatus::default_instance());
-  ::google::protobuf::MessageFactory::InternalRegisterGeneratedMessage(
-    FragmentStatus_descriptor_, &FragmentStatus::default_instance());
-  ::google::protobuf::MessageFactory::InternalRegisterGeneratedMessage(
-    InitializeFragments_descriptor_, &InitializeFragments::default_instance());
-  ::google::protobuf::MessageFactory::InternalRegisterGeneratedMessage(
-    CustomMessage_descriptor_, &CustomMessage::default_instance());
-  ::google::protobuf::MessageFactory::InternalRegisterGeneratedMessage(
-    PlanFragment_descriptor_, &PlanFragment::default_instance());
-  ::google::protobuf::MessageFactory::InternalRegisterGeneratedMessage(
-    Collector_descriptor_, &Collector::default_instance());
-  ::google::protobuf::MessageFactory::InternalRegisterGeneratedMessage(
-    QueryContextInformation_descriptor_, &QueryContextInformation::default_instance());
-  ::google::protobuf::MessageFactory::InternalRegisterGeneratedMessage(
-    WorkQueueStatus_descriptor_, &WorkQueueStatus::default_instance());
-  ::google::protobuf::MessageFactory::InternalRegisterGeneratedMessage(
-    FinishedReceiver_descriptor_, &FinishedReceiver::default_instance());
-}
-
-}  // namespace
-
-void protobuf_ShutdownFile_BitControl_2eproto() {
-  delete BitControlHandshake::default_instance_;
-  delete BitControlHandshake_reflection_;
-  delete BitStatus::default_instance_;
-  delete BitStatus_reflection_;
-  delete FragmentStatus::default_instance_;
-  delete FragmentStatus_reflection_;
-  delete InitializeFragments::default_instance_;
-  delete InitializeFragments_reflection_;
-  delete CustomMessage::default_instance_;
-  delete CustomMessage_reflection_;
-  delete PlanFragment::default_instance_;
-  delete PlanFragment_reflection_;
-  delete Collector::default_instance_;
-  delete Collector_reflection_;
-  delete QueryContextInformation::default_instance_;
-  delete QueryContextInformation_reflection_;
-  delete WorkQueueStatus::default_instance_;
-  delete WorkQueueStatus_reflection_;
-  delete FinishedReceiver::default_instance_;
-  delete FinishedReceiver_reflection_;
-}
-
-void protobuf_AddDesc_BitControl_2eproto() {
-  static bool already_here = false;
-  if (already_here) return;
-  already_here = true;
+::google::protobuf::internal::SCCInfo<1> scc_info_BitStatus =
+    {{ATOMIC_VAR_INIT(::google::protobuf::internal::SCCInfoBase::kUninitialized), 1, InitDefaultsBitStatus}, {
+      &protobuf_BitControl_2eproto::scc_info_FragmentStatus.base,}};
+
+static void InitDefaultsFragmentStatus() {
+  GOOGLE_PROTOBUF_VERIFY_VERSION;
+
+  {
+    void* ptr = &::exec::bit::control::_FragmentStatus_default_instance_;
+    new (ptr) ::exec::bit::control::FragmentStatus();
+    ::google::protobuf::internal::OnShutdownDestroyMessage(ptr);
+  }
+  ::exec::bit::control::FragmentStatus::InitAsDefaultInstance();
+}
+
+::google::protobuf::internal::SCCInfo<2> scc_info_FragmentStatus =
+    {{ATOMIC_VAR_INIT(::google::protobuf::internal::SCCInfoBase::kUninitialized), 2, InitDefaultsFragmentStatus}, {
+      &protobuf_UserBitShared_2eproto::scc_info_MinorFragmentProfile.base,
+      &protobuf_ExecutionProtos_2eproto::scc_info_FragmentHandle.base,}};
+
+static void InitDefaultsInitializeFragments() {
+  GOOGLE_PROTOBUF_VERIFY_VERSION;
+
+  {
+    void* ptr = &::exec::bit::control::_InitializeFragments_default_instance_;
+    new (ptr) ::exec::bit::control::InitializeFragments();
+    ::google::protobuf::internal::OnShutdownDestroyMessage(ptr);
+  }
+  ::exec::bit::control::InitializeFragments::InitAsDefaultInstance();
+}
+
+::google::protobuf::internal::SCCInfo<1> scc_info_InitializeFragments =
+    {{ATOMIC_VAR_INIT(::google::protobuf::internal::SCCInfoBase::kUninitialized), 1, InitDefaultsInitializeFragments}, {
+      &protobuf_BitControl_2eproto::scc_info_PlanFragment.base,}};
+
+static void InitDefaultsCustomMessage() {
+  GOOGLE_PROTOBUF_VERIFY_VERSION;
+
+  {
+    void* ptr = &::exec::bit::control::_CustomMessage_default_instance_;
+    new (ptr) ::exec::bit::control::CustomMessage();
+    ::google::protobuf::internal::OnShutdownDestroyMessage(ptr);
+  }
+  ::exec::bit::control::CustomMessage::InitAsDefaultInstance();
+}
+
+::google::protobuf::internal::SCCInfo<0> scc_info_CustomMessage =
+    {{ATOMIC_VAR_INIT(::google::protobuf::internal::SCCInfoBase::kUninitialized), 0, InitDefaultsCustomMessage}, {}};
+
+static void InitDefaultsPlanFragment() {
+  GOOGLE_PROTOBUF_VERIFY_VERSION;
+
+  {
+    void* ptr = &::exec::bit::control::_PlanFragment_default_instance_;
+    new (ptr) ::exec::bit::control::PlanFragment();
+    ::google::protobuf::internal::OnShutdownDestroyMessage(ptr);
+  }
+  ::exec::bit::control::PlanFragment::InitAsDefaultInstance();
+}
+
+::google::protobuf::internal::SCCInfo<5> scc_info_PlanFragment =
+    {{ATOMIC_VAR_INIT(::google::protobuf::internal::SCCInfoBase::kUninitialized), 5, InitDefaultsPlanFragment}, {
+      &protobuf_ExecutionProtos_2eproto::scc_info_FragmentHandle.base,
+      &protobuf_Coordination_2eproto::scc_info_DrillbitEndpoint.base,
+      &protobuf_UserBitShared_2eproto::scc_info_UserCredentials.base,
+      &protobuf_BitControl_2eproto::scc_info_QueryContextInformation.base,
+      &protobuf_BitControl_2eproto::scc_info_Collector.base,}};
+
+static void InitDefaultsCollector() {
   GOOGLE_PROTOBUF_VERIFY_VERSION;
 
-  ::exec::bit::protobuf_AddDesc_ExecutionProtos_2eproto();
-  ::exec::protobuf_AddDesc_Coordination_2eproto();
-  ::exec::shared::protobuf_AddDesc_UserBitShared_2eproto();
+  {
+    void* ptr = &::exec::bit::control::_Collector_default_instance_;
+    new (ptr) ::exec::bit::control::Collector();
+    ::google::protobuf::internal::OnShutdownDestroyMessage(ptr);
+  }
+  ::exec::bit::control::Collector::InitAsDefaultInstance();
+}
+
+::google::protobuf::internal::SCCInfo<0> scc_info_Collector =
+    {{ATOMIC_VAR_INIT(::google::protobuf::internal::SCCInfoBase::kUninitialized), 0, InitDefaultsCollector}, {}};
+
+static void InitDefaultsQueryContextInformation() {
+  GOOGLE_PROTOBUF_VERIFY_VERSION;
+
+  {
+    void* ptr = &::exec::bit::control::_QueryContextInformation_default_instance_;
+    new (ptr) ::exec::bit::control::QueryContextInformation();
+    ::google::protobuf::internal::OnShutdownDestroyMessage(ptr);
+  }
+  ::exec::bit::control::QueryContextInformation::InitAsDefaultInstance();
+}
+
+::google::protobuf::internal::SCCInfo<0> scc_info_QueryContextInformation =
+    {{ATOMIC_VAR_INIT(::google::protobuf::internal::SCCInfoBase::kUninitialized), 0, InitDefaultsQueryContextInformation}, {}};
+
+static void InitDefaultsWorkQueueStatus() {
+  GOOGLE_PROTOBUF_VERIFY_VERSION;
+
+  {
+    void* ptr = &::exec::bit::control::_WorkQueueStatus_default_instance_;
+    new (ptr) ::exec::bit::control::WorkQueueStatus();
+    ::google::protobuf::internal::OnShutdownDestroyMessage(ptr);
+  }
+  ::exec::bit::control::WorkQueueStatus::InitAsDefaultInstance();
+}
+
+::google::protobuf::internal::SCCInfo<1> scc_info_WorkQueueStatus =
+    {{ATOMIC_VAR_INIT(::google::protobuf::internal::SCCInfoBase::kUninitialized), 1, InitDefaultsWorkQueueStatus}, {
+      &protobuf_Coordination_2eproto::scc_info_DrillbitEndpoint.base,}};
+
+static void InitDefaultsFinishedReceiver() {
+  GOOGLE_PROTOBUF_VERIFY_VERSION;
+
+  {
+    void* ptr = &::exec::bit::control::_FinishedReceiver_default_instance_;
+    new (ptr) ::exec::bit::control::FinishedReceiver();
+    ::google::protobuf::internal::OnShutdownDestroyMessage(ptr);
+  }
+  ::exec::bit::control::FinishedReceiver::InitAsDefaultInstance();
+}
+
+::google::protobuf::internal::SCCInfo<1> scc_info_FinishedReceiver =
+    {{ATOMIC_VAR_INIT(::google::protobuf::internal::SCCInfoBase::kUninitialized), 1, InitDefaultsFinishedReceiver}, {
+      &protobuf_ExecutionProtos_2eproto::scc_info_FragmentHandle.base,}};
+
+void InitDefaults() {
+  ::google::protobuf::internal::InitSCC(&scc_info_BitControlHandshake.base);
+  ::google::protobuf::internal::InitSCC(&scc_info_BitStatus.base);
+  ::google::protobuf::internal::InitSCC(&scc_info_FragmentStatus.base);
+  ::google::protobuf::internal::InitSCC(&scc_info_InitializeFragments.base);
+  ::google::protobuf::internal::InitSCC(&scc_info_CustomMessage.base);
+  ::google::protobuf::internal::InitSCC(&scc_info_PlanFragment.base);
+  ::google::protobuf::internal::InitSCC(&scc_info_Collector.base);
+  ::google::protobuf::internal::InitSCC(&scc_info_QueryContextInformation.base);
+  ::google::protobuf::internal::InitSCC(&scc_info_WorkQueueStatus.base);
+  ::google::protobuf::internal::InitSCC(&scc_info_FinishedReceiver.base);
+}
+
+::google::protobuf::Metadata file_level_metadata[10];
+const ::google::protobuf::EnumDescriptor* file_level_enum_descriptors[1];
+
+const ::google::protobuf::uint32 TableStruct::offsets[] GOOGLE_PROTOBUF_ATTRIBUTE_SECTION_VARIABLE(protodesc_cold) = {
+  GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(::exec::bit::control::BitControlHandshake, _has_bits_),
+  GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(::exec::bit::control::BitControlHandshake, _internal_metadata_),
+  ~0u,  // no _extensions_
+  ~0u,  // no _oneof_case_
+  ~0u,  // no _weak_field_map_
+  GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(::exec::bit::control::BitControlHandshake, rpc_version_),
+  GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(::exec::bit::control::BitControlHandshake, channel_),
+  GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(::exec::bit::control::BitControlHandshake, endpoint_),
+  GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(::exec::bit::control::BitControlHandshake, authenticationmechanisms_),
+  1,
+  2,
+  0,
+  ~0u,
+  GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(::exec::bit::control::BitStatus, _has_bits_),
+  GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(::exec::bit::control::BitStatus, _internal_metadata_),
+  ~0u,  // no _extensions_
+  ~0u,  // no _oneof_case_
+  ~0u,  // no _weak_field_map_
+  GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(::exec::bit::control::BitStatus, fragment_status_),
+  ~0u,
+  GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(::exec::bit::control::FragmentStatus, _has_bits_),
+  GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(::exec::bit::control::FragmentStatus, _internal_metadata_),
+  ~0u,  // no _extensions_
+  ~0u,  // no _oneof_case_
+  ~0u,  // no _weak_field_map_
+  GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(::exec::bit::control::FragmentStatus, profile_),
+  GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(::exec::bit::control::FragmentStatus, handle_),
+  0,
+  1,
+  GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(::exec::bit::control::InitializeFragments, _has_bits_),
+  GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(::exec::bit::control::InitializeFragments, _internal_metadata_),
+  ~0u,  // no _extensions_
+  ~0u,  // no _oneof_case_
+  ~0u,  // no _weak_field_map_
+  GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(::exec::bit::control::InitializeFragments, fragment_),
+  ~0u,
+  GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(::exec::bit::control::CustomMessage, _has_bits_),
+  GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(::exec::bit::control::CustomMessage, _internal_metadata_),
+  ~0u,  // no _extensions_
+  ~0u,  // no _oneof_case_
+  ~0u,  // no _weak_field_map_
+  GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(::exec::bit::control::CustomMessage, type_),
+  GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(::exec::bit::control::CustomMessage, message_),
+  1,
+  0,
+  GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(::exec::bit::control::PlanFragment, _has_bits_),
+  GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(::exec::bit::control::PlanFragment, _internal_metadata_),
+  ~0u,  // no _extensions_
+  ~0u,  // no _oneof_case_
+  ~0u,  // no _weak_field_map_
+  GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(::exec::bit::control::PlanFragment, handle_),
+  GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(::exec::bit::control::PlanFragment, network_cost_),
+  GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(::exec::bit::control::PlanFragment, cpu_cost_),
+  GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(::exec::bit::control::PlanFragment, disk_cost_),
+  GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(::exec::bit::control::PlanFragment, memory_cost_),
+  GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(::exec::bit::control::PlanFragment, fragment_json_),
+  GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(::exec::bit::control::PlanFragment, leaf_fragment_),
+  GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(::exec::bit::control::PlanFragment, assignment_),
+  GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(::exec::bit::control::PlanFragment, foreman_),
+  GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(::exec::bit::control::PlanFragment, mem_initial_),
+  GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(::exec::bit::control::PlanFragment, mem_max_),
+  GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(::exec::bit::control::PlanFragment, credentials_),
+  GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(::exec::bit::control::PlanFragment, options_json_),
+  GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(::exec::bit::control::PlanFragment, context_),
+  GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(::exec::bit::control::PlanFragment, collector_),
+  2,
+  7,
+  8,
+  9,
+  10,
+  0,
+  11,
+  3,
+  4,
+  12,
+  13,
+  5,
+  1,
+  6,
+  ~0u,
+  GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(::exec::bit::control::Collector, _has_bits_),
+  GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(::exec::bit::control::Collector, _internal_metadata_),
+  ~0u,  // no _extensions_
+  ~0u,  // no _oneof_case_
+  ~0u,  // no _weak_field_map_
+  GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(::exec::bit::control::Collector, opposite_major_fragment_id_),
+  GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(::exec::bit::control::Collector, incoming_minor_fragment_),
+  GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(::exec::bit::control::Collector, supports_out_of_order_),
+  GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(::exec::bit::control::Collector, is_spooling_),
+  0,
+  ~0u,
+  1,
+  2,
+  GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(::exec::bit::control::QueryContextInformation, _has_bits_),
+  GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(::exec::bit::control::QueryContextInformation, _internal_metadata_),
+  ~0u,  // no _extensions_
+  ~0u,  // no _oneof_case_
+  ~0u,  // no _weak_field_map_
+  GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(::exec::bit::control::QueryContextInformation, query_start_time_),
+  GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(::exec::bit::control::QueryContextInformation, time_zone_),
+  GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(::exec::bit::control::QueryContextInformation, default_schema_name_),
+  GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(::exec::bit::control::QueryContextInformation, session_id_),
+  2,
+  3,
+  0,
+  1,
+  GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(::exec::bit::control::WorkQueueStatus, _has_bits_),
+  GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(::exec::bit::control::WorkQueueStatus, _internal_metadata_),
+  ~0u,  // no _extensions_
+  ~0u,  // no _oneof_case_
+  ~0u,  // no _weak_field_map_
+  GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(::exec::bit::control::WorkQueueStatus, endpoint_),
+  GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(::exec::bit::control::WorkQueueStatus, queue_length_),
+  GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(::exec::bit::control::WorkQueueStatus, report_time_),
+  0,
+  2,
+  1,
+  GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(::exec::bit::control::FinishedReceiver, _has_bits_),
+  GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(::exec::bit::control::FinishedReceiver, _internal_metadata_),
+  ~0u,  // no _extensions_
+  ~0u,  // no _oneof_case_
+  ~0u,  // no _weak_field_map_
+  GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(::exec::bit::control::FinishedReceiver, receiver_),
+  GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(::exec::bit::control::FinishedReceiver, sender_),
+  0,
+  1,
+};
+static const ::google::protobuf::internal::MigrationSchema schemas[] GOOGLE_PROTOBUF_ATTRIBUTE_SECTION_VARIABLE(protodesc_cold) = {
+  { 0, 9, sizeof(::exec::bit::control::BitControlHandshake)},
+  { 13, 19, sizeof(::exec::bit::control::BitStatus)},
+  { 20, 27, sizeof(::exec::bit::control::FragmentStatus)},
+  { 29, 35, sizeof(::exec::bit::control::InitializeFragments)},
+  { 36, 43, sizeof(::exec::bit::control::CustomMessage)},
+  { 45, 65, sizeof(::exec::bit::control::PlanFragment)},
+  { 80, 89, sizeof(::exec::bit::control::Collector)},
+  { 93, 102, sizeof(::exec::bit::control::QueryContextInformation)},
+  { 106, 114, sizeof(::exec::bit::control::WorkQueueStatus)},
+  { 117, 124, sizeof(::exec::bit::control::FinishedReceiver)},
+};
+
+static ::google::protobuf::Message const * const file_default_instances[] = {
+  reinterpret_cast<const ::google::protobuf::Message*>(&::exec::bit::control::_BitControlHandshake_default_instance_),
+  reinterpret_cast<const ::google::protobuf::Message*>(&::exec::bit::control::_BitStatus_default_instance_),
+  reinterpret_cast<const ::google::protobuf::Message*>(&::exec::bit::control::_FragmentStatus_default_instance_),
+  reinterpret_cast<const ::google::protobuf::Message*>(&::exec::bit::control::_InitializeFragments_default_instance_),
+  reinterpret_cast<const ::google::protobuf::Message*>(&::exec::bit::control::_CustomMessage_default_instance_),
+  reinterpret_cast<const ::google::protobuf::Message*>(&::exec::bit::control::_PlanFragment_default_instance_),
+  reinterpret_cast<const ::google::protobuf::Message*>(&::exec::bit::control::_Collector_default_instance_),
+  reinterpret_cast<const ::google::protobuf::Message*>(&::exec::bit::control::_QueryContextInformation_default_instance_),
+  reinterpret_cast<const ::google::protobuf::Message*>(&::exec::bit::control::_WorkQueueStatus_default_instance_),
+  reinterpret_cast<const ::google::protobuf::Message*>(&::exec::bit::control::_FinishedReceiver_default_instance_),
+};
+
+void protobuf_AssignDescriptors() {
+  AddDescriptors();
+  AssignDescriptors(
+      "BitControl.proto", schemas, file_default_instances, TableStruct::offsets,
+      file_level_metadata, file_level_enum_descriptors, NULL);
+}
+
+void protobuf_AssignDescriptorsOnce() {
+  static ::google::protobuf::internal::once_flag once;
+  ::google::protobuf::internal::call_once(once, protobuf_AssignDescriptors);
+}
+
+void protobuf_RegisterTypes(const ::std::string&) GOOGLE_PROTOBUF_ATTRIBUTE_COLD;
+void protobuf_RegisterTypes(const ::std::string&) {
+  protobuf_AssignDescriptorsOnce();
+  ::google::protobuf::internal::RegisterAllTypes(file_level_metadata, 10);
+}
+
+void AddDescriptorsImpl() {
+  InitDefaults();
+  static const char descriptor[] GOOGLE_PROTOBUF_ATTRIBUTE_SECTION_VARIABLE(protodesc_cold) = {
+      "\n\020BitControl.proto\022\020exec.bit.control\032\025Ex"
+      "ecutionProtos.proto\032\022Coordination.proto\032"
+      "\023UserBitShared.proto\"\255\001\n\023BitControlHands"
+      "hake\022\023\n\013rpc_version\030\001 \001(\005\0225\n\007channel\030\002 \001"
+      "(\0162\027.exec.shared.RpcChannel:\013BIT_CONTROL"
+      "\022(\n\010endpoint\030\003 \001(\0132\026.exec.DrillbitEndpoi"
+      "nt\022 \n\030authenticationMechanisms\030\004 \003(\t\"F\n\t"
+      "BitStatus\0229\n\017fragment_status\030\001 \003(\0132 .exe"
+      "c.bit.control.FragmentStatus\"n\n\016Fragment"
+      "Status\0222\n\007profile\030\001 \001(\0132!.exec.shared.Mi"
+      "norFragmentProfile\022(\n\006handle\030\002 \001(\0132\030.exe"
+      "c.bit.FragmentHandle\"G\n\023InitializeFragme"
+      "nts\0220\n\010fragment\030\001 \003(\0132\036.exec.bit.control"
+      ".PlanFragment\".\n\rCustomMessage\022\014\n\004type\030\001"
+      " \001(\005\022\017\n\007message\030\002 \001(\014\"\374\003\n\014PlanFragment\022("
+      "\n\006handle\030\001 \001(\0132\030.exec.bit.FragmentHandle"
+      "\022\024\n\014network_cost\030\004 \001(\002\022\020\n\010cpu_cost\030\005 \001(\002"
+      "\022\021\n\tdisk_cost\030\006 \001(\002\022\023\n\013memory_cost\030\007 \001(\002"
+      "\022\025\n\rfragment_json\030\010 \001(\t\022\025\n\rleaf_fragment"
+      "\030\t \001(\010\022*\n\nassignment\030\n \001(\0132\026.exec.Drillb"
+      "itEndpoint\022\'\n\007foreman\030\013 \001(\0132\026.exec.Drill"
+      "bitEndpoint\022\035\n\013mem_initial\030\014 \001(\003:\010200000"
+      "00\022\033\n\007mem_max\030\r \001(\003:\n2000000000\0221\n\013crede"
+      "ntials\030\016 \001(\0132\034.exec.shared.UserCredentia"
+      "ls\022\024\n\014options_json\030\017 \001(\t\022:\n\007context\030\020 \001("
+      "\0132).exec.bit.control.QueryContextInforma"
+      "tion\022.\n\tcollector\030\021 \003(\0132\033.exec.bit.contr"
+      "ol.Collector\"\210\001\n\tCollector\022\"\n\032opposite_m"
+      "ajor_fragment_id\030\001 \001(\005\022#\n\027incoming_minor"
+      "_fragment\030\002 \003(\005B\002\020\001\022\035\n\025supports_out_of_o"
+      "rder\030\003 \001(\010\022\023\n\013is_spooling\030\004 \001(\010\"w\n\027Query"
+      "ContextInformation\022\030\n\020query_start_time\030\001"
+      " \001(\003\022\021\n\ttime_zone\030\002 \001(\005\022\033\n\023default_schem"
+      "a_name\030\003 \001(\t\022\022\n\nsession_id\030\004 \001(\t\"f\n\017Work"
+      "QueueStatus\022(\n\010endpoint\030\001 \001(\0132\026.exec.Dri"
+      "llbitEndpoint\022\024\n\014queue_length\030\002 \001(\005\022\023\n\013r"
+      "eport_time\030\003 \001(\003\"h\n\020FinishedReceiver\022*\n\010"
+      "receiver\030\001 \001(\0132\030.exec.bit.FragmentHandle"
+      "\022(\n\006sender\030\002 \001(\0132\030.exec.bit.FragmentHand"
+      "le*\206\003\n\007RpcType\022\r\n\tHANDSHAKE\020\000\022\007\n\003ACK\020\001\022\013"
+      "\n\007GOODBYE\020\002\022\034\n\030REQ_INITIALIZE_FRAGMENTS\020"
+      "\003\022\027\n\023REQ_CANCEL_FRAGMENT\020\006\022\031\n\025REQ_RECEIV"
+      "ER_FINISHED\020\007\022\027\n\023REQ_FRAGMENT_STATUS\020\010\022\022"
+      "\n\016REQ_BIT_STATUS\020\t\022\024\n\020REQ_QUERY_STATUS\020\n"
+      "\022\024\n\020REQ_QUERY_CANCEL\020\017\022\030\n\024REQ_UNPAUSE_FR"
+      "AGMENT\020\020\022\016\n\nREQ_CUSTOM\020\021\022\030\n\024RESP_FRAGMEN"
+      "T_HANDLE\020\013\022\030\n\024RESP_FRAGMENT_STATUS\020\014\022\023\n\017"
+      "RESP_BIT_STATUS\020\r\022\025\n\021RESP_QUERY_STATUS\020\016"
+      "\022\017\n\013RESP_CUSTOM\020\022\022\020\n\014SASL_MESSAGE\020\023B+\n\033o"
+      "rg.apache.drill.exec.protoB\nBitControlH\001"
+  };
   ::google::protobuf::DescriptorPool::InternalAddGeneratedFile(
-    "\n\020BitControl.proto\022\020exec.bit.control\032\025Ex"
-    "ecutionProtos.proto\032\022Coordination.proto\032"
-    "\023UserBitShared.proto\"\255\001\n\023BitControlHands"
-    "hake\022\023\n\013rpc_version\030\001 \001(\005\0225\n\007channel\030\002 \001"
-    "(\0162\027.exec.shared.RpcChannel:\013BIT_CONTROL"
-    "\022(\n\010endpoint\030\003 \001(\0132\026.exec.DrillbitEndpoi"
-    "nt\022 \n\030authenticationMechanisms\030\004 \003(\t\"F\n\t"
-    "BitStatus\0229\n\017fragment_status\030\001 \003(\0132 .exe"
-    "c.bit.control.FragmentStatus\"n\n\016Fragment"
-    "Status\0222\n\007profile\030\001 \001(\0132!.exec.shared.Mi"
-    "norFragmentProfile\022(\n\006handle\030\002 \001(\0132\030.exe"
-    "c.bit.FragmentHandle\"G\n\023InitializeFragme"
-    "nts\0220\n\010fragment\030\001 \003(\0132\036.exec.bit.control"
-    ".PlanFragment\".\n\rCustomMessage\022\014\n\004type\030\001"
-    " \001(\005\022\017\n\007message\030\002 \001(\014\"\374\003\n\014PlanFragment\022("
-    "\n\006handle\030\001 \001(\0132\030.exec.bit.FragmentHandle"
-    "\022\024\n\014network_cost\030\004 \001(\002\022\020\n\010cpu_cost\030\005 \001(\002"
-    "\022\021\n\tdisk_cost\030\006 \001(\002\022\023\n\013memory_cost\030\007 \001(\002"
-    "\022\025\n\rfragment_json\030\010 \001(\t\022\025\n\rleaf_fragment"
-    "\030\t \001(\010\022*\n\nassignment\030\n \001(\0132\026.exec.Drillb"
-    "itEndpoint\022\'\n\007foreman\030\013 \001(\0132\026.exec.Drill"
-    "bitEndpoint\022\035\n\013mem_initial\030\014 \001(\003:\010200000"
-    "00\022\033\n\007mem_max\030\r \001(\003:\n2000000000\0221\n\013crede"
-    "ntials\030\016 \001(\0132\034.exec.shared.UserCredentia"
-    "ls\022\024\n\014options_json\030\017 \001(\t\022:\n\007context\030\020 \001("
-    "\0132).exec.bit.control.QueryContextInforma"
-    "tion\022.\n\tcollector\030\021 \003(\0132\033.exec.bit.contr"
-    "ol.Collector\"\210\001\n\tCollector\022\"\n\032opposite_m"
-    "ajor_fragment_id\030\001 \001(\005\022#\n\027incoming_minor"
-    "_fragment\030\002 \003(\005B\002\020\001\022\035\n\025supports_out_of_o"
-    "rder\030\003 \001(\010\022\023\n\013is_spooling\030\004 \001(\010\"w\n\027Query"
-    "ContextInformation\022\030\n\020query_start_time\030\001"
-    " \001(\003\022\021\n\ttime_zone\030\002 \001(\005\022\033\n\023default_schem"
-    "a_name\030\003 \001(\t\022\022\n\nsession_id\030\004 \001(\t\"f\n\017Work"
-    "QueueStatus\022(\n\010endpoint\030\001 \001(\0132\026.exec.Dri"
-    "llbitEndpoint\022\024\n\014queue_length\030\002 \001(\005\022\023\n\013r"
-    "eport_time\030\003 \001(\003\"h\n\020FinishedReceiver\022*\n\010"
-    "receiver\030\001 \001(\0132\030.exec.bit.FragmentHandle"
-    "\022(\n\006sender\030\002 \001(\0132\030.exec.bit.FragmentHand"
-    "le*\206\003\n\007RpcType\022\r\n\tHANDSHAKE\020\000\022\007\n\003ACK\020\001\022\013"
-    "\n\007GOODBYE\020\002\022\034\n\030REQ_INITIALIZE_FRAGMENTS\020"
-    "\003\022\027\n\023REQ_CANCEL_FRAGMENT\020\006\022\031\n\025REQ_RECEIV"
-    "ER_FINISHED\020\007\022\027\n\023REQ_FRAGMENT_STATUS\020\010\022\022"
-    "\n\016REQ_BIT_STATUS\020\t\022\024\n\020REQ_QUERY_STATUS\020\n"
-    "\022\024\n\020REQ_QUERY_CANCEL\020\017\022\030\n\024REQ_UNPAUSE_FR"
-    "AGMENT\020\020\022\016\n\nREQ_CUSTOM\020\021\022\030\n\024RESP_FRAGMEN"
-    "T_HANDLE\020\013\022\030\n\024RESP_FRAGMENT_STATUS\020\014\022\023\n\017"
-    "RESP_BIT_STATUS\020\r\022\025\n\021RESP_QUERY_STATUS\020\016"
-    "\022\017\n\013RESP_CUSTOM\020\022\022\020\n\014SASL_MESSAGE\020\023B+\n\033o"
-    "rg.apache.drill.exec.protoB\nBitControlH\001", 2000);
+      descriptor, 2000);
   ::google::protobuf::MessageFactory::InternalRegisterGeneratedFile(
     "BitControl.proto", &protobuf_RegisterTypes);
-  BitControlHandshake::default_instance_ = new BitControlHandshake();
-  BitStatus::default_instance_ = new BitStatus();
-  FragmentStatus::default_instance_ = new FragmentStatus();
-  InitializeFragments::default_instance_ = new InitializeFragments();
-  CustomMessage::default_instance_ = new CustomMessage();
-  PlanFragment::default_instance_ = new PlanFragment();
-  Collector::default_instance_ = new Collector();
-  QueryContextInformation::default_instance_ = new QueryContextInformation();
-  WorkQueueStatus::default_instance_ = new WorkQueueStatus();
-  FinishedReceiver::default_instance_ = new FinishedReceiver();
-  BitControlHandshake::default_instance_->InitAsDefaultInstance();
-  BitStatus::default_instance_->InitAsDefaultInstance();
-  FragmentStatus::default_instance_->InitAsDefaultInstance();
-  InitializeFragments::default_instance_->InitAsDefaultInstance();
-  CustomMessage::default_instance_->InitAsDefaultInstance();
-  PlanFragment::default_instance_->InitAsDefaultInstance();
-  Collector::default_instance_->InitAsDefaultInstance();
-  QueryContextInformation::default_instance_->InitAsDefaultInstance();
-  WorkQueueStatus::default_instance_->InitAsDefaultInstance();
-  FinishedReceiver::default_instance_->InitAsDefaultInstance();
-  ::google::protobuf::internal::OnShutdown(&protobuf_ShutdownFile_BitControl_2eproto);
-}
-
-// Force AddDescriptors() to be called at static initialization time.
-struct StaticDescriptorInitializer_BitControl_2eproto {
-  StaticDescriptorInitializer_BitControl_2eproto() {
-    protobuf_AddDesc_BitControl_2eproto();
-  }
-} static_descriptor_initializer_BitControl_2eproto_;
+  ::protobuf_ExecutionProtos_2eproto::AddDescriptors();
+  ::protobuf_Coordination_2eproto::AddDescriptors();
+  ::protobuf_UserBitShared_2eproto::AddDescriptors();
+}
+
+void AddDescriptors() {
+  static ::google::protobuf::internal::once_flag once;
+  ::google::protobuf::internal::call_once(once, AddDescriptorsImpl);
+}
+// Force AddDescriptors() to be called at dynamic initialization time.
+struct StaticDescriptorInitializer {
+  StaticDescriptorInitializer() {
+    AddDescriptors();
+  }
+} static_descriptor_initializer;
+}  // namespace protobuf_BitControl_2eproto
+namespace exec {
+namespace bit {
+namespace control {
 const ::google::protobuf::EnumDescriptor* RpcType_descriptor() {
-  protobuf_AssignDescriptorsOnce();
-  return RpcType_descriptor_;
+  protobuf_BitControl_2eproto::protobuf_AssignDescriptorsOnce();
+  return protobuf_BitControl_2eproto::file_level_enum_descriptors[0];
 }
 bool RpcType_IsValid(int value) {
-  switch(value) {
+  switch (value) {
     case 0:
     case 1:
     case 2:
@@ -425,106 +542,123 @@ bool RpcType_IsValid(int value) {
 
 // ===================================================================
 
-#ifndef _MSC_VER
+void BitControlHandshake::InitAsDefaultInstance() {
+  ::exec::bit::control::_BitControlHandshake_default_instance_._instance.get_mutable()->endpoint_ = const_cast< ::exec::DrillbitEndpoint*>(
+      ::exec::DrillbitEndpoint::internal_default_instance());
+}
+void BitControlHandshake::clear_endpoint() {
+  if (endpoint_ != NULL) endpoint_->Clear();
+  clear_has_endpoint();
+}
+#if !defined(_MSC_VER) || _MSC_VER >= 1900
 const int BitControlHandshake::kRpcVersionFieldNumber;
 const int BitControlHandshake::kChannelFieldNumber;
 const int BitControlHandshake::kEndpointFieldNumber;
 const int BitControlHandshake::kAuthenticationMechanismsFieldNumber;
-#endif  // !_MSC_VER
+#endif  // !defined(_MSC_VER) || _MSC_VER >= 1900
 
 BitControlHandshake::BitControlHandshake()
-  : ::google::protobuf::Message() {
+  : ::google::protobuf::Message(), _internal_metadata_(NULL) {
+  ::google::protobuf::internal::InitSCC(
+      &protobuf_BitControl_2eproto::scc_info_BitControlHandshake.base);
   SharedCtor();
+  // @@protoc_insertion_point(constructor:exec.bit.control.BitControlHandshake)
 }
-
-void BitControlHandshake::InitAsDefaultInstance() {
-  endpoint_ = const_cast< ::exec::DrillbitEndpoint*>(&::exec::DrillbitEndpoint::default_instance());
-}
-
 BitControlHandshake::BitControlHandshake(const BitControlHandshake& from)
-  : ::google::protobuf::Message() {
-  SharedCtor();
-  MergeFrom(from);
+  : ::google::protobuf::Message(),
+      _internal_metadata_(NULL),
+      _has_bits_(from._has_bits_),
+      authenticationmechanisms_(from.authenticationmechanisms_) {
+  _internal_metadata_.MergeFrom(from._internal_metadata_);
+  if (from.has_endpoint()) {
+    endpoint_ = new ::exec::DrillbitEndpoint(*from.endpoint_);
+  } else {
+    endpoint_ = NULL;
+  }
+  ::memcpy(&rpc_version_, &from.rpc_version_,
+    static_cast<size_t>(reinterpret_cast<char*>(&channel_) -
+    reinterpret_cast<char*>(&rpc_version_)) + sizeof(channel_));
+  // @@protoc_insertion_point(copy_constructor:exec.bit.control.BitControlHandshake)
 }
 
 void BitControlHandshake::SharedCtor() {
-  _cached_size_ = 0;
-  rpc_version_ = 0;
-  channel_ = 0;
-  endpoint_ = NULL;
-  ::memset(_has_bits_, 0, sizeof(_has_bits_));
+  ::memset(&endpoint_, 0, static_cast<size_t>(
+      reinterpret_cast<char*>(&channel_) -
+      reinterpret_cast<char*>(&endpoint_)) + sizeof(channel_));
 }
 
 BitControlHandshake::~BitControlHandshake() {
+  // @@protoc_insertion_point(destructor:exec.bit.control.BitControlHandshake)
   SharedDtor();
 }
 
 void BitControlHandshake::SharedDtor() {
-  if (this != default_instance_) {
-    delete endpoint_;
-  }
+  if (this != internal_default_instance()) delete endpoint_;
 }
 
 void BitControlHandshake::SetCachedSize(int size) const {
-  GOOGLE_SAFE_CONCURRENT_WRITES_BEGIN();
-  _cached_size_ = size;
-  GOOGLE_SAFE_CONCURRENT_WRITES_END();
+  _cached_size_.Set(size);
 }
 const ::google::protobuf::Descriptor* BitControlHandshake::descriptor() {
-  protobuf_AssignDescriptorsOnce();
-  return BitControlHandshake_descriptor_;
+  ::protobuf_BitControl_2eproto::protobuf_AssignDescriptorsOnce();
+  return ::protobuf_BitControl_2eproto::file_level_metadata[kIndexInFileMessages].descriptor;
 }
 
 const BitControlHandshake& BitControlHandshake::default_instance() {
-  if (default_instance_ == NULL) protobuf_AddDesc_BitControl_2eproto();
-  return *default_instance_;
+  ::google::protobuf::internal::InitSCC(&protobuf_BitControl_2eproto::scc_info_BitControlHandshake.base);
+  return *internal_default_instance();
 }
 
-BitControlHandshake* BitControlHandshake::default_instance_ = NULL;
-
-BitControlHandshake* BitControlHandshake::New() const {
-  return new BitControlHandshake;
-}
 
 void BitControlHandshake::Clear() {
-  if (_has_bits_[0 / 32] & (0xffu << (0 % 32))) {
-    rpc_version_ = 0;
-    channel_ = 0;
-    if (has_endpoint()) {
-      if (endpoint_ != NULL) endpoint_->::exec::DrillbitEndpoint::Clear();
-    }
-  }
+// @@protoc_insertion_point(message_clear_start:exec.bit.control.BitControlHandshake)
+  ::google::protobuf::uint32 cached_has_bits = 0;
+  // Prevent compiler warnings about cached_has_bits being unused
+  (void) cached_has_bits;
+
   authenticationmechanisms_.Clear();
-  ::memset(_has_bits_, 0, sizeof(_has_bits_));
-  mutable_unknown_fields()->Clear();
+  cached_has_bits = _has_bits_[0];
+  if (cached_has_bits & 0x00000001u) {
+    GOOGLE_DCHECK(endpoint_ != NULL);
+    endpoint_->Clear();
+  }
+  if (cached_has_bits & 6u) {
+    ::memset(&rpc_version_, 0, static_cast<size_t>(
+        reinterpret_cast<char*>(&channel_) -
+        reinterpret_cast<char*>(&rpc_version_)) + sizeof(channel_));
+  }
+  _has_bits_.Clear();
+  _internal_metadata_.Clear();
 }
 
 bool BitControlHandshake::MergePartialFromCodedStream(
     ::google::protobuf::io::CodedInputStream* input) {
-#define DO_(EXPRESSION) if (!(EXPRESSION)) return false
+#define DO_(EXPRESSION) if (!GOOGLE_PREDICT_TRUE(EXPRESSION)) goto failure
   ::google::protobuf::uint32 tag;
-  while ((tag = input->ReadTag()) != 0) {
+  // @@protoc_insertion_point(parse_start:exec.bit.control.BitControlHandshake)
+  for (;;) {
+    ::std::pair<::google::protobuf::uint32, bool> p = input->ReadTagWithCutoffNoLastTag(127u);
+    tag = p.first;
+    if (!p.second) goto handle_unusual;
     switch (::google::protobuf::internal::WireFormatLite::GetTagFieldNumber(tag)) {
       // optional int32 rpc_version = 1;
       case 1: {
-        if (::google::protobuf::internal::WireFormatLite::GetTagWireType(tag) ==
-            ::google::protobuf::internal::WireFormatLite::WIRETYPE_VARINT) {
+        if (static_cast< ::google::protobuf::uint8>(tag) ==
+            static_cast< ::google::protobuf::uint8>(8u /* 8 & 0xFF */)) {
+          set_has_rpc_version();
           DO_((::google::protobuf::internal::WireFormatLite::ReadPrimitive<
                    ::google::protobuf::int32, ::google::protobuf::internal::WireFormatLite::TYPE_INT32>(
                  input, &rpc_version_)));
-          set_has_rpc_version();
         } else {
-          goto handle_uninterpreted;
+          goto handle_unusual;
         }
-        if (input->ExpectTag(16)) goto parse_channel;
         break;
       }
 
       // optional .exec.shared.RpcChannel channel = 2 [default = BIT_CONTROL];
       case 2: {
-        if (::google::protobuf::internal::WireFormatLite::GetTagWireType(tag) ==
-            ::google::protobuf::internal::WireFormatLite::WIRETYPE_VARINT) {
-         parse_channel:
+        if (static_cast< ::google::protobuf::uint8>(tag) ==
+            static_cast< ::google::protobuf::uint8>(16u /* 16 & 0xFF */)) {
           int value;
           DO_((::google::protobuf::internal::WireFormatLite::ReadPrimitive<
                    int, ::google::protobuf::internal::WireFormatLite::TYPE_ENUM>(
@@ -532,138 +666,174 @@ bool BitControlHandshake::MergePartialFromCodedStream(
           if (::exec::shared::RpcChannel_IsValid(value)) {
             set_channel(static_cast< ::exec::shared::RpcChannel >(value));
           } else {
-            mutable_unknown_fields()->AddVarint(2, value);
+            mutable_unknown_fields()->AddVarint(
+                2, static_cast< ::google::protobuf::uint64>(value));
           }
         } else {
-          goto handle_uninterpreted;
+          goto handle_unusual;
         }
-        if (input->ExpectTag(26)) goto parse_endpoint;
         break;
       }
 
       // optional .exec.DrillbitEndpoint endpoint = 3;
       case 3: {
-        if (::google::protobuf::internal::WireFormatLite::GetTagWireType(tag) ==
-            ::google::protobuf::internal::WireFormatLite::WIRETYPE_LENGTH_DELIMITED) {
-         parse_endpoint:
-          DO_(::google::protobuf::internal::WireFormatLite::ReadMessageNoVirtual(
+        if (static_cast< ::google::protobuf::uint8>(tag) ==
+            static_cast< ::google::protobuf::uint8>(26u /* 26 & 0xFF */)) {
+          DO_(::google::protobuf::internal::WireFormatLite::ReadMessage(
                input, mutable_endpoint()));
         } else {
-          goto handle_uninterpreted;
+          goto handle_unusual;
         }
-        if (input->ExpectTag(34)) goto parse_authenticationMechanisms;
         break;
       }
 
       // repeated string authenticationMechanisms = 4;
       case 4: {
-        if (::google::protobuf::internal::WireFormatLite::GetTagWireType(tag) ==
-            ::google::protobuf::internal::WireFormatLite::WIRETYPE_LENGTH_DELIMITED) {
-         parse_authenticationMechanisms:
+        if (static_cast< ::google::protobuf::uint8>(tag) ==
+            static_cast< ::google::protobuf::uint8>(34u /* 34 & 0xFF */)) {
           DO_(::google::protobuf::internal::WireFormatLite::ReadString(
                 input, this->add_authenticationmechanisms()));
-          ::google::protobuf::internal::WireFormat::VerifyUTF8String(
+          ::google::protobuf::internal::WireFormat::VerifyUTF8StringNamedField(
             this->authenticationmechanisms(this->authenticationmechanisms_size() - 1).data(),
-            this->authenticationmechanisms(this->authenticationmechanisms_size() - 1).length(),
-            ::google::protobuf::internal::WireFormat::PARSE);
+            static_cast<int>(this->authenticationmechanisms(this->authenticationmechanisms_size() - 1).length()),
+            ::google::protobuf::internal::WireFormat::PARSE,
+            "exec.bit.control.BitControlHandshake.authenticationMechanisms");
         } else {
-          goto handle_uninterpreted;
+          goto handle_unusual;
         }
-        if (input->ExpectTag(34)) goto parse_authenticationMechanisms;
-        if (input->ExpectAtEnd()) return true;
         break;
       }
 
       default: {
-      handle_uninterpreted:
-        if (::google::protobuf::internal::WireFormatLite::GetTagWireType(tag) ==
-            ::google::protobuf::internal::WireFormatLite::WIRETYPE_END_GROUP) {
-          return true;
+      handle_unusual:
+        if (tag == 0) {
+          goto success;
         }
         DO_(::google::protobuf::internal::WireFormat::SkipField(
-              input, tag, mutable_unknown_fields()));
+              input, tag, _internal_metadata_.mutable_unknown_fields()));
         break;
       }
     }
   }
+success:
+  // @@protoc_insertion_point(parse_success:exec.bit.control.BitControlHandshake)
   return true;
+failure:
+  // @@protoc_insertion_point(parse_failure:exec.bit.control.BitControlHandshake)
+  return false;
 #undef DO_
 }
 
 void BitControlHandshake::SerializeWithCachedSizes(
     ::google::protobuf::io::CodedOutputStream* output) const {
+  // @@protoc_insertion_point(serialize_start:exec.bit.control.BitControlHandshake)
+  ::google::protobuf::uint32 cached_has_bits = 0;
+  (void) cached_has_bits;
+
+  cached_has_bits = _has_bits_[0];
   // optional int32 rpc_version = 1;
-  if (has_rpc_version()) {
+  if (cached_has_bits & 0x00000002u) {
     ::google::protobuf::internal::WireFormatLite::WriteInt32(1, this->rpc_version(), output);
   }
 
   // optional .exec.shared.RpcChannel channel = 2 [default = BIT_CONTROL];
-  if (has_channel()) {
+  if (cached_has_bits & 0x00000004u) {
     ::google::protobuf::internal::WireFormatLite::WriteEnum(
       2, this->channel(), output);
   }
 
   // optional .exec.DrillbitEndpoint endpoint = 3;
-  if (has_endpoint()) {
+  if (cached_has_bits & 0x00000001u) {
     ::google::protobuf::internal::WireFormatLite::WriteMessageMaybeToArray(
-      3, this->endpoint(), output);
+      3, this->_internal_endpoint(), output);
   }
 
   // repeated string authenticationMechanisms = 4;
-  for (int i = 0; i < this->authenticationmechanisms_size(); i++) {
-  ::google::protobuf::internal::WireFormat::VerifyUTF8String(
-    this->authenticationmechanisms(i).data(), this->authenticationmechanisms(i).length(),
-    ::google::protobuf::internal::WireFormat::SERIALIZE);
+  for (int i = 0, n = this->authenticationmechanisms_size(); i < n; i++) {
+    ::google::protobuf::internal::WireFormat::VerifyUTF8StringNamedField(
+      this->authenticationmechanisms(i).data(), static_cast<int>(this->authenticationmechanisms(i).length()),
+      ::google::protobuf::internal::WireFormat::SERIALIZE,
+      "exec.bit.control.BitControlHandshake.authenticationMechanisms");
     ::google::protobuf::internal::WireFormatLite::WriteString(
       4, this->authenticationmechanisms(i), output);
   }
 
-  if (!unknown_fields().empty()) {
+  if (_internal_metadata_.have_unknown_fields()) {
     ::google::protobuf::internal::WireFormat::SerializeUnknownFields(
-        unknown_fields(), output);
+        _internal_metadata_.unknown_fields(), output);
   }
+  // @@protoc_insertion_point(serialize_end:exec.bit.control.BitControlHandshake)
 }
 
-::google::protobuf::uint8* BitControlHandshake::SerializeWithCachedSizesToArray(
-    ::google::protobuf::uint8* target) const {
+::google::protobuf::uint8* BitControlHandshake::InternalSerializeWithCachedSizesToArray(
+    bool deterministic, ::google::protobuf::uint8* target) const {
+  (void)deterministic; // Unused
+  // @@protoc_insertion_point(serialize_to_array_start:exec.bit.control.BitControlHandshake)
+  ::google::protobuf::uint32 cached_has_bits = 0;
+  (void) cached_has_bits;
+
+  cached_has_bits = _has_bits_[0];
   // optional int32 rpc_version = 1;
-  if (has_rpc_version()) {
+  if (cached_has_bits & 0x00000002u) {
     target = ::google::protobuf::internal::WireFormatLite::WriteInt32ToArray(1, this->rpc_version(), target);
   }
 
   // optional .exec.shared.RpcChannel channel = 2 [default = BIT_CONTROL];
-  if (has_channel()) {
+  if (cached_has_bits & 0x00000004u) {
     target = ::google::protobuf::internal::WireFormatLite::WriteEnumToArray(
       2, this->channel(), target);
   }
 
   // optional .exec.DrillbitEndpoint endpoint = 3;
-  if (has_endpoint()) {
+  if (cached_has_bits & 0x00000001u) {
     target = ::google::protobuf::internal::WireFormatLite::
-      WriteMessageNoVirtualToArray(
-        3, this->endpoint(), target);
+      InternalWriteMessageToArray(
+        3, this->_internal_endpoint(), deterministic, target);
   }
 
   // repeated string authenticationMechanisms = 4;
-  for (int i = 0; i < this->authenticationmechanisms_size(); i++) {
-    ::google::protobuf::internal::WireFormat::VerifyUTF8String(
-      this->authenticationmechanisms(i).data(), this->authenticationmechanisms(i).length(),
-      ::google::protobuf::internal::WireFormat::SERIALIZE);
+  for (int i = 0, n = this->authenticationmechanisms_size(); i < n; i++) {
+    ::google::protobuf::internal::WireFormat::VerifyUTF8StringNamedField(
+      this->authenticationmechanisms(i).data(), static_cast<int>(this->authenticationmechanisms(i).length()),
+      ::google::protobuf::internal::WireFormat::SERIALIZE,
+      "exec.bit.control.BitControlHandshake.authenticationMechanisms");
     target = ::google::protobuf::internal::WireFormatLite::
       WriteStringToArray(4, this->authenticationmechanisms(i), target);
   }
 
-  if (!unknown_fields().empty()) {
+  if (_internal_metadata_.have_unknown_fields()) {
     target = ::google::protobuf::internal::WireFormat::SerializeUnknownFieldsToArray(
-        unknown_fields(), target);
+        _internal_metadata_.unknown_fields(), target);
   }
+  // @@protoc_insertion_point(serialize_to_array_end:exec.bit.control.BitControlHandshake)
   return target;
 }
 
-int BitControlHandshake::ByteSize() const {
-  int total_size = 0;
+size_t BitControlHandshake::ByteSizeLong() const {
+// @@protoc_insertion_point(message_byte_size_start:exec.bit.control.BitControlHandshake)
+  size_t total_size = 0;
+
+  if (_internal_metadata_.have_unknown_fields()) {
+    total_size +=
+      ::google::protobuf::internal::WireFormat::ComputeUnknownFieldsSize(
+        _internal_metadata_.unknown_fields());
+  }
+  // repeated string authenticationMechanisms = 4;
+  total_size += 1 *
+      ::google::protobuf::internal::FromIntSize(this->authenticationmechanisms_size());
+  for (int i = 0, n = this->authenticationmechanisms_size(); i < n; i++) {
+    total_size += ::google::protobuf::internal::WireFormatLite::StringSize(
+      this->authenticationmechanisms(i));
+  }
+
+  if (_has_bits_[0 / 32] & 7u) {
+    // optional .exec.DrillbitEndpoint endpoint = 3;
+    if (has_endpoint()) {
+      total_size += 1 +
+        ::google::protobuf::internal::WireFormatLite::MessageSize(
+          *endpoint_);
+    }
 
-  if (_has_bits_[0 / 32] & (0xffu << (0 % 32))) {
     // optional int32 rpc_version = 1;
     if (has_rpc_version()) {
       total_size += 1 +
@@ -677,939 +847,1049 @@ int BitControlHandshake::ByteSize() const {
         ::google::protobuf::internal::WireFormatLite::EnumSize(this->channel());
     }
 
-    // optional .exec.DrillbitEndpoint endpoint = 3;
-    if (has_endpoint()) {
-      total_size += 1 +
-        ::google::protobuf::internal::WireFormatLite::MessageSizeNoVirtual(
-          this->endpoint());
-    }
-
   }
-  // repeated string authenticationMechanisms = 4;
-  total_size += 1 * this->authenticationmechanisms_size();
-  for (int i = 0; i < this->authenticationmechanisms_size(); i++) {
-    total_size += ::google::protobuf::internal::WireFormatLite::StringSize(
-      this->authenticationmechanisms(i));
-  }
-
-  if (!unknown_fields().empty()) {
-    total_size +=
-      ::google::protobuf::internal::WireFormat::ComputeUnknownFieldsSize(
-        unknown_fields());
-  }
-  GOOGLE_SAFE_CONCURRENT_WRITES_BEGIN();
-  _cached_size_ = total_size;
-  GOOGLE_SAFE_CONCURRENT_WRITES_END();
+  int cached_size = ::google::protobuf::internal::ToCachedSize(total_size);
+  SetCachedSize(cached_size);
   return total_size;
 }
 
 void BitControlHandshake::MergeFrom(const ::google::protobuf::Message& from) {
-  GOOGLE_CHECK_NE(&from, this);
+// @@protoc_insertion_point(generalized_merge_from_start:exec.bit.control.BitControlHandshake)
+  GOOGLE_DCHECK_NE(&from, this);
   const BitControlHandshake* source =
-    ::google::protobuf::internal::dynamic_cast_if_available<const BitControlHandshake*>(
-      &from);
+      ::google::protobuf::internal::DynamicCastToGenerated<const BitControlHandshake>(
+          &from);
   if (source == NULL) {
+  // @@protoc_insertion_point(generalized_merge_from_cast_fail:exec.bit.control.BitControlHandshake)
     ::google::protobuf::internal::ReflectionOps::Merge(from, this);
   } else {
+  // @@protoc_insertion_point(generalized_merge_from_cast_success:exec.bit.control.BitControlHandshake)
     MergeFrom(*source);
   }
 }
 
 void BitControlHandshake::MergeFrom(const BitControlHandshake& from) {
-  GOOGLE_CHECK_NE(&from, this);
+// @@protoc_insertion_point(class_specific_merge_from_start:exec.bit.control.BitControlHandshake)
+  GOOGLE_DCHECK_NE(&from, this);
+  _internal_metadata_.MergeFrom(from._internal_metadata_);
+  ::google::protobuf::uint32 cached_has_bits = 0;
+  (void) cached_has_bits;
+
   authenticationmechanisms_.MergeFrom(from.authenticationmechanisms_);
-  if (from._has_bits_[0 / 32] & (0xffu << (0 % 32))) {
-    if (from.has_rpc_version()) {
-      set_rpc_version(from.rpc_version());
+  cached_has_bits = from._has_bits_[0];
+  if (cached_has_bits & 7u) {
+    if (cached_has_bits & 0x00000001u) {
+      mutable_endpoint()->::exec::DrillbitEndpoint::MergeFrom(from.endpoint());
     }
-    if (from.has_channel()) {
-      set_channel(from.channel());
+    if (cached_has_bits & 0x00000002u) {
+      rpc_version_ = from.rpc_version_;
     }
-    if (from.has_endpoint()) {
-      mutable_endpoint()->::exec::DrillbitEndpoint::MergeFrom(from.endpoint());
+    if (cached_has_bits & 0x00000004u) {
+      channel_ = from.channel_;
     }
+    _has_bits_[0] |= cached_has_bits;
   }
-  mutable_unknown_fields()->MergeFrom(from.unknown_fields());
 }
 
 void BitControlHandshake::CopyFrom(const ::google::protobuf::Message& from) {
+// @@protoc_insertion_point(generalized_copy_from_start:exec.bit.control.BitControlHandshake)
   if (&from == this) return;
   Clear();
   MergeFrom(from);
 }
 
 void BitControlHandshake::CopyFrom(const BitControlHandshake& from) {
+// @@protoc_insertion_point(class_specific_copy_from_start:exec.bit.control.BitControlHandshake)
   if (&from == this) return;
   Clear();
   MergeFrom(from);
 }
 
 bool BitControlHandshake::IsInitialized() const {
-
   return true;
 }
 
 void BitControlHandshake::Swap(BitControlHandshake* other) {
-  if (other != this) {
-    std::swap(rpc_version_, other->rpc_version_);
-    std::swap(channel_, other->channel_);
-    std::swap(endpoint_, other->endpoint_);
-    authenticationmechanisms_.Swap(&other->authenticationmechanisms_);
-    std::swap(_has_bits_[0], other->_has_bits_[0]);
-    _unknown_fields_.Swap(&other->_unknown_fields_);
-    std::swap(_cached_size_, other->_cached_size_);
-  }
+  if (other == this) return;
+  InternalSwap(other);
+}
+void BitControlHandshake::InternalSwap(BitControlHandshake* other) {
+  using std::swap;
+  authenticationmechanisms_.InternalSwap(CastToBase(&other->authenticationmechanisms_));
+  swap(endpoint_, other->endpoint_);
+  swap(rpc_version_, other->rpc_version_);
+  swap(channel_, other->channel_);
+  swap(_has_bits_[0], other->_has_bits_[0]);
+  _internal_metadata_.Swap(&other->_internal_metadata_);
 }
 
 ::google::protobuf::Metadata BitControlHandshake::GetMetadata() const {
-  protobuf_AssignDescriptorsOnce();
-  ::google::protobuf::Metadata metadata;
-  metadata.descriptor = BitControlHandshake_descriptor_;
-  metadata.reflection = BitControlHandshake_reflection_;
-  return metadata;
+  protobuf_BitControl_2eproto::protobuf_AssignDescriptorsOnce();
+  return ::protobuf_BitControl_2eproto::file_level_metadata[kIndexInFileMessages];
 }
 
 
 // ===================================================================
 
-#ifndef _MSC_VER
+void BitStatus::InitAsDefaultInstance() {
+}
+#if !defined(_MSC_VER) || _MSC_VER >= 1900
 const int BitStatus::kFragmentStatusFieldNumber;
-#endif  // !_MSC_VER
+#endif  // !defined(_MSC_VER) || _MSC_VER >= 1900
 
 BitStatus::BitStatus()
-  : ::google::protobuf::Message() {
+  : ::google::protobuf::Message(), _internal_metadata_(NULL) {
+  ::google::protobuf::internal::InitSCC(
+      &protobuf_BitControl_2eproto::scc_info_BitStatus.base);
   SharedCtor();
+  // @@protoc_insertion_point(constructor:exec.bit.control.BitStatus)
 }
-
-void BitStatus::InitAsDefaultInstance() {
-}
-
 BitStatus::BitStatus(const BitStatus& from)
-  : ::google::protobuf::Message() {
-  SharedCtor();
-  MergeFrom(from);
+  : ::google::protobuf::Message(),
+      _internal_metadata_(NULL),
+      _has_bits_(from._has_bits_),
+      fragment_status_(from.fragment_status_) {
+  _internal_metadata_.MergeFrom(from._internal_metadata_);
+  // @@protoc_insertion_point(copy_constructor:exec.bit.control.BitStatus)
 }
 
 void BitStatus::SharedCtor() {
-  _cached_size_ = 0;
-  ::memset(_has_bits_, 0, sizeof(_has_bits_));
 }
 
 BitStatus::~BitStatus() {
+  // @@protoc_insertion_point(destructor:exec.bit.control.BitStatus)
   SharedDtor();
 }
 
 void BitStatus::SharedDtor() {
-  if (this != default_instance_) {
-  }
 }
 
 void BitStatus::SetCachedSize(int size) const {
-  GOOGLE_SAFE_CONCURRENT_WRITES_BEGIN();
-  _cached_size_ = size;
-  GOOGLE_SAFE_CONCURRENT_WRITES_END();
+  _cached_size_.Set(size);
 }
 const ::google::protobuf::Descriptor* BitStatus::descriptor() {
-  protobuf_AssignDescriptorsOnce();
-  return BitStatus_descriptor_;
+  ::protobuf_BitControl_2eproto::protobuf_AssignDescriptorsOnce();
+  return ::protobuf_BitControl_2eproto::file_level_metadata[kIndexInFileMessages].descriptor;
 }
 
 const BitStatus& BitStatus::default_instance() {
-  if (default_instance_ == NULL) protobuf_AddDesc_BitControl_2eproto();
-  return *default_instance_;
+  ::google::protobuf::internal::InitSCC(&protobuf_BitControl_2eproto::scc_info_BitStatus.base);
+  return *internal_default_instance();
 }
 
-BitStatus* BitStatus::default_instance_ = NULL;
-
-BitStatus* BitStatus::New() const {
-  return new BitStatus;
-}
 
 void BitStatus::Clear() {
+// @@protoc_insertion_point(message_clear_start:exec.bit.control.BitStatus)
+  ::google::protobuf::uint32 cached_has_bits = 0;
+  // Prevent compiler warnings about cached_has_bits being unused
+  (void) cached_has_bits;
+
   fragment_status_.Clear();
-  ::memset(_has_bits_, 0, sizeof(_has_bits_));
-  mutable_unknown_fields()->Clear();
+  _has_bits_.Clear();
+  _internal_metadata_.Clear();
 }
 
 bool BitStatus::MergePartialFromCodedStream(
     ::google::protobuf::io::CodedInputStream* input) {
-#define DO_(EXPRESSION) if (!(EXPRESSION)) return false
+#define DO_(EXPRESSION) if (!GOOGLE_PREDICT_TRUE(EXPRESSION)) goto failure
   ::google::protobuf::uint32 tag;
-  while ((tag = input->ReadTag()) != 0) {
+  // @@protoc_insertion_point(parse_start:exec.bit.control.BitStatus)
+  for (;;) {
+    ::std::pair<::google::protobuf::uint32, bool> p = input->ReadTagWithCutoffNoLastTag(127u);
+    tag = p.first;
+    if (!p.second) goto handle_unusual;
     switch (::google::protobuf::internal::WireFormatLite::GetTagFieldNumber(tag)) {
       // repeated .exec.bit.control.FragmentStatus fragment_status = 1;
       case 1: {
-        if (::google::protobuf::internal::WireFormatLite::GetTagWireType(tag) ==
-            ::google::protobuf::internal::WireFormatLite::WIRETYPE_LENGTH_DELIMITED) {
-         parse_fragment_status:
-          DO_(::google::protobuf::internal::WireFormatLite::ReadMessageNoVirtual(
+        if (static_cast< ::google::protobuf::uint8>(tag) ==
+            static_cast< ::google::protobuf::uint8>(10u /* 10 & 0xFF */)) {
+          DO_(::google::protobuf::internal::WireFormatLite::ReadMessage(
                 input, add_fragment_status()));
         } else {
-          goto handle_uninterpreted;
+          goto handle_unusual;
         }
-        if (input->ExpectTag(10)) goto parse_fragment_status;
-        if (input->ExpectAtEnd()) return true;
         break;
       }
 
       default: {
-      handle_uninterpreted:
-        if (::google::protobuf::internal::WireFormatLite::GetTagWireType(tag) ==
-            ::google::protobuf::internal::WireFormatLite::WIRETYPE_END_GROUP) {
-          return true;
+      handle_unusual:
+        if (tag == 0) {
+          goto success;
         }
         DO_(::google::protobuf::internal::WireFormat::SkipField(
-              input, tag, mutable_unknown_fields()));
+              input, tag, _internal_metadata_.mutable_unknown_fields()));
         break;
       }
     }
   }
+success:
+  // @@protoc_insertion_point(parse_success:exec.bit.control.BitStatus)
   return true;
+failure:
+  // @@protoc_insertion_point(parse_failure:exec.bit.control.BitStatus)
+  return false;
 #undef DO_
 }
 
 void BitStatus::SerializeWithCachedSizes(
     ::google::protobuf::io::CodedOutputStream* output) const {
+  // @@protoc_insertion_point(serialize_start:exec.bit.control.BitStatus)
+  ::google::protobuf::uint32 cached_has_bits = 0;
+  (void) cached_has_bits;
+
   // repeated .exec.bit.control.FragmentStatus fragment_status = 1;
-  for (int i = 0; i < this->fragment_status_size(); i++) {
+  for (unsigned int i = 0,
+      n = static_cast<unsigned int>(this->fragment_status_size()); i < n; i++) {
     ::google::protobuf::internal::WireFormatLite::WriteMessageMaybeToArray(
-      1, this->fragment_status(i), output);
+      1,
+      this->fragment_status(static_cast<int>(i)),
+      output);
   }
 
-  if (!unknown_fields().empty()) {
+  if (_internal_metadata_.have_unknown_fields()) {
     ::google::protobuf::internal::WireFormat::SerializeUnknownFields(
-        unknown_fields(), output);
+        _internal_metadata_.unknown_fields(), output);
   }
+  // @@protoc_insertion_point(serialize_end:exec.bit.control.BitStatus)
 }
 
-::google::protobuf::uint8* BitStatus::SerializeWithCachedSizesToArray(
-    ::google::protobuf::uint8* target) const {
+::google::protobuf::uint8* BitStatus::InternalSerializeWithCachedSizesToArray(
+    bool deterministic, ::google::protobuf::uint8* target) const {
+  (void)deterministic; // Unused
+  // @@protoc_insertion_point(serialize_to_array_start:exec.bit.control.BitStatus)
+  ::google::protobuf::uint32 cached_has_bits = 0;
+  (void) cached_has_bits;
+
   // repeated .exec.bit.control.FragmentStatus fragment_status = 1;
-  for (int i = 0; i < this->fragment_status_size(); i++) {
+  for (unsigned int i = 0,
+      n = static_cast<unsigned int>(this->fragment_status_size()); i < n; i++) {
     target = ::google::protobuf::internal::WireFormatLite::
-      WriteMessageNoVirtualToArray(
-        1, this->fragment_status(i), target);
+      InternalWriteMessageToArray(
+        1, this->fragment_status(static_cast<int>(i)), deterministic, target);
   }
 
-  if (!unknown_fields().empty()) {
+  if (_internal_metadata_.have_unknown_fields()) {
     target = ::google::protobuf::internal::WireFormat::SerializeUnknownFieldsToArray(
-        unknown_fields(), target);
+        _internal_metadata_.unknown_fields(), target);
   }
+  // @@protoc_insertion_point(serialize_to_array_end:exec.bit.control.BitStatus)
   return target;
 }
 
-int BitStatus::ByteSize() const {
-  int total_size = 0;
+size_t BitStatus::ByteSizeLong() const {
+// @@protoc_insertion_point(message_byte_size_start:exec.bit.control.BitStatus)
+  size_t total_size = 0;
 
-  // repeated .exec.bit.control.FragmentStatus fragment_status = 1;
-  total_size += 1 * this->fragment_status_size();
-  for (int i = 0; i < this->fragment_status_size(); i++) {
-    total_size +=
-      ::google::protobuf::internal::WireFormatLite::MessageSizeNoVirtual(
-        this->fragment_status(i));
-  }
-
-  if (!unknown_fields().empty()) {
+  if (_internal_metadata_.have_unknown_fields()) {
     total_size +=
       ::google::protobuf::internal::WireFormat::ComputeUnknownFieldsSize(
-        unknown_fields());
+        _internal_metadata_.unknown_fields());
+  }
+  // repeated .exec.bit.control.FragmentStatus fragment_status = 1;
+  {
+    unsigned int count = static_cast<unsigned int>(this->fragment_status_size());
+    total_size += 1UL * count;
+    for (unsigned int i = 0; i < count; i++) {
+      total_size +=
+        ::google::protobuf::internal::WireFormatLite::MessageSize(
+          this->fragment_status(static_cast<int>(i)));
+    }
   }
-  GOOGLE_SAFE_CONCURRENT_WRITES_BEGIN();
-  _cached_size_ = total_size;
-  GOOGLE_SAFE_CONCURRENT_WRITES_END();
+
+  int cached_size = ::google::protobuf::internal::ToCachedSize(total_size);
+  SetCachedSize(cached_size);
   return total_size;
 }
 
 void BitStatus::MergeFrom(const ::google::protobuf::Message& from) {
-  GOOGLE_CHECK_NE(&from, this);
+// @@protoc_insertion_point(generalized_merge_from_start:exec.bit.control.BitStatus)
+  GOOGLE_DCHECK_NE(&from, this);
   const BitStatus* source =
-    ::google::protobuf::internal::dynamic_cast_if_available<const BitStatus*>(
-      &from);
+      ::google::protobuf::internal::DynamicCastToGenerated<const BitStatus>(
+          &from);
   if (source == NULL) {
+  // @@protoc_insertion_point(generalized_merge_from_cast_fail:exec.bit.control.BitStatus)
     ::google::protobuf::internal::ReflectionOps::Merge(from, this);
   } else {
+  // @@protoc_insertion_point(generalized_merge_from_cast_success:exec.bit.control.BitStatus)
     MergeFrom(*source);
   }
 }
 
 void BitStatus::MergeFrom(const BitStatus& from) {
-  GOOGLE_CHECK_NE(&from, this);
+// @@protoc_insertion_point(class_specific_merge_from_start:exec.bit.control.BitStatus)
+  GOOGLE_DCHECK_NE(&from, this);
+  _internal_metadata_.MergeFrom(from._internal_metadata_);
+  ::google::protobuf::uint32 cached_has_bits = 0;
+  (void) cached_has_bits;
+
   fragment_status_.MergeFrom(from.fragment_status_);
-  mutable_unknown_fields()->MergeFrom(from.unknown_fields());
 }
 
 void BitStatus::CopyFrom(const ::google::protobuf::Message& from) {
+// @@protoc_insertion_point(generalized_copy_from_start:exec.bit.control.BitStatus)
   if (&from == this) return;
   Clear();
   MergeFrom(from);
 }
 
 void BitStatus::CopyFrom(const BitStatus& from) {
+// @@protoc_insertion_point(class_specific_copy_from_start:exec.bit.control.BitStatus)
   if (&from == this) return;
   Clear();
   MergeFrom(from);
 }
 
 bool BitStatus::IsInitialized() const {
-
   return true;
 }
 
 void BitStatus::Swap(BitStatus* other) {
-  if (other != this) {
-    fragment_status_.Swap(&other->fragment_status_);
-    std::swap(_has_bits_[0], other->_has_bits_[0]);
-    _unknown_fields_.Swap(&other->_unknown_fields_);
-    std::swap(_cached_size_, other->_cached_size_);
-  }
+  if (other == this) return;
+  InternalSwap(other);
+}
+void BitStatus::InternalSwap(BitStatus* other) {
+  using std::swap;
+  CastToBase(&fragment_status_)->InternalSwap(CastToBase(&other->fragment_status_));
+  swap(_has_bits_[0], other->_has_bits_[0]);
+  _internal_metadata_.Swap(&other->_internal_metadata_);
 }
 
 ::google::protobuf::Metadata BitStatus::GetMetadata() const {
-  protobuf_AssignDescriptorsOnce();
-  ::google::protobuf::Metadata metadata;
-  metadata.descriptor = BitStatus_descriptor_;
-  metadata.reflection = BitStatus_reflection_;
-  return metadata;
+  protobuf_BitControl_2eproto::protobuf_AssignDescriptorsOnce();
+  return ::protobuf_BitControl_2eproto::file_level_metadata[kIndexInFileMessages];
 }
 
 
 // ===================================================================
 
-#ifndef _MSC_VER
+void FragmentStatus::InitAsDefaultInstance() {
+  ::exec::bit::control::_FragmentStatus_default_instance_._instance.get_mutable()->profile_ = const_cast< ::exec::shared::MinorFragmentProfile*>(
+      ::exec::shared::MinorFragmentProfile::internal_default_instance());
+  ::exec::bit::control::_FragmentStatus_default_instance_._instance.get_mutable()->handle_ = const_cast< ::exec::bit::FragmentHandle*>(
+      ::exec::bit::FragmentHandle::internal_default_instance());
+}
+void FragmentStatus::clear_profile() {
+  if (profile_ != NULL) profile_->Clear();
+  clear_has_profile();
+}
+void FragmentStatus::clear_handle() {
+  if (handle_ != NULL) handle_->Clear();
+  clear_has_handle();
+}
+#if !defined(_MSC_VER) || _MSC_VER >= 1900
 const int FragmentStatus::kProfileFieldNumber;
 const int FragmentStatus::kHandleFieldNumber;
-#endif  // !_MSC_VER
+#endif  // !defined(_MSC_VER) || _MSC_VER >= 1900
 
 FragmentStatus::FragmentStatus()
-  : ::google::protobuf::Message() {
+  : ::google::protobuf::Message(), _internal_metadata_(NULL) {
+  ::google::protobuf::internal::InitSCC(
+      &protobuf_BitControl_2eproto::scc_info_FragmentStatus.base);
   SharedCtor();
+  // @@protoc_insertion_point(constructor:exec.bit.control.FragmentStatus)
 }
-
-void FragmentStatus::InitAsDefaultInstance() {
-  profile_ = const_cast< ::exec::shared::MinorFragmentProfile*>(&::exec::shared::MinorFragmentProfile::default_instance());
-  handle_ = const_cast< ::exec::bit::FragmentHandle*>(&::exec::bit::FragmentHandle::default_instance());
-}
-
 FragmentStatus::FragmentStatus(const FragmentStatus& from)
-  : ::google::protobuf::Message() {
-  SharedCtor();
-  MergeFrom(from);
+  : ::google::protobuf::Message(),
+      _internal_metadata_(NULL),
+      _has_bits_(from._has_bits_) {
+  _internal_metadata_.MergeFrom(from._internal_metadata_);
+  if (from.has_profile()) {
+    profile_ = new ::exec::shared::MinorFragmentProfile(*from.profile_);
+  } else {
+    profile_ = NULL;
+  }
+  if (from.has_handle()) {
+    handle_ = new ::exec::bit::FragmentHandle(*from.handle_);
+  } else {
+    handle_ = NULL;
+  }
+  // @@protoc_insertion_point(copy_constructor:exec.bit.control.FragmentStatus)
 }
 
 void FragmentStatus::SharedCtor() {
-  _cached_size_ = 0;
-  profile_ = NULL;
-  handle_ = NULL;
-  ::memset(_has_bits_, 0, sizeof(_has_bits_));
+  ::memset(&profile_, 0, static_cast<size_t>(
+      reinterpret_cast<char*>(&handle_) -
+      reinterpret_cast<char*>(&profile_)) + sizeof(handle_));
 }
 
 FragmentStatus::~FragmentStatus() {
+  // @@protoc_insertion_point(destructor:exec.bit.control.FragmentStatus)
   SharedDtor();
 }
 
 void FragmentStatus::SharedDtor() {
-  if (this != default_instance_) {
-    delete profile_;
-    delete handle_;
-  }
+  if (this != internal_default_instance()) delete profile_;
+  if (this != internal_default_instance()) delete handle_;
 }
 
 void FragmentStatus::SetCachedSize(int size) const {
-  GOOGLE_SAFE_CONCURRENT_WRITES_BEGIN();
-  _cached_size_ = size;
-  GOOGLE_SAFE_CONCURRENT_WRITES_END();
+  _cached_size_.Set(size);
 }
 const ::google::protobuf::Descriptor* FragmentStatus::descriptor() {
-  protobuf_AssignDescriptorsOnce();
-  return FragmentStatus_descriptor_;
+  ::protobuf_BitControl_2eproto::protobuf_AssignDescriptorsOnce();
+  return ::protobuf_BitControl_2eproto::file_level_metadata[kIndexInFileMessages].descriptor;
 }
 
 const FragmentStatus& FragmentStatus::default_instance() {
-  if (default_instance_ == NULL) protobuf_AddDesc_BitControl_2eproto();
-  return *default_instance_;
+  ::google::protobuf::internal::InitSCC(&protobuf_BitControl_2eproto::scc_info_FragmentStatus.base);
+  return *internal_default_instance();
 }
 
-FragmentStatus* FragmentStatus::default_instance_ = NULL;
-
-FragmentStatus* FragmentStatus::New() const {
-  return new FragmentStatus;
-}
 
 void FragmentStatus::Clear() {
-  if (_has_bits_[0 / 32] & (0xffu << (0 % 32))) {
-    if (has_profile()) {
-      if (profile_ != NULL) profile_->::exec::shared::MinorFragmentProfile::Clear();
+// @@protoc_insertion_point(message_clear_start:exec.bit.control.FragmentStatus)
+  ::google::protobuf::uint32 cached_has_bits = 0;
+  // Prevent compiler warnings about cached_has_bits being unused
+  (void) cached_has_bits;
+
+  cached_has_bits = _has_bits_[0];
+  if (cached_has_bits & 3u) {
+    if (cached_has_bits & 0x00000001u) {
+      GOOGLE_DCHECK(profile_ != NULL);
+      profile_->Clear();
     }
-    if (has_handle()) {
-      if (handle_ != NULL) handle_->::exec::bit::FragmentHandle::Clear();
+    if (cached_has_bits & 0x00000002u) {
+      GOOGLE_DCHECK(handle_ != NULL);
+      handle_->Clear();
     }
   }
-  ::memset(_has_bits_, 0, sizeof(_has_bits_));
-  mutable_unknown_fields()->Clear();
+  _has_bits_.Clear();
+  _internal_metadata_.Clear();
 }
 
 bool FragmentStatus::MergePartialFromCodedStream(
     ::google::protobuf::io::CodedInputStream* input) {
-#define DO_(EXPRESSION) if (!(EXPRESSION)) return false
+#define DO_(EXPRESSION) if (!GOOGLE_PREDICT_TRUE(EXPRESSION)) goto failure
   ::google::protobuf::uint32 tag;
-  while ((tag = input->ReadTag()) != 0) {
+  // @@protoc_insertion_point(parse_start:exec.bit.control.FragmentStatus)
+  for (;;) {
+    ::std::pair<::google::protobuf::uint32, bool> p = input->ReadTagWithCutoffNoLastTag(127u);
+    tag = p.first;
+    if (!p.second) goto handle_unusual;
     switch (::google::protobuf::internal::WireFormatLite::GetTagFieldNumber(tag)) {
       // optional .exec.shared.MinorFragmentProfile profile = 1;
       case 1: {
-        if (::google::protobuf::internal::WireFormatLite::GetTagWireType(tag) ==
-            ::google::protobuf::internal::WireFormatLite::WIRETYPE_LENGTH_DELIMITED) {
-          DO_(::google::protobuf::internal::WireFormatLite::ReadMessageNoVirtual(
+        if (static_cast< ::google::protobuf::uint8>(tag) ==
+            static_cast< ::google::protobuf::uint8>(10u /* 10 & 0xFF */)) {
+          DO_(::google::protobuf::internal::WireFormatLite::ReadMessage(
                input, mutable_profile()));
         } else {
-          goto handle_uninterpreted;
+          goto handle_unusual;
         }
-        if (input->ExpectTag(18)) goto parse_handle;
         break;
       }
 
       // optional .exec.bit.FragmentHandle handle = 2;
       case 2: {
-        if (::google::protobuf::internal::WireFormatLite::GetTagWireType(tag) ==
-            ::google::protobuf::internal::WireFormatLite::WIRETYPE_LENGTH_DELIMITED) {
-         parse_handle:
-          DO_(::google::protobuf::internal::WireFormatLite::ReadMessageNoVirtual(
+        if (static_cast< ::google::protobuf::uint8>(tag) ==
+            static_cast< ::google::protobuf::uint8>(18u /* 18 & 0xFF */)) {
+          DO_(::google::protobuf::internal::WireFormatLite::ReadMessage(
                input, mutable_handle()));
         } else {
-          goto handle_uninterpreted;
+          goto handle_unusual;
         }
-        if (input->ExpectAtEnd()) return true;
         break;
       }
 
       default: {
-      handle_uninterpreted:
-        if (::google::protobuf::internal::WireFormatLite::GetTagWireType(tag) ==
-            ::google::protobuf::internal::WireFormatLite::WIRETYPE_END_GROUP) {
-          return true;
+      handle_unusual:
+        if (tag == 0) {
+          goto success;
         }
         DO_(::google::protobuf::internal::WireFormat::SkipField(
-              input, tag, mutable_unknown_fields()));
+              input, tag, _internal_metadata_.mutable_unknown_fields()));
         break;
       }
     }
   }
+success:
+  // @@protoc_insertion_point(parse_success:exec.bit.control.FragmentStatus)
   return true;
+failure:
+  // @@protoc_insertion_point(parse_failure:exec.bit.control.FragmentStatus)
+  return false;
 #undef DO_
 }
 
 void FragmentStatus::SerializeWithCachedSizes(
     ::google::protobuf::io::CodedOutputStream* output) const {
+  // @@protoc_insertion_point(serialize_start:exec.bit.control.FragmentStatus)
+  ::google::protobuf::uint32 cached_has_bits = 0;
+  (void) cached_has_bits;
+
+  cached_has_bits = _has_bits_[0];
   // optional .exec.shared.MinorFragmentProfile profile = 1;
-  if (has_profile()) {
+  if (cached_has_bits & 0x00000001u) {
     ::google::protobuf::internal::WireFormatLite::WriteMessageMaybeToArray(
-      1, this->profile(), output);
+      1, this->_internal_profile(), output);
   }
 
   // optional .exec.bit.FragmentHandle handle = 2;
-  if (has_handle()) {
+  if (cached_has_bits & 0x00000002u) {
     ::google::protobuf::internal::WireFormatLite::WriteMessageMaybeToArray(
-      2, this->handle(), output);
+      2, this->_internal_handle(), output);
   }
 
-  if (!unknown_fields().empty()) {
+  if (_internal_metadata_.have_unknown_fields()) {
     ::google::protobuf::internal::WireFormat::SerializeUnknownFields(
-        unknown_fields(), output);
+        _internal_metadata_.unknown_fields(), output);
   }
+  // @@protoc_insertion_point(serialize_end:exec.bit.control.FragmentStatus)
 }
 
-::google::protobuf::uint8* FragmentStatus::SerializeWithCachedSizesToArray(
-    ::google::protobuf::uint8* target) const {
+::google::protobuf::uint8* FragmentStatus::InternalSerializeWithCachedSizesToArray(
+    bool deterministic, ::google::protobuf::uint8* target) const {
+  (void)deterministic; // Unused
+  // @@protoc_insertion_point(serialize_to_array_start:exec.bit.control.FragmentStatus)
+  ::google::protobuf::uint32 cached_has_bits = 0;
+  (void) cached_has_bits;
+
+  cached_has_bits = _has_bits_[0];
   // optional .exec.shared.MinorFragmentProfile profile = 1;
-  if (has_profile()) {
+  if (cached_has_bits & 0x00000001u) {
     target = ::google::protobuf::internal::WireFormatLite::
-      WriteMessageNoVirtualToArray(
-        1, this->profile(), target);
+      InternalWriteMessageToArray(
+        1, this->_internal_profile(), deterministic, target);
   }
 
   // optional .exec.bit.FragmentHandle handle = 2;
-  if (has_handle()) {
+  if (cached_has_bits & 0x00000002u) {
     target = ::google::protobuf::internal::WireFormatLite::
-      WriteMessageNoVirtualToArray(
-        2, this->handle(), target);
+      InternalWriteMessageToArray(
+        2, this->_internal_handle(), deterministic, target);
   }
 
-  if (!unknown_fields().empty()) {
+  if (_internal_metadata_.have_unknown_fields()) {
     target = ::google::protobuf::internal::WireFormat::SerializeUnknownFieldsToArray(
-        unknown_fields(), target);
+        _internal_metadata_.unknown_fields(), target);
   }
+  // @@protoc_insertion_point(serialize_to_array_end:exec.bit.control.FragmentStatus)
   return target;
 }
 
-int FragmentStatus::ByteSize() const {
-  int total_size = 0;
+size_t FragmentStatus::ByteSizeLong() const {
+// @@protoc_insertion_point(message_byte_size_start:exec.bit.control.FragmentStatus)
+  size_t total_size = 0;
 
-  if (_has_bits_[0 / 32] & (0xffu << (0 % 32))) {
+  if (_internal_metadata_.have_unknown_fields()) {
+    total_size +=
+      ::google::protobuf::internal::WireFormat::ComputeUnknownFieldsSize(
+        _internal_metadata_.unknown_fields());
+  }
+  if (_has_bits_[0 / 32] & 3u) {
     // optional .exec.shared.MinorFragmentProfile profile = 1;
     if (has_profile()) {
       total_size += 1 +
-        ::google::protobuf::internal::WireFormatLite::MessageSizeNoVirtual(
-          this->profile());
+        ::google::protobuf::internal::WireFormatLite::MessageSize(
+          *profile_);
     }
 
     // optional .exec.bit.FragmentHandle handle = 2;
     if (has_handle()) {
       total_size += 1 +
-        ::google::protobuf::internal::WireFormatLite::MessageSizeNoVirtual(
-          this->handle());
+        ::google::protobuf::internal::WireFormatLite::MessageSize(
+          *handle_);
     }
 
   }
-  if (!unknown_fields().empty()) {
-    total_size +=
-      ::google::protobuf::internal::WireFormat::ComputeUnknownFieldsSize(
-        unknown_fields());
-  }
-  GOOGLE_SAFE_CONCURRENT_WRITES_BEGIN();
-  _cached_size_ = total_size;
-  GOOGLE_SAFE_CONCURRENT_WRITES_END();
+  int cached_size = ::google::protobuf::internal::ToCachedSize(total_size);
+  SetCachedSize(cached_size);
   return total_size;
 }
 
 void FragmentStatus::MergeFrom(const ::google::protobuf::Message& from) {
-  GOOGLE_CHECK_NE(&from, this);
+// @@protoc_insertion_point(generalized_merge_from_start:exec.bit.control.FragmentStatus)
+  GOOGLE_DCHECK_NE(&from, this);
   const FragmentStatus* source =
-    ::google::protobuf::internal::dynamic_cast_if_available<const FragmentStatus*>(
-      &from);
+      ::google::protobuf::internal::DynamicCastToGenerated<const FragmentStatus>(
+          &from);
   if (source == NULL) {
+  // @@protoc_insertion_point(generalized_merge_from_cast_fail:exec.bit.control.FragmentStatus)
     ::google::protobuf::internal::ReflectionOps::Merge(from, this);
   } else {
+  // @@protoc_insertion_point(generalized_merge_from_cast_success:exec.bit.control.FragmentStatus)
     MergeFrom(*source);
   }
 }
 
 void FragmentStatus::MergeFrom(const FragmentStatus& from) {
-  GOOGLE_CHECK_NE(&from, this);
-  if (from._has_bits_[0 / 32] & (0xffu << (0 % 32))) {
-    if (from.has_profile()) {
+// @@protoc_insertion_point(class_specific_merge_from_start:exec.bit.control.FragmentStatus)
+  GOOGLE_DCHECK_NE(&from, this);
+  _internal_metadata_.MergeFrom(from._internal_metadata_);
+  ::google::protobuf::uint32 cached_has_bits = 0;
+  (void) cached_has_bits;
+
+  cached_has_bits = from._has_bits_[0];
+  if (cached_has_bits & 3u) {
+    if (cached_has_bits & 0x00000001u) {
       mutable_profile()->::exec::shared::MinorFragmentProfile::MergeFrom(from.profile());
     }
-    if (from.has_handle()) {
+    if (cached_has_bits & 0x00000002u) {
       mutable_handle()->::exec::bit::FragmentHandle::MergeFrom(from.handle());
     }
   }
-  mutable_unknown_fields()->MergeFrom(from.unknown_fields());
 }
 
 void FragmentStatus::CopyFrom(const ::google::protobuf::Message& from) {
+// @@protoc_insertion_point(generalized_copy_from_start:exec.bit.control.FragmentStatus)
   if (&from == this) return;
   Clear();
   MergeFrom(from);
 }
 
 void FragmentStatus::CopyFrom(const FragmentStatus& from) {
+// @@protoc_insertion_point(class_specific_copy_from_start:exec.bit.control.FragmentStatus)
   if (&from == this) return;
   Clear();
   MergeFrom(from);
 }
 
 bool FragmentStatus::IsInitialized() const {
-
   return true;
 }
 
 void FragmentStatus::Swap(FragmentStatus* other) {
-  if (other != this) {
-    std::swap(profile_, other->profile_);
-    std::swap(handle_, other->handle_);
-    std::swap(_has_bits_[0], other->_has_bits_[0]);
-    _unknown_fields_.Swap(&other->_unknown_fields_);
-    std::swap(_cached_size_, other->_cached_size_);
-  }
+  if (other == this) return;
+  InternalSwap(other);
+}
+void FragmentStatus::InternalSwap(FragmentStatus* other) {
+  using std::swap;
+  swap(profile_, other->profile_);
+  swap(handle_, other->handle_);
+  swap(_has_bits_[0], other->_has_bits_[0]);
+  _internal_metadata_.Swap(&other->_internal_metadata_);
 }
 
 ::google::protobuf::Metadata FragmentStatus::GetMetadata() const {
-  protobuf_AssignDescriptorsOnce();
-  ::google::protobuf::Metadata metadata;
-  metadata.descriptor = FragmentStatus_descriptor_;
-  metadata.reflection = FragmentStatus_reflection_;
-  return metadata;
+  protobuf_BitControl_2eproto::protobuf_AssignDescriptorsOnce();
+  return ::protobuf_BitControl_2eproto::file_level_metadata[kIndexInFileMessages];
 }
 
 
 // ===================================================================
 
-#ifndef _MSC_VER
+void InitializeFragments::InitAsDefaultInstance() {
+}
+#if !defined(_MSC_VER) || _MSC_VER >= 1900
 const int InitializeFragments::kFragmentFieldNumber;
-#endif  // !_MSC_VER
+#endif  // !defined(_MSC_VER) || _MSC_VER >= 1900
 
 InitializeFragments::InitializeFragments()
-  : ::google::protobuf::Message() {
+  : ::google::protobuf::Message(), _internal_metadata_(NULL) {
+  ::google::protobuf::internal::InitSCC(
+      &protobuf_BitControl_2eproto::scc_info_InitializeFragments.base);
   SharedCtor();
+  // @@protoc_insertion_point(constructor:exec.bit.control.InitializeFragments)
 }
-
-void InitializeFragments::InitAsDefaultInstance() {
-}
-
 InitializeFragments::InitializeFragments(const InitializeFragments& from)
-  : ::google::protobuf::Message() {
-  SharedCtor();
-  MergeFrom(from);
+  : ::google::protobuf::Message(),
+      _internal_metadata_(NULL),
+      _has_bits_(from._has_bits_),
+      fragment_(from.fragment_) {
+  _internal_metadata_.MergeFrom(from._internal_metadata_);
+  // @@protoc_insertion_point(copy_constructor:exec.bit.control.InitializeFragments)
 }
 
 void InitializeFragments::SharedCtor() {
-  _cached_size_ = 0;
-  ::memset(_has_bits_, 0, sizeof(_has_bits_));
 }
 
 InitializeFragments::~InitializeFragments() {
+  // @@protoc_insertion_point(destructor:exec.bit.control.InitializeFragments)
   SharedDtor();
 }
 
 void InitializeFragments::SharedDtor() {
-  if (this != default_instance_) {
-  }
 }
 
 void InitializeFragments::SetCachedSize(int size) const {
-  GOOGLE_SAFE_CONCURRENT_WRITES_BEGIN();
-  _cached_size_ = size;
-  GOOGLE_SAFE_CONCURRENT_WRITES_END();
+  _cached_size_.Set(size);
 }
 const ::google::protobuf::Descriptor* InitializeFragments::descriptor() {
-  protobuf_AssignDescriptorsOnce();
-  return InitializeFragments_descriptor_;
+  ::protobuf_BitControl_2eproto::protobuf_AssignDescriptorsOnce();
+  return ::protobuf_BitControl_2eproto::file_level_metadata[kIndexInFileMessages].descriptor;
 }
 
 const InitializeFragments& InitializeFragments::default_instance() {
-  if (default_instance_ == NULL) protobuf_AddDesc_BitControl_2eproto();
-  return *default_instance_;
+  ::google::protobuf::internal::InitSCC(&protobuf_BitControl_2eproto::scc_info_InitializeFragments.base);
+  return *internal_default_instance();
 }
 
-InitializeFragments* InitializeFragments::default_instance_ = NULL;
-
-InitializeFragments* InitializeFragments::New() const {
-  return new InitializeFragments;
-}
 
 void InitializeFragments::Clear() {
+// @@protoc_insertion_point(message_clear_start:exec.bit.control.InitializeFragments)
+  ::google::protobuf::uint32 cached_has_bits = 0;
+  // Prevent compiler warnings about cached_has_bits being unused
+  (void) cached_has_bits;
+
   fragment_.Clear();
-  ::memset(_has_bits_, 0, sizeof(_has_bits_));
-  mutable_unknown_fields()->Clear();
+  _has_bits_.Clear();
+  _internal_metadata_.Clear();
 }
 
 bool InitializeFragments::MergePartialFromCodedStream(
     ::google::protobuf::io::CodedInputStream* input) {
-#define DO_(EXPRESSION) if (!(EXPRESSION)) return false
+#define DO_(EXPRESSION) if (!GOOGLE_PREDICT_TRUE(EXPRESSION)) goto failure
   ::google::protobuf::uint32 tag;
-  while ((tag = input->ReadTag()) != 0) {
+  // @@protoc_insertion_point(parse_start:exec.bit.control.InitializeFragments)
+  for (;;) {
+    ::std::pair<::google::protobuf::uint32, bool> p = input->ReadTagWithCutoffNoLastTag(127u);
+    tag = p.first;
+    if (!p.second) goto handle_unusual;
     switch (::google::protobuf::internal::WireFormatLite::GetTagFieldNumber(tag)) {
       // repeated .exec.bit.control.PlanFragment fragment = 1;
       case 1: {
-        if (::google::protobuf::internal::WireFormatLite::GetTagWireType(tag) ==
-            ::google::protobuf::internal::WireFormatLite::WIRETYPE_LENGTH_DELIMITED) {
-         parse_fragment:
-          DO_(::google::protobuf::internal::WireFormatLite::ReadMessageNoVirtual(
+        if (static_cast< ::google::protobuf::uint8>(tag) ==
+            static_cast< ::google::protobuf::uint8>(10u /* 10 & 0xFF */)) {
+          DO_(::google::protobuf::internal::WireFormatLite::ReadMessage(
                 input, add_fragment()));
         } else {
-          goto handle_uninterpreted;
+          goto handle_unusual;
         }
-        if (input->ExpectTag(10)) goto parse_fragment;
-        if (input->ExpectAtEnd()) return true;
         break;
       }
 
       default: {
-      handle_uninterpreted:
-        if (::google::protobuf::internal::WireFormatLite::GetTagWireType(tag) ==
-            ::google::protobuf::internal::WireFormatLite::WIRETYPE_END_GROUP) {
-          return true;
+      handle_unusual:
+        if (tag == 0) {
+          goto success;
         }
         DO_(::google::protobuf::internal::WireFormat::SkipField(
-              input, tag, mutable_unknown_fields()));
+              input, tag, _internal_metadata_.mutable_unknown_fields()));
         break;
       }
     }
   }
+success:
+  // @@protoc_insertion_point(parse_success:exec.bit.control.InitializeFragments)
   return true;
+failure:
+  // @@protoc_insertion_point(parse_failure:exec.bit.control.InitializeFragments)
+  return false;
 #undef DO_
 }
 
 void InitializeFragments::SerializeWithCachedSizes(
     ::google::protobuf::io::CodedOutputStream* output) const {
+  // @@protoc_insertion_point(serialize_start:exec.bit.control.InitializeFragments)
+  ::google::protobuf::uint32 cached_has_bits = 0;
+  (void) cached_has_bits;
+
   // repeated .exec.bit.control.PlanFragment fragment = 1;
-  for (int i = 0; i < this->fragment_size(); i++) {
+  for (unsigned int i = 0,
+      n = static_cast<unsigned int>(this->fragment_size()); i < n; i++) {
     ::google::protobuf::internal::WireFormatLite::WriteMessageMaybeToArray(
-      1, this->fragment(i), output);
+      1,
+      this->fragment(static_cast<int>(i)),
+      output);
   }
 
-  if (!unknown_fields().empty()) {
+  if (_internal_metadata_.have_unknown_fields()) {
     ::google::protobuf::internal::WireFormat::SerializeUnknownFields(
-        unknown_fields(), output);
+        _internal_metadata_.unknown_fields(), output);
   }
+  // @@protoc_insertion_point(serialize_end:exec.bit.control.InitializeFragments)
 }
 
-::google::protobuf::uint8* InitializeFragments::SerializeWithCachedSizesToArray(
-    ::google::protobuf::uint8* target) const {
+::google::protobuf::uint8* InitializeFragments::InternalSerializeWithCachedSizesToArray(
+    bool deterministic, ::google::protobuf::uint8* target) const {
+  (void)deterministic; // Unused
+  // @@protoc_insertion_point(serialize_to_array_start:exec.bit.control.InitializeFragments)
+  ::google::protobuf::uint32 cached_has_bits = 0;
+  (void) cached_has_bits;
+
   // repeated .exec.bit.control.PlanFragment fragment = 1;
-  for (int i = 0; i < this->fragment_size(); i++) {
+  for (unsigned int i = 0,
+      n = static_cast<unsigned int>(this->fragment_size()); i < n; i++) {
     target = ::google::protobuf::internal::WireFormatLite::
-      WriteMessageNoVirtualToArray(
-        1, this->fragment(i), target);
+      InternalWriteMessageToArray(
+        1, this->fragment(static_cast<int>(i)), deterministic, target);
   }
 
-  if (!unknown_fields().empty()) {
+  if (_internal_metadata_.have_unknown_fields()) {
     target = ::google::protobuf::internal::WireFormat::SerializeUnknownFieldsToArray(
-        unknown_fields(), target);
+        _internal_metadata_.unknown_fields(), target);
   }
+  // @@protoc_insertion_point(serialize_to_array_end:exec.bit.control.InitializeFragments)
   return target;
 }
 
-int InitializeFragments::ByteSize() const {
-  int total_size = 0;
-
-  // repeated .exec.bit.control.PlanFragment fragment = 1;
-  total_size += 1 * this->fragment_size();
-  for (int i = 0; i < this->fragment_size(); i++) {
-    total_size +=
-      ::google::protobuf::internal::WireFormatLite::MessageSizeNoVirtual(
-        this->fragment(i));
-  }
+size_t InitializeFragments::ByteSizeLong() const {
+// @@protoc_insertion_point(message_byte_size_start:exec.bit.control.InitializeFragments)
+  size_t total_size = 0;
 
-  if (!unknown_fields().empty()) {
+  if (_internal_metadata_.have_unknown_fields()) {
     total_size +=
       ::google::protobuf::internal::WireFormat::ComputeUnknownFieldsSize(
-        unknown_fields());
+        _internal_metadata_.unknown_fields());
   }
-  GOOGLE_SAFE_CONCURRENT_WRITES_BEGIN();
-  _cached_size_ = total_size;
-  GOOGLE_SAFE_CONCURRENT_WRITES_END();
+  // repeated .exec.bit.control.PlanFragment fragment = 1;
+  {
+    unsigned int count = static_cast<unsigned int>(this->fragment_size());
+    total_size += 1UL * count;
+    for (unsigned int i = 0; i < count; i++) {
+      total_size +=
+        ::google::protobuf::internal::WireFormatLite::MessageSize(
+          this->fragment(static_cast<int>(i)));
+    }
+  }
+
+  int cached_size = ::google::protobuf::internal::ToCachedSize(total_size);
+  SetCachedSize(cached_size);
   return total_size;
 }
 
 void InitializeFragments::MergeFrom(const ::google::protobuf::Message& from) {
-  GOOGLE_CHECK_NE(&from, this);
+// @@protoc_insertion_point(generalized_merge_from_start:exec.bit.control.InitializeFragments)
+  GOOGLE_DCHECK_NE(&from, this);
   const InitializeFragments* source =
-    ::google::protobuf::internal::dynamic_cast_if_available<const InitializeFragments*>(
-      &from);
+      ::google::protobuf::internal::DynamicCastToGenerated<const InitializeFragments>(
+          &from);
   if (source == NULL) {
+  // @@protoc_insertion_point(generalized_merge_from_cast_fail:exec.bit.control.InitializeFragments)
     ::google::protobuf::internal::ReflectionOps::Merge(from, this);
   } else {
+  // @@protoc_insertion_point(generalized_merge_from_cast_success:exec.bit.control.InitializeFragments)
     MergeFrom(*source);
   }
 }
 
 void InitializeFragments::MergeFrom(const InitializeFragments& from) {
-  GOOGLE_CHECK_NE(&from, this);
+// @@protoc_insertion_point(class_specific_merge_from_start:exec.bit.control.InitializeFragments)
+  GOOGLE_DCHECK_NE(&from, this);
+  _internal_metadata_.MergeFrom(from._internal_metadata_);
+  ::google::protobuf::uint32 cached_has_bits = 0;
+  (void) cached_has_bits;
+
   fragment_.MergeFrom(from.fragment_);
-  mutable_unknown_fields()->MergeFrom(from.unknown_fields());
 }
 
 void InitializeFragments::CopyFrom(const ::google::protobuf::Message& from) {
+// @@protoc_insertion_point(generalized_copy_from_start:exec.bit.control.InitializeFragments)
   if (&from == this) return;
   Clear();
   MergeFrom(from);
 }
 
 void InitializeFragments::CopyFrom(const InitializeFragments& from) {
+// @@protoc_insertion_point(class_specific_copy_from_start:exec.bit.control.InitializeFragments)
   if (&from == this) return;
   Clear();
   MergeFrom(from);
 }
 
 bool InitializeFragments::IsInitialized() const {
-
   return true;
 }
 
 void InitializeFragments::Swap(InitializeFragments* other) {
-  if (other != this) {
-    fragment_.Swap(&other->fragment_);
-    std::swap(_has_bits_[0], other->_has_bits_[0]);
-    _unknown_fields_.Swap(&other->_unknown_fields_);
-    std::swap(_cached_size_, other->_cached_size_);
-  }
+  if (other == this) return;
+  InternalSwap(other);
+}
+void InitializeFragments::InternalSwap(InitializeFragments* other) {
+  using std::swap;
+  CastToBase(&fragment_)->InternalSwap(CastToBase(&other->fragment_));
+  swap(_has_bits_[0], other->_has_bits_[0]);
+  _internal_metadata_.Swap(&other->_internal_metadata_);
 }
 
 ::google::protobuf::Metadata InitializeFragments::GetMetadata() const {
-  protobuf_AssignDescriptorsOnce();
-  ::google::protobuf::Metadata metadata;
-  metadata.descriptor = InitializeFragments_descriptor_;
-  metadata.reflection = InitializeFragments_reflection_;
-  return metadata;
+  protobuf_BitControl_2eproto::protobuf_AssignDescriptorsOnce();
+  return ::protobuf_BitControl_2eproto::file_level_metadata[kIndexInFileMessages];
 }
 
 
 // ===================================================================
 
-#ifndef _MSC_VER
+void CustomMessage::InitAsDefaultInstance() {
+}
+#if !defined(_MSC_VER) || _MSC_VER >= 1900
 const int CustomMessage::kTypeFieldNumber;
 const int CustomMessage::kMessageFieldNumber;
-#endif  // !_MSC_VER
+#endif  // !defined(_MSC_VER) || _MSC_VER >= 1900
 
 CustomMessage::CustomMessage()
-  : ::google::protobuf::Message() {
+  : ::google::protobuf::Message(), _internal_metadata_(NULL) {
+  ::google::protobuf::internal::InitSCC(
+      &protobuf_BitControl_2eproto::scc_info_CustomMessage.base);
   SharedCtor();
+  // @@protoc_insertion_point(constructor:exec.bit.control.CustomMessage)
 }
-
-void CustomMessage::InitAsDefaultInstance() {
-}
-
 CustomMessage::CustomMessage(const CustomMessage& from)
-  : ::google::protobuf::Message() {
-  SharedCtor();
-  MergeFrom(from);
+  : ::google::protobuf::Message(),
+      _internal_metadata_(NULL),
+      _has_bits_(from._has_bits_) {
+  _internal_metadata_.MergeFrom(from._internal_metadata_);
+  message_.UnsafeSetDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
+  if (from.has_message()) {
+    message_.AssignWithDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), from.message_);
+  }
+  type_ = from.type_;
+  // @@protoc_insertion_point(copy_constructor:exec.bit.control.CustomMessage)
 }
 
 void CustomMessage::SharedCtor() {
-  _cached_size_ = 0;
+  message_.UnsafeSetDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
   type_ = 0;
-  message_ = const_cast< ::std::string*>(&::google::protobuf::internal::kEmptyString);
-  ::memset(_has_bits_, 0, sizeof(_has_bits_));
 }
 
 CustomMessage::~CustomMessage() {
+  // @@protoc_insertion_point(destructor:exec.bit.control.CustomMessage)
   SharedDtor();
 }
 
 void CustomMessage::SharedDtor() {
-  if (message_ != &::google::protobuf::internal::kEmptyString) {
-    delete message_;
-  }
-  if (this != default_instance_) {
-  }
+  message_.DestroyNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
 }
 
 void CustomMessage::SetCachedSize(int size) const {
-  GOOGLE_SAFE_CONCURRENT_WRITES_BEGIN();
-  _cached_size_ = size;
-  GOOGLE_SAFE_CONCURRENT_WRITES_END();
+  _cached_size_.Set(size);
 }
 const ::google::protobuf::Descriptor* CustomMessage::descriptor() {
-  protobuf_AssignDescriptorsOnce();
-  return CustomMessage_descriptor_;
+  ::protobuf_BitControl_2eproto::protobuf_AssignDescriptorsOnce();
+  return ::protobuf_BitControl_2eproto::file_level_metadata[kIndexInFileMessages].descriptor;
 }
 
 const CustomMessage& CustomMessage::default_instance() {
-  if (default_instance_ == NULL) protobuf_AddDesc_BitControl_2eproto();
-  return *default_instance_;
+  ::google::protobuf::internal::InitSCC(&protobuf_BitControl_2eproto::scc_info_CustomMessage.base);
+  return *internal_default_instance();
 }
 
-CustomMessage* CustomMessage::default_instance_ = NULL;
-
-CustomMessage* CustomMessage::New() const {
-  return new CustomMessage;
-}
 
 void CustomMessage::Clear() {
-  if (_has_bits_[0 / 32] & (0xffu << (0 % 32))) {
-    type_ = 0;
-    if (has_message()) {
-      if (message_ != &::google::protobuf::internal::kEmptyString) {
-        message_->clear();
-      }
-    }
+// @@protoc_insertion_point(message_clear_start:exec.bit.control.CustomMessage)
+  ::google::protobuf::uint32 cached_has_bits = 0;
+  // Prevent compiler warnings about cached_has_bits being unused
+  (void) cached_has_bits;
+
+  cached_has_bits = _has_bits_[0];
+  if (cached_has_bits & 0x00000001u) {
+    message_.ClearNonDefaultToEmptyNoArena();
   }
-  ::memset(_has_bits_, 0, sizeof(_has_bits_));
-  mutable_unknown_fields()->Clear();
+  type_ = 0;
+  _has_bits_.Clear();
+  _internal_metadata_.Clear();
 }
 
 bool CustomMessage::MergePartialFromCodedStream(
     ::google::protobuf::io::CodedInputStream* input) {
-#define DO_(EXPRESSION) if (!(EXPRESSION)) return false
+#define DO_(EXPRESSION) if (!GOOGLE_PREDICT_TRUE(EXPRESSION)) goto failure
   ::google::protobuf::uint32 tag;
-  while ((tag = input->ReadTag()) != 0) {
+  // @@protoc_insertion_point(parse_start:exec.bit.control.CustomMessage)
+  for (;;) {
+    ::std::pair<::google::protobuf::uint32, bool> p = input->ReadTagWithCutoffNoLastTag(127u);
+    tag = p.first;
+    if (!p.second) goto handle_unusual;
     switch (::google::protobuf::internal::WireFormatLite::GetTagFieldNumber(tag)) {
       // optional int32 type = 1;
       case 1: {
-        if (::google::protobuf::internal::WireFormatLite::GetTagWireType(tag) ==
-            ::google::protobuf::internal::WireFormatLite::WIRETYPE_VARINT) {
+        if (static_cast< ::google::protobuf::uint8>(tag) ==
+            static_cast< ::google::protobuf::uint8>(8u /* 8 & 0xFF */)) {
+          set_has_type();
           DO_((::google::protobuf::internal::WireFormatLite::ReadPrimitive<
                    ::google::protobuf::int32, ::google::protobuf::internal::WireFormatLite::TYPE_INT32>(
                  input, &type_)));
-          set_has_type();
         } else {
-          goto handle_uninterpreted;
+          goto handle_unusual;
         }
-        if (input->ExpectTag(18)) goto parse_message;
         break;
       }
 
       // optional bytes message = 2;
       case 2: {
-        if (::google::protobuf::internal::WireFormatLite::GetTagWireType(tag) ==
-            ::google::protobuf::internal::WireFormatLite::WIRETYPE_LENGTH_DELIMITED) {
-         parse_message:
+        if (static_cast< ::google::protobuf::uint8>(tag) ==
+            static_cast< ::google::protobuf::uint8>(18u /* 18 & 0xFF */)) {
           DO_(::google::protobuf::internal::WireFormatLite::ReadBytes(
                 input, this->mutable_message()));
         } else {
-          goto handle_uninterpreted;
+          goto handle_unusual;
         }
-        if (input->ExpectAtEnd()) return true;
         break;
       }
 
       default: {
-      handle_uninterpreted:
-        if (::google::protobuf::internal::WireFormatLite::GetTagWireType(tag) ==
-            ::google::protobuf::internal::WireFormatLite::WIRETYPE_END_GROUP) {
-          return true;
+      handle_unusual:
+        if (tag == 0) {
+          goto success;
         }
         DO_(::google::protobuf::internal::WireFormat::SkipField(
-              input, tag, mutable_unknown_fields()));
+              input, tag, _internal_metadata_.mutable_unknown_fields()));
         break;
       }
     }
   }
+success:
+  // @@protoc_insertion_point(parse_success:exec.bit.control.CustomMessage)
   return true;
+failure:
+  // @@protoc_insertion_point(parse_failure:exec.bit.control.CustomMessage)
+  return false;
 #undef DO_
 }
 
 void CustomMessage::SerializeWithCachedSizes(
     ::google::protobuf::io::CodedOutputStream* output) const {
+  // @@protoc_insertion_point(serialize_start:exec.bit.control.CustomMessage)
+  ::google::protobuf::uint32 cached_has_bits = 0;
+  (void) cached_has_bits;
+
+  cached_has_bits = _has_bits_[0];
   // optional int32 type = 1;
-  if (has_type()) {
+  if (cached_has_bits & 0x00000002u) {
     ::google::protobuf::internal::WireFormatLite::WriteInt32(1, this->type(), output);
   }
 
   // optional bytes message = 2;
-  if (has_message()) {
-    ::google::protobuf::internal::WireFormatLite::WriteBytes(
+  if (cached_has_bits & 0x00000001u) {
+    ::google::protobuf::internal::WireFormatLite::WriteBytesMaybeAliased(
       2, this->message(), output);
   }
 
-  if (!unknown_fields().empty()) {
+  if (_internal_metadata_.have_unknown_fields()) {
     ::google::protobuf::internal::WireFormat::SerializeUnknownFields(
-        unknown_fields(), output);
+        _internal_metadata_.unknown_fields(), output);
   }
+  // @@protoc_insertion_point(serialize_end:exec.bit.control.CustomMessage)
 }
 
-::google::protobuf::uint8* CustomMessage::SerializeWithCachedSizesToArray(
-    ::google::protobuf::uint8* target) const {
+::google::protobuf::uint8* CustomMessage::InternalSerializeWithCachedSizesToArray(
+    bool deterministic, ::google::protobuf::uint8* target) const {
+  (void)deterministic; // Unused
+  // @@protoc_insertion_point(serialize_to_array_start:exec.bit.control.CustomMessage)
+  ::google::protobuf::uint32 cached_has_bits = 0;
+  (void) cached_has_bits;
+
+  cached_has_bits = _has_bits_[0];
   // optional int32 type = 1;
-  if (has_type()) {
+  if (cached_has_bits & 0x00000002u) {
     target = ::google::protobuf::internal::WireFormatLite::WriteInt32ToArray(1, this->type(), target);
   }
 
   // optional bytes message = 2;
-  if (has_message()) {
+  if (cached_has_bits & 0x00000001u) {
     target =
       ::google::protobuf::internal::WireFormatLite::WriteBytesToArray(
         2, this->message(), target);
   }
 
-  if (!unknown_fields().empty()) {
+  if (_internal_metadata_.have_unknown_fields()) {
     target = ::google::protobuf::internal::WireFormat::SerializeUnknownFieldsToArray(
-        unknown_fields(), target);
+        _internal_metadata_.unknown_fields(), target);
   }
+  // @@protoc_insertion_point(serialize_to_array_end:exec.bit.control.CustomMessage)
   return target;
 }
 
-int CustomMessage::ByteSize() const {
-  int total_size = 0;
-
-  if (_has_bits_[0 / 32] & (0xffu << (0 % 32))) {
-    // optional int32 type = 1;
-    if (has_type()) {
-      total_size += 1 +
-        ::google::protobuf::internal::WireFormatLite::Int32Size(
-          this->type());
-    }
+size_t CustomMessage::ByteSizeLong() const {
+// @@protoc_insertion_point(message_byte_size_start:exec.bit.control.CustomMessage)
+  size_t total_size = 0;
 
+  if (_internal_metadata_.have_unknown_fields()) {
+    total_size +=
+      ::google::protobuf::internal::WireFormat::ComputeUnknownFieldsSize(
+        _internal_metadata_.unknown_fields());
+  }
+  if (_has_bits_[0 / 32] & 3u) {
     // optional bytes message = 2;
     if (has_message()) {
       total_size += 1 +
@@ -1617,82 +1897,122 @@ int CustomMessage::ByteSize() const {
           this->message());
     }
 
+    // optional int32 type = 1;
+    if (has_type()) {
+      total_size += 1 +
+        ::google::protobuf::internal::WireFormatLite::Int32Size(
+          this->type());
+    }
+
   }
-  if (!unknown_fields().empty()) {
-    total_size +=
-      ::google::protobuf::internal::WireFormat::ComputeUnknownFieldsSize(
-        unknown_fields());
-  }
-  GOOGLE_SAFE_CONCURRENT_WRITES_BEGIN();
-  _cached_size_ = total_size;
-  GOOGLE_SAFE_CONCURRENT_WRITES_END();
+  int cached_size = ::google::protobuf::internal::ToCachedSize(total_size);
+  SetCachedSize(cached_size);
   return total_size;
 }
 
 void CustomMessage::MergeFrom(const ::google::protobuf::Message& from) {
-  GOOGLE_CHECK_NE(&from, this);
+// @@protoc_insertion_point(generalized_merge_from_start:exec.bit.control.CustomMessage)
+  GOOGLE_DCHECK_NE(&from, this);
   const CustomMessage* source =
-    ::google::protobuf::internal::dynamic_cast_if_available<const CustomMessage*>(
-      &from);
+      ::google::protobuf::internal::DynamicCastToGenerated<const CustomMessage>(
+          &from);
   if (source == NULL) {
+  // @@protoc_insertion_point(generalized_merge_from_cast_fail:exec.bit.control.CustomMessage)
     ::google::protobuf::internal::ReflectionOps::Merge(from, this);
   } else {
+  // @@protoc_insertion_point(generalized_merge_from_cast_success:exec.bit.control.CustomMessage)
     MergeFrom(*source);
   }
 }
 
 void CustomMessage::MergeFrom(const CustomMessage& from) {
-  GOOGLE_CHECK_NE(&from, this);
-  if (from._has_bits_[0 / 32] & (0xffu << (0 % 32))) {
-    if (from.has_type()) {
-      set_type(from.type());
+// @@protoc_insertion_point(class_specific_merge_from_start:exec.bit.control.CustomMessage)
+  GOOGLE_DCHECK_NE(&from, this);
+  _internal_metadata_.MergeFrom(from._internal_metadata_);
+  ::google::protobuf::uint32 cached_has_bits = 0;
+  (void) cached_has_bits;
+
+  cached_has_bits = from._has_bits_[0];
+  if (cached_has_bits & 3u) {
+    if (cached_has_bits & 0x00000001u) {
+      set_has_message();
+      message_.AssignWithDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), from.message_);
     }
-    if (from.has_message()) {
-      set_message(from.message());
+    if (cached_has_bits & 0x00000002u) {
+      type_ = from.type_;
     }
+    _has_bits_[0] |= cached_has_bits;
   }
-  mutable_unknown_fields()->MergeFrom(from.unknown_fields());
 }
 
 void CustomMessage::CopyFrom(const ::google::protobuf::Message& from) {
+// @@protoc_insertion_point(generalized_copy_from_start:exec.bit.control.CustomMessage)
   if (&from == this) return;
   Clear();
   MergeFrom(from);
 }
 
 void CustomMessage::CopyFrom(const CustomMessage& from) {
+// @@protoc_insertion_point(class_specific_copy_from_start:exec.bit.control.CustomMessage)
   if (&from == this) return;
   Clear();
   MergeFrom(from);
 }
 
 bool CustomMessage::IsInitialized() const {
-
   return true;
 }
 
 void CustomMessage::Swap(CustomMessage* other) {
-  if (other != this) {
-    std::swap(type_, other->type_);
-    std::swap(message_, other->message_);
-    std::swap(_has_bits_[0], other->_has_bits_[0]);
-    _unknown_fields_.Swap(&other->_unknown_fields_);
-    std::swap(_cached_size_, other->_cached_size_);
-  }
+  if (other == this) return;
+  InternalSwap(other);
+}
+void CustomMessage::InternalSwap(CustomMessage* other) {
+  using std::swap;
+  message_.Swap(&other->message_, &::google::protobuf::internal::GetEmptyStringAlreadyInited(),
+    GetArenaNoVirtual());
+  swap(type_, other->type_);
+  swap(_has_bits_[0], other->_has_bits_[0]);
+  _internal_metadata_.Swap(&other->_internal_metadata_);
 }
 
 ::google::protobuf::Metadata CustomMessage::GetMetadata() const {
-  protobuf_AssignDescriptorsOnce();
-  ::google::protobuf::Metadata metadata;
-  metadata.descriptor = CustomMessage_descriptor_;
-  metadata.reflection = CustomMessage_reflection_;
-  return metadata;
+  protobuf_BitControl_2eproto::protobuf_AssignDescriptorsOnce();
+  return ::protobuf_BitControl_2eproto::file_level_metadata[kIndexInFileMessages];
 }
 
 
 // ===================================================================
 
-#ifndef _MSC_VER
+void PlanFragment::InitAsDefaultInstance() {
+  ::exec::bit::control::_PlanFragment_default_instance_._instance.get_mutable()->handle_ = const_cast< ::exec::bit::FragmentHandle*>(
+      ::exec::bit::FragmentHandle::internal_default_instance());
+  ::exec::bit::control::_PlanFragment_default_instance_._instance.get_mutable()->assignment_ = const_cast< ::exec::DrillbitEndpoint*>(
+      ::exec::DrillbitEndpoint::internal_default_instance());
+  ::exec::bit::control::_PlanFragment_default_instance_._instance.get_mutable()->foreman_ = const_cast< ::exec::DrillbitEndpoint*>(
+      ::exec::DrillbitEndpoint::internal_default_instance());
+  ::exec::bit::control::_PlanFragment_default_instance_._instance.get_mutable()->credentials_ = const_cast< ::exec::shared::UserCredentials*>(
+      ::exec::shared::UserCredentials::internal_default_instance());
+  ::exec::bit::control::_PlanFragment_default_instance_._instance.get_mutable()->context_ = const_cast< ::exec::bit::control::QueryContextInformation*>(
+      ::exec::bit::control::QueryContextInformation::internal_default_instance());
+}
+void PlanFragment::clear_handle() {
+  if (handle_ != NULL) handle_->Clear();
+  clear_has_handle();
+}
+void PlanFragment::clear_assignment() {
+  if (assignment_ != NULL) assignment_->Clear();
+  clear_has_assignment();
+}
+void PlanFragment::clear_foreman() {
+  if (foreman_ != NULL) foreman_->Clear();
+  clear_has_foreman();
+}
+void PlanFragment::clear_credentials() {
+  if (credentials_ != NULL) credentials_->Clear();
+  clear_has_credentials();
+}
+#if !defined(_MSC_VER) || _MSC_VER >= 1900
 const int PlanFragment::kHandleFieldNumber;
 const int PlanFragment::kNetworkCostFieldNumber;
 const int PlanFragment::kCpuCostFieldNumber;
@@ -1708,593 +2028,671 @@ const int PlanFragment::kCredentialsFieldNumber;
 const int PlanFragment::kOptionsJsonFieldNumber;
 const int PlanFragment::kContextFieldNumber;
 const int PlanFragment::kCollectorFieldNumber;
-#endif  // !_MSC_VER
+#endif  // !defined(_MSC_VER) || _MSC_VER >= 1900
 
 PlanFragment::PlanFragment()
-  : ::google::protobuf::Message() {
+  : ::google::protobuf::Message(), _internal_metadata_(NULL) {
+  ::google::protobuf::internal::InitSCC(
+      &protobuf_BitControl_2eproto::scc_info_PlanFragment.base);
   SharedCtor();
+  // @@protoc_insertion_point(constructor:exec.bit.control.PlanFragment)
 }
-
-void PlanFragment::InitAsDefaultInstance() {
-  handle_ = const_cast< ::exec::bit::FragmentHandle*>(&::exec::bit::FragmentHandle::default_instance());
-  assignment_ = const_cast< ::exec::DrillbitEndpoint*>(&::exec::DrillbitEndpoint::default_instance());
-  foreman_ = const_cast< ::exec::DrillbitEndpoint*>(&::exec::DrillbitEndpoint::default_instance());
-  credentials_ = const_cast< ::exec::shared::UserCredentials*>(&::exec::shared::UserCredentials::default_instance());
-  context_ = const_cast< ::exec::bit::control::QueryContextInformation*>(&::exec::bit::control::QueryContextInformation::default_instance());
-}
-
 PlanFragment::PlanFragment(const PlanFragment& from)
-  : ::google::protobuf::Message() {
-  SharedCtor();
-  MergeFrom(from);
+  : ::google::protobuf::Message(),
+      _internal_metadata_(NULL),
+      _has_bits_(from._has_bits_),
+      collector_(from.collector_) {
+  _internal_metadata_.MergeFrom(from._internal_metadata_);
+  fragment_json_.UnsafeSetDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
+  if (from.has_fragment_json()) {
+    fragment_json_.AssignWithDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), from.fragment_json_);
+  }
+  options_json_.UnsafeSetDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
+  if (from.has_options_json()) {
+    options_json_.AssignWithDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), from.options_json_);
+  }
+  if (from.has_handle()) {
+    handle_ = new ::exec::bit::FragmentHandle(*from.handle_);
+  } else {
+    handle_ = NULL;
+  }
+  if (from.has_assignment()) {
+    assignment_ = new ::exec::DrillbitEndpoint(*from.assignment_);
+  } else {
+    assignment_ = NULL;
+  }
+  if (from.has_foreman()) {
+    foreman_ = new ::exec::DrillbitEndpoint(*from.foreman_);
+  } else {
+    foreman_ = NULL;
+  }
+  if (from.has_credentials()) {
+    credentials_ = new ::exec::shared::UserCredentials(*from.credentials_);
+  } else {
+    credentials_ = NULL;
+  }
+  if (from.has_context()) {
+    context_ = new ::exec::bit::control::QueryContextInformation(*from.context_);
+  } else {
+    context_ = NULL;
+  }
+  ::memcpy(&network_cost_, &from.network_cost_,
+    static_cast<size_t>(reinterpret_cast<char*>(&mem_max_) -
+    reinterpret_cast<char*>(&network_cost_)) + sizeof(mem_max_));
+  // @@protoc_insertion_point(copy_constructor:exec.bit.control.PlanFragment)
 }
 
 void PlanFragment::SharedCtor() {
-  _cached_size_ = 0;
-  handle_ = NULL;
-  network_cost_ = 0;
-  cpu_cost_ = 0;
-  disk_cost_ = 0;
-  memory_cost_ = 0;
-  fragment_json_ = const_cast< ::std::string*>(&::google::protobuf::internal::kEmptyString);
-  leaf_fragment_ = false;
-  assignment_ = NULL;
-  foreman_ = NULL;
+  fragment_json_.UnsafeSetDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
+  options_json_.UnsafeSetDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
+  ::memset(&handle_, 0, static_cast<size_t>(
+      reinterpret_cast<char*>(&leaf_fragment_) -
+      reinterpret_cast<char*>(&handle_)) + sizeof(leaf_fragment_));
   mem_initial_ = GOOGLE_LONGLONG(20000000);
   mem_max_ = GOOGLE_LONGLONG(2000000000);
-  credentials_ = NULL;
-  options_json_ = const_cast< ::std::string*>(&::google::protobuf::internal::kEmptyString);
-  context_ = NULL;
-  ::memset(_has_bits_, 0, sizeof(_has_bits_));
 }
 
 PlanFragment::~PlanFragment() {
+  // @@protoc_insertion_point(destructor:exec.bit.control.PlanFragment)
   SharedDtor();
 }
 
 void PlanFragment::SharedDtor() {
-  if (fragment_json_ != &::google::protobuf::internal::kEmptyString) {
-    delete fragment_json_;
-  }
-  if (options_json_ != &::google::protobuf::internal::kEmptyString) {
-    delete options_json_;
-  }
-  if (this != default_instance_) {
-    delete handle_;
-    delete assignment_;
-    delete foreman_;
-    delete credentials_;
-    delete context_;
-  }
+  fragment_json_.DestroyNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
+  options_json_.DestroyNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
+  if (this != internal_default_instance()) delete handle_;
+  if (this != internal_default_instance()) delete assignment_;
+  if (this != internal_default_instance()) delete foreman_;
+  if (this != internal_default_instance()) delete credentials_;
+  if (this != internal_default_instance()) delete context_;
 }
 
 void PlanFragment::SetCachedSize(int size) const {
-  GOOGLE_SAFE_CONCURRENT_WRITES_BEGIN();
-  _cached_size_ = size;
-  GOOGLE_SAFE_CONCURRENT_WRITES_END();
+  _cached_size_.Set(size);
 }
 const ::google::protobuf::Descriptor* PlanFragment::descriptor() {
-  protobuf_AssignDescriptorsOnce();
-  return PlanFragment_descriptor_;
+  ::protobuf_BitControl_2eproto::protobuf_AssignDescriptorsOnce();
+  return ::protobuf_BitControl_2eproto::file_level_metadata[kIndexInFileMessages].descriptor;
 }
 
 const PlanFragment& PlanFragment::default_instance() {
-  if (default_instance_ == NULL) protobuf_AddDesc_BitControl_2eproto();
-  return *default_instance_;
+  ::google::protobuf::internal::InitSCC(&protobuf_BitControl_2eproto::scc_info_PlanFragment.base);
+  return *internal_default_instance();
 }
 
-PlanFragment* PlanFragment::default_instance_ = NULL;
-
-PlanFragment* PlanFragment::New() const {
-  return new PlanFragment;
-}
 
 void PlanFragment::Clear() {
-  if (_has_bits_[0 / 32] & (0xffu << (0 % 32))) {
-    if (has_handle()) {
-      if (handle_ != NULL) handle_->::exec::bit::FragmentHandle::Clear();
+// @@protoc_insertion_point(message_clear_start:exec.bit.control.PlanFragment)
+  ::google::protobuf::uint32 cached_has_bits = 0;
+  // Prevent compiler warnings about cached_has_bits being unused
+  (void) cached_has_bits;
+
+  collector_.Clear();
+  cached_has_bits = _has_bits_[0];
+  if (cached_has_bits & 127u) {
+    if (cached_has_bits & 0x00000001u) {
+      fragment_json_.ClearNonDefaultToEmptyNoArena();
     }
-    network_cost_ = 0;
-    cpu_cost_ = 0;
-    disk_cost_ = 0;
-    memory_cost_ = 0;
-    if (has_fragment_json()) {
-      if (fragment_json_ != &::google::protobuf::internal::kEmptyString) {
-        fragment_json_->clear();
-      }
+    if (cached_has_bits & 0x00000002u) {
+      options_json_.ClearNonDefaultToEmptyNoArena();
     }
-    leaf_fragment_ = false;
-    if (has_assignment()) {
-      if (assignment_ != NULL) assignment_->::exec::DrillbitEndpoint::Clear();
+    if (cached_has_bits & 0x00000004u) {
+      GOOGLE_DCHECK(handle_ != NULL);
+      handle_->Clear();
     }
-  }
-  if (_has_bits_[8 / 32] & (0xffu << (8 % 32))) {
-    if (has_foreman()) {
-      if (foreman_ != NULL) foreman_->::exec::DrillbitEndpoint::Clear();
+    if (cached_has_bits & 0x00000008u) {
+      GOOGLE_DCHECK(assignment_ != NULL);
+      assignment_->Clear();
     }
-    mem_initial_ = GOOGLE_LONGLONG(20000000);
-    mem_max_ = GOOGLE_LONGLONG(2000000000);
-    if (has_credentials()) {
-      if (credentials_ != NULL) credentials_->::exec::shared::UserCredentials::Clear();
+    if (cached_has_bits & 0x00000010u) {
+      GOOGLE_DCHECK(foreman_ != NULL);
+      foreman_->Clear();
     }
-    if (has_options_json()) {
-      if (options_json_ != &::google::protobuf::internal::kEmptyString) {
-        options_json_->clear();
-      }
+    if (cached_has_bits & 0x00000020u) {
+      GOOGLE_DCHECK(credentials_ != NULL);
+      credentials_->Clear();
     }
-    if (has_context()) {
-      if (context_ != NULL) context_->::exec::bit::control::QueryContextInformation::Clear();
+    if (cached_has_bits & 0x00000040u) {
+      GOOGLE_DCHECK(context_ != NULL);
+      context_->Clear();
     }
   }
-  collector_.Clear();
-  ::memset(_has_bits_, 0, sizeof(_has_bits_));
-  mutable_unknown_fields()->Clear();
+  network_cost_ = 0;
+  if (cached_has_bits & 16128u) {
+    ::memset(&cpu_cost_, 0, static_cast<size_t>(
+        reinterpret_cast<char*>(&leaf_fragment_) -
+        reinterpret_cast<char*>(&cpu_cost_)) + sizeof(leaf_fragment_));
+    mem_initial_ = GOOGLE_LONGLONG(20000000);
+    mem_max_ = GOOGLE_LONGLONG(2000000000);
+  }
+  _has_bits_.Clear();
+  _internal_metadata_.Clear();
 }
 
 bool PlanFragment::MergePartialFromCodedStream(
     ::google::protobuf::io::CodedInputStream* input) {
-#define DO_(EXPRESSION) if (!(EXPRESSION)) return false
+#define DO_(EXPRESSION) if (!GOOGLE_PREDICT_TRUE(EXPRESSION)) goto failure
   ::google::protobuf::uint32 tag;
-  while ((tag = input->ReadTag()) != 0) {
+  // @@protoc_insertion_point(parse_start:exec.bit.control.PlanFragment)
+  for (;;) {
+    ::std::pair<::google::protobuf::uint32, bool> p = input->ReadTagWithCutoffNoLastTag(16383u);
+    tag = p.first;
+    if (!p.second) goto handle_unusual;
     switch (::google::protobuf::internal::WireFormatLite::GetTagFieldNumber(tag)) {
       // optional .exec.bit.FragmentHandle handle = 1;
       case 1: {
-        if (::google::protobuf::internal::WireFormatLite::GetTagWireType(tag) ==
-            ::google::protobuf::internal::WireFormatLite::WIRETYPE_LENGTH_DELIMITED) {
-          DO_(::google::protobuf::internal::WireFormatLite::ReadMessageNoVirtual(
+        if (static_cast< ::google::protobuf::uint8>(tag) ==
+            static_cast< ::google::protobuf::uint8>(10u /* 10 & 0xFF */)) {
+          DO_(::google::protobuf::internal::WireFormatLite::ReadMessage(
                input, mutable_handle()));
         } else {
-          goto handle_uninterpreted;
+          goto handle_unusual;
         }
-        if (input->ExpectTag(37)) goto parse_network_cost;
         break;
       }
 
       // optional float network_cost = 4;
       case 4: {
-        if (::google::protobuf::internal::WireFormatLite::GetTagWireType(tag) ==
-            ::google::protobuf::internal::WireFormatLite::WIRETYPE_FIXED32) {
-         parse_network_cost:
+        if (static_cast< ::google::protobuf::uint8>(tag) ==
+            static_cast< ::google::protobuf::uint8>(37u /* 37 & 0xFF */)) {
+          set_has_network_cost();
           DO_((::google::protobuf::internal::WireFormatLite::ReadPrimitive<
                    float, ::google::protobuf::internal::WireFormatLite::TYPE_FLOAT>(
                  input, &network_cost_)));
-          set_has_network_cost();
         } else {
-          goto handle_uninterpreted;
+          goto handle_unusual;
         }
-        if (input->ExpectTag(45)) goto parse_cpu_cost;
         break;
       }
 
       // optional float cpu_cost = 5;
       case 5: {
-        if (::google::protobuf::internal::WireFormatLite::GetTagWireType(tag) ==
-            ::google::protobuf::internal::WireFormatLite::WIRETYPE_FIXED32) {
-         parse_cpu_cost:
+        if (static_cast< ::google::protobuf::uint8>(tag) ==
+            static_cast< ::google::protobuf::uint8>(45u /* 45 & 0xFF */)) {
+          set_has_cpu_cost();
           DO_((::google::protobuf::internal::WireFormatLite::ReadPrimitive<
                    float, ::google::protobuf::internal::WireFormatLite::TYPE_FLOAT>(
                  input, &cpu_cost_)));
-          set_has_cpu_cost();
         } else {
-          goto handle_uninterpreted;
+          goto handle_unusual;
         }
-        if (input->ExpectTag(53)) goto parse_disk_cost;
         break;
       }
 
       // optional float disk_cost = 6;
       case 6: {
-        if (::google::protobuf::internal::WireFormatLite::GetTagWireType(tag) ==
-            ::google::protobuf::internal::WireFormatLite::WIRETYPE_FIXED32) {
-         parse_disk_cost:
+        if (static_cast< ::google::protobuf::uint8>(tag) ==
+            static_cast< ::google::protobuf::uint8>(53u /* 53 & 0xFF */)) {
+          set_has_disk_cost();
           DO_((::google::protobuf::internal::WireFormatLite::ReadPrimitive<
                    float, ::google::protobuf::internal::WireFormatLite::TYPE_FLOAT>(
                  input, &disk_cost_)));
-          set_has_disk_cost();
         } else {
-          goto handle_uninterpreted;
+          goto handle_unusual;
         }
-        if (input->ExpectTag(61)) goto parse_memory_cost;
         break;
       }
 
       // optional float memory_cost = 7;
       case 7: {
-        if (::google::protobuf::internal::WireFormatLite::GetTagWireType(tag) ==
-            ::google::protobuf::internal::WireFormatLite::WIRETYPE_FIXED32) {
-         parse_memory_cost:
+        if (static_cast< ::google::protobuf::uint8>(tag) ==
+            static_cast< ::google::protobuf::uint8>(61u /* 61 & 0xFF */)) {
+          set_has_memory_cost();
           DO_((::google::protobuf::internal::WireFormatLite::ReadPrimitive<
                    float, ::google::protobuf::internal::WireFormatLite::TYPE_FLOAT>(
                  input, &memory_cost_)));
-          set_has_memory_cost();
         } else {
-          goto handle_uninterpreted;
+          goto handle_unusual;
         }
-        if (input->ExpectTag(66)) goto parse_fragment_json;
         break;
       }
 
       // optional string fragment_json = 8;
       case 8: {
-        if (::google::protobuf::internal::WireFormatLite::GetTagWireType(tag) ==
-            ::google::protobuf::internal::WireFormatLite::WIRETYPE_LENGTH_DELIMITED) {
-         parse_fragment_json:
+        if (static_cast< ::google::protobuf::uint8>(tag) ==
+            static_cast< ::google::protobuf::uint8>(66u /* 66 & 0xFF */)) {
           DO_(::google::protobuf::internal::WireFormatLite::ReadString(
                 input, this->mutable_fragment_json()));
-          ::google::protobuf::internal::WireFormat::VerifyUTF8String(
-            this->fragment_json().data(), this->fragment_json().length(),
-            ::google::protobuf::internal::WireFormat::PARSE);
+          ::google::protobuf::internal::WireFormat::VerifyUTF8StringNamedField(
+            this->fragment_json().data(), static_cast<int>(this->fragment_json().length()),
+            ::google::protobuf::internal::WireFormat::PARSE,
+            "exec.bit.control.PlanFragment.fragment_json");
         } else {
-          goto handle_uninterpreted;
+          goto handle_unusual;
         }
-        if (input->ExpectTag(72)) goto parse_leaf_fragment;
         break;
       }
 
       // optional bool leaf_fragment = 9;
       case 9: {
-        if (::google::protobuf::internal::WireFormatLite::GetTagWireType(tag) ==
-            ::google::protobuf::internal::WireFormatLite::WIRETYPE_VARINT) {
-         parse_leaf_fragment:
+        if (static_cast< ::google::protobuf::uint8>(tag) ==
+            static_cast< ::google::protobuf::uint8>(72u /* 72 & 0xFF */)) {
+          set_has_leaf_fragment();
           DO_((::google::protobuf::internal::WireFormatLite::ReadPrimitive<
                    bool, ::google::protobuf::internal::WireFormatLite::TYPE_BOOL>(
                  input, &leaf_fragment_)));
-          set_has_leaf_fragment();
         } else {
-          goto handle_uninterpreted;
+          goto handle_unusual;
         }
-        if (input->ExpectTag(82)) goto parse_assignment;
         break;
       }
 
       // optional .exec.DrillbitEndpoint assignment = 10;
       case 10: {
-        if (::google::protobuf::internal::WireFormatLite::GetTagWireType(tag) ==
-            ::google::protobuf::internal::WireFormatLite::WIRETYPE_LENGTH_DELIMITED) {
-         parse_assignment:
-          DO_(::google::protobuf::internal::WireFormatLite::ReadMessageNoVirtual(
+        if (static_cast< ::google::protobuf::uint8>(tag) ==
+            static_cast< ::google::protobuf::uint8>(82u /* 82 & 0xFF */)) {
+          DO_(::google::protobuf::internal::WireFormatLite::ReadMessage(
                input, mutable_assignment()));
         } else {
-          goto handle_uninterpreted;
+          goto handle_unusual;
         }
-        if (input->ExpectTag(90)) goto parse_foreman;
         break;
       }
 
       // optional .exec.DrillbitEndpoint foreman = 11;
       case 11: {
-        if (::google::protobuf::internal::WireFormatLite::GetTagWireType(tag) ==
-            ::google::protobuf::internal::WireFormatLite::WIRETYPE_LENGTH_DELIMITED) {
-         parse_foreman:
-          DO_(::google::protobuf::internal::WireFormatLite::ReadMessageNoVirtual(
+        if (static_cast< ::google::protobuf::uint8>(tag) ==
+            static_cast< ::google::protobuf::uint8>(90u /* 90 & 0xFF */)) {
+          DO_(::google::protobuf::internal::WireFormatLite::ReadMessage(
                input, mutable_foreman()));
         } else {
-          goto handle_uninterpreted;
+          goto handle_unusual;
         }
-        if (input->ExpectTag(96)) goto parse_mem_initial;
         break;
       }
 
       // optional int64 mem_initial = 12 [default = 20000000];
       case 12: {
-        if (::google::protobuf::internal::WireFormatLite::GetTagWireType(tag) ==
-            ::google::protobuf::internal::WireFormatLite::WIRETYPE_VARINT) {
-         parse_mem_initial:
+        if (static_cast< ::google::protobuf::uint8>(tag) ==
+            static_cast< ::google::protobuf::uint8>(96u /* 96 & 0xFF */)) {
+          set_has_mem_initial();
           DO_((::google::protobuf::internal::WireFormatLite::ReadPrimitive<
                    ::google::protobuf::int64, ::google::protobuf::internal::WireFormatLite::TYPE_INT64>(
                  input, &mem_initial_)));
-          set_has_mem_initial();
         } else {
-          goto handle_uninterpreted;
+          goto handle_unusual;
         }
-        if (input->ExpectTag(104)) goto parse_mem_max;
         break;
       }
 
       // optional int64 mem_max = 13 [default = 2000000000];
       case 13: {
-        if (::google::protobuf::internal::WireFormatLite::GetTagWireType(tag) ==
-            ::google::protobuf::internal::WireFormatLite::WIRETYPE_VARINT) {
-         parse_mem_max:
+        if (static_cast< ::google::protobuf::uint8>(tag) ==
+            static_cast< ::google::protobuf::uint8>(104u /* 104 & 0xFF */)) {
+          set_has_mem_max();
           DO_((::google::protobuf::internal::WireFormatLite::ReadPrimitive<
                    ::google::protobuf::int64, ::google::protobuf::internal::WireFormatLite::TYPE_INT64>(
                  input, &mem_max_)));
-          set_has_mem_max();
         } else {
-          goto handle_uninterpreted;
+          goto handle_unusual;
         }
-        if (input->ExpectTag(114)) goto parse_credentials;
         break;
       }
 
       // optional .exec.shared.UserCredentials credentials = 14;
       case 14: {
-        if (::google::protobuf::internal::WireFormatLite::GetTagWireType(tag) ==
-            ::google::protobuf::internal::WireFormatLite::WIRETYPE_LENGTH_DELIMITED) {
-         parse_credentials:
-          DO_(::google::protobuf::internal::WireFormatLite::ReadMessageNoVirtual(
+        if (static_cast< ::google::protobuf::uint8>(tag) ==
+            static_cast< ::google::protobuf::uint8>(114u /* 114 & 0xFF */)) {
+          DO_(::google::protobuf::internal::WireFormatLite::ReadMessage(
                input, mutable_credentials()));
         } else {
-          goto handle_uninterpreted;
+          goto handle_unusual;
         }
-        if (input->ExpectTag(122)) goto parse_options_json;
         break;
       }
 
       // optional string options_json = 15;
       case 15: {
-        if (::google::protobuf::internal::WireFormatLite::GetTagWireType(tag) ==
-            ::google::protobuf::internal::WireFormatLite::WIRETYPE_LENGTH_DELIMITED) {
-         parse_options_json:
+        if (static_cast< ::google::protobuf::uint8>(tag) ==
+            static_cast< ::google::protobuf::uint8>(122u /* 122 & 0xFF */)) {
           DO_(::google::protobuf::internal::WireFormatLite::ReadString(
                 input, this->mutable_options_json()));
-          ::google::protobuf::internal::WireFormat::VerifyUTF8String(
-            this->options_json().data(), this->options_json().length(),
-            ::google::protobuf::internal::WireFormat::PARSE);
+          ::google::protobuf::internal::WireFormat::VerifyUTF8StringNamedField(
+            this->options_json().data(), static_cast<int>(this->options_json().length()),
+            ::google::protobuf::internal::WireFormat::PARSE,
+            "exec.bit.control.PlanFragment.options_json");
         } else {
-          goto handle_uninterpreted;
+          goto handle_unusual;
         }
-        if (input->ExpectTag(130)) goto parse_context;
         break;
       }
 
       // optional .exec.bit.control.QueryContextInformation context = 16;
       case 16: {
-        if (::google::protobuf::internal::WireFormatLite::GetTagWireType(tag) ==
-            ::google::protobuf::internal::WireFormatLite::WIRETYPE_LENGTH_DELIMITED) {
-         parse_context:
-          DO_(::google::protobuf::internal::WireFormatLite::ReadMessageNoVirtual(
+        if (static_cast< ::google::protobuf::uint8>(tag) ==
+            static_cast< ::google::protobuf::uint8>(130u /* 130 & 0xFF */)) {
+          DO_(::google::protobuf::internal::WireFormatLite::ReadMessage(
                input, mutable_context()));
         } else {
-          goto handle_uninterpreted;
+          goto handle_unusual;
         }
-        if (input->ExpectTag(138)) goto parse_collector;
         break;
       }
 
       // repeated .exec.bit.control.Collector collector = 17;
       case 17: {
-        if (::google::protobuf::internal::WireFormatLite::GetTagWireType(tag) ==
-            ::google::protobuf::internal::WireFormatLite::WIRETYPE_LENGTH_DELIMITED) {
-         parse_collector:
-          DO_(::google::protobuf::internal::WireFormatLite::ReadMessageNoVirtual(
+        if (static_cast< ::google::protobuf::uint8>(tag) ==
+            static_cast< ::google::protobuf::uint8>(138u /* 138 & 0xFF */)) {
+          DO_(::google::protobuf::internal::WireFormatLite::ReadMessage(
                 input, add_collector()));
         } else {
-          goto handle_uninterpreted;
+          goto handle_unusual;
         }
-        if (input->ExpectTag(138)) goto parse_collector;
-        if (input->ExpectAtEnd()) return true;
         break;
       }
 
       default: {
-      handle_uninterpreted:
-        if (::google::protobuf::internal::WireFormatLite::GetTagWireType(tag) ==
-            ::google::protobuf::internal::WireFormatLite::WIRETYPE_END_GROUP) {
-          return true;
+      handle_unusual:
+        if (tag == 0) {
+          goto success;
         }
         DO_(::google::protobuf::internal::WireFormat::SkipField(
-              input, tag, mutable_unknown_fields()));
+              input, tag, _internal_metadata_.mutable_unknown_fields()));
         break;
       }
     }
   }
+success:
+  // @@protoc_insertion_point(parse_success:exec.bit.control.PlanFragment)
   return true;
+failure:
+  // @@protoc_insertion_point(parse_failure:exec.bit.control.PlanFragment)
+  return false;
 #undef DO_
 }
 
 void PlanFragment::SerializeWithCachedSizes(
     ::google::protobuf::io::CodedOutputStream* output) const {
+  // @@protoc_insertion_point(serialize_start:exec.bit.control.PlanFragment)
+  ::google::protobuf::uint32 cached_has_bits = 0;
+  (void) cached_has_bits;
+
+  cached_has_bits = _has_bits_[0];
   // optional .exec.bit.FragmentHandle handle = 1;
-  if (has_handle()) {
+  if (cached_has_bits & 0x00000004u) {
     ::google::protobuf::internal::WireFormatLite::WriteMessageMaybeToArray(
-      1, this->handle(), output);
+      1, this->_internal_handle(), output);
   }
 
   // optional float network_cost = 4;
-  if (has_network_cost()) {
+  if (cached_has_bits & 0x00000080u) {
     ::google::protobuf::internal::WireFormatLite::WriteFloat(4, this->network_cost(), output);
   }
 
   // optional float cpu_cost = 5;
-  if (has_cpu_cost()) {
+  if (cached_has_bits & 0x00000100u) {
     ::google::protobuf::internal::WireFormatLite::WriteFloat(5, this->cpu_cost(), output);
   }
 
   // optional float disk_cost = 6;
-  if (has_disk_cost()) {
+  if (cached_has_bits & 0x00000200u) {
     ::google::protobuf::internal::WireFormatLite::WriteFloat(6, this->disk_cost(), output);
   }
 
   // optional float memory_cost = 7;
-  if (has_memory_cost()) {
+  if (cached_has_bits & 0x00000400u) {
     ::google::protobuf::internal::WireFormatLite::WriteFloat(7, this->memory_cost(), output);
   }
 
   // optional string fragment_json = 8;
-  if (has_fragment_json()) {
-    ::google::protobuf::internal::WireFormat::VerifyUTF8String(
-      this->fragment_json().data(), this->fragment_json().length(),
-      ::google::protobuf::internal::WireFormat::SERIALIZE);
-    ::google::protobuf::internal::WireFormatLite::WriteString(
+  if (cached_has_bits & 0x00000001u) {
+    ::google::protobuf::internal::WireFormat::VerifyUTF8StringNamedField(
+      this->fragment_json().data(), static_cast<int>(this->fragment_json().length()),
+      ::google::protobuf::internal::WireFormat::SERIALIZE,
+      "exec.bit.control.PlanFragment.fragment_json");
+    ::google::protobuf::internal::WireFormatLite::WriteStringMaybeAliased(
       8, this->fragment_json(), output);
   }
 
   // optional bool leaf_fragment = 9;
-  if (has_leaf_fragment()) {
+  if (cached_has_bits & 0x00000800u) {
     ::google::protobuf::internal::WireFormatLite::WriteBool(9, this->leaf_fragment(), output);
   }
 
   // optional .exec.DrillbitEndpoint assignment = 10;
-  if (has_assignment()) {
+  if (cached_has_bits & 0x00000008u) {
     ::google::protobuf::internal::WireFormatLite::WriteMessageMaybeToArray(
-      10, this->assignment(), output);
+      10, this->_internal_assignment(), output);
   }
 
   // optional .exec.DrillbitEndpoint foreman = 11;
-  if (has_foreman()) {
+  if (cached_has_bits & 0x00000010u) {
     ::google::protobuf::internal::WireFormatLite::WriteMessageMaybeToArray(
-      11, this->foreman(), output);
+      11, this->_internal_foreman(), output);
   }
 
   // optional int64 mem_initial = 12 [default = 20000000];
-  if (has_mem_initial()) {
+  if (cached_has_bits & 0x00001000u) {
     ::google::protobuf::internal::WireFormatLite::WriteInt64(12, this->mem_initial(), output);
   }
 
   // optional int64 mem_max = 13 [default = 2000000000];
-  if (has_mem_max()) {
+  if (cached_has_bits & 0x00002000u) {
     ::google::protobuf::internal::WireFormatLite::WriteInt64(13, this->mem_max(), output);
   }
 
   // optional .exec.shared.UserCredentials credentials = 14;
-  if (has_credentials()) {
+  if (cached_has_bits & 0x00000020u) {
     ::google::protobuf::internal::WireFormatLite::WriteMessageMaybeToArray(
-      14, this->credentials(), output);
+      14, this->_internal_credentials(), output);
   }
 
   // optional string options_json = 15;
-  if (has_options_json()) {
-    ::google::protobuf::internal::WireFormat::VerifyUTF8String(
-      this->options_json().data(), this->options_json().length(),
-      ::google::protobuf::internal::WireFormat::SERIALIZE);
-    ::google::protobuf::internal::WireFormatLite::WriteString(
+  if (cached_has_bits & 0x00000002u) {
+    ::google::protobuf::internal::WireFormat::VerifyUTF8StringNamedField(
+      this->options_json().data(), static_cast<int>(this->options_json().length()),
+      ::google::protobuf::internal::WireFormat::SERIALIZE,
+      "exec.bit.control.PlanFragment.options_json");
+    ::google::protobuf::internal::WireFormatLite::WriteStringMaybeAliased(
       15, this->options_json(), output);
   }
 
   // optional .exec.bit.control.QueryContextInformation context = 16;
-  if (has_context()) {
+  if (cached_has_bits & 0x00000040u) {
     ::google::protobuf::internal::WireFormatLite::WriteMessageMaybeToArray(
-      16, this->context(), output);
+      16, this->_internal_context(), output);
   }
 
   // repeated .exec.bit.control.Collector collector = 17;
-  for (int i = 0; i < this->collector_size(); i++) {
+  for (unsigned int i = 0,
+      n = static_cast<unsigned int>(this->collector_size()); i < n; i++) {
     ::google::protobuf::internal::WireFormatLite::WriteMessageMaybeToArray(
-      17, this->collector(i), output);
+      17,
+      this->collector(static_cast<int>(i)),
+      output);
   }
 
-  if (!unknown_fields().empty()) {
+  if (_internal_metadata_.have_unknown_fields()) {
     ::google::protobuf::internal::WireFormat::SerializeUnknownFields(
-        unknown_fields(), output);
+        _internal_metadata_.unknown_fields(), output);
   }
+  // @@protoc_insertion_point(serialize_end:exec.bit.control.PlanFragment)
 }
 
-::google::protobuf::uint8* PlanFragment::SerializeWithCachedSizesToArray(
-    ::google::protobuf::uint8* target) const {
+::google::protobuf::uint8* PlanFragment::InternalSerializeWithCachedSizesToArray(
+    bool deterministic, ::google::protobuf::uint8* target) const {
+  (void)deterministic; // Unused
+  // @@protoc_insertion_point(serialize_to_array_start:exec.bit.control.PlanFragment)
+  ::google::protobuf::uint32 cached_has_bits = 0;
+  (void) cached_has_bits;
+
+  cached_has_bits = _has_bits_[0];
   // optional .exec.bit.FragmentHandle handle = 1;
-  if (has_handle()) {
+  if (cached_has_bits & 0x00000004u) {
     target = ::google::protobuf::internal::WireFormatLite::
-      WriteMessageNoVirtualToArray(
-        1, this->handle(), target);
+      InternalWriteMessageToArray(
+        1, this->_internal_handle(), deterministic, target);
   }
 
   // optional float network_cost = 4;
-  if (has_network_cost()) {
+  if (cached_has_bits & 0x00000080u) {
     target = ::google::protobuf::internal::WireFormatLite::WriteFloatToArray(4, this->network_cost(), target);
   }
 
   // optional float cpu_cost = 5;
-  if (has_cpu_cost()) {
+  if (cached_has_bits & 0x00000100u) {
     target = ::google::protobuf::internal::WireFormatLite::WriteFloatToArray(5, this->cpu_cost(), target);
   }
 
   // optional float disk_cost = 6;
-  if (has_disk_cost()) {
+  if (cached_has_bits & 0x00000200u) {
     target = ::google::protobuf::internal::WireFormatLite::WriteFloatToArray(6, this->disk_cost(), target);
   }
 
   // optional float memory_cost = 7;
-  if (has_memory_cost()) {
+  if (cached_has_bits & 0x00000400u) {
     target = ::google::protobuf::internal::WireFormatLite::WriteFloatToArray(7, this->memory_cost(), target);
   }
 
   // optional string fragment_json = 8;
-  if (has_fragment_json()) {
-    ::google::protobuf::internal::WireFormat::VerifyUTF8String(
-      this->fragment_json().data(), this->fragment_json().length(),
-      ::google::protobuf::internal::WireFormat::SERIALIZE);
+  if (cached_has_bits & 0x00000001u) {
+    ::google::protobuf::internal::WireFormat::VerifyUTF8StringNamedField(
+      this->fragment_json().data(), static_cast<int>(this->fragment_json().length()),
+      ::google::protobuf::internal::WireFormat::SERIALIZE,
+      "exec.bit.control.PlanFragment.fragment_json");
     target =
       ::google::protobuf::internal::WireFormatLite::WriteStringToArray(
         8, this->fragment_json(), target);
   }
 
   // optional bool leaf_fragment = 9;
-  if (has_leaf_fragment()) {
+  if (cached_has_bits & 0x00000800u) {
     target = ::google::protobuf::internal::WireFormatLite::WriteBoolToArray(9, this->leaf_fragment(), target);
   }
 
   // optional .exec.DrillbitEndpoint assignment = 10;
-  if (has_assignment()) {
+  if (cached_has_bits & 0x00000008u) {
     target = ::google::protobuf::internal::WireFormatLite::
-      WriteMessageNoVirtualToArray(
-        10, this->assignment(), target);
+      InternalWriteMessageToArray(
+        10, this->_internal_assignment(), deterministic, target);
   }
 
   // optional .exec.DrillbitEndpoint foreman = 11;
-  if (has_foreman()) {
+  if (cached_has_bits & 0x00000010u) {
     target = ::google::protobuf::internal::WireFormatLite::
-      WriteMessageNoVirtualToArray(
-        11, this->foreman(), target);
+      InternalWriteMessageToArray(
+        11, this->_internal_foreman(), deterministic, target);
   }
 
   // optional int64 mem_initial = 12 [default = 20000000];
-  if (has_mem_initial()) {
+  if (cached_has_bits & 0x00001000u) {
     target = ::google::protobuf::internal::WireFormatLite::WriteInt64ToArray(12, this->mem_initial(), target);
   }
 
   // optional int64 mem_max = 13 [default = 2000000000];
-  if (has_mem_max()) {
+  if (cached_has_bits & 0x00002000u) {
     target = ::google::protobuf::internal::WireFormatLite::WriteInt64ToArray(13, this->mem_max(), target);
   }
 
   // optional .exec.shared.UserCredentials credentials = 14;
-  if (has_credentials()) {
+  if (cached_has_bits & 0x00000020u) {
     target = ::google::protobuf::internal::WireFormatLite::
-      WriteMessageNoVirtualToArray(
-        14, this->credentials(), target);
+      InternalWriteMessageToArray(
+        14, this->_internal_credentials(), deterministic, target);
   }
 
   // optional string options_json = 15;
-  if (has_options_json()) {
-    ::google::protobuf::internal::WireFormat::VerifyUTF8String(
-      this->options_json().data(), this->options_json().length(),
-      ::google::protobuf::internal::WireFormat::SERIALIZE);
+  if (cached_has_bits & 0x00000002u) {
+    ::google::protobuf::internal::WireFormat::VerifyUTF8StringNamedField(
+      this->options_json().data(), static_cast<int>(this->options_json().length()),
+      ::google::protobuf::internal::WireFormat::SERIALIZE,
+      "exec.bit.control.PlanFragment.options_json");
     target =
       ::google::protobuf::internal::WireFormatLite::WriteStringToArray(
         15, this->options_json(), target);
   }
 
   // optional .exec.bit.control.QueryContextInformation context = 16;
-  if (has_context()) {
+  if (cached_has_bits & 0x00000040u) {
     target = ::google::protobuf::internal::WireFormatLite::
-      WriteMessageNoVirtualToArray(
-        16, this->context(), target);
+      InternalWriteMessageToArray(
+        16, this->_internal_context(), deterministic, target);
   }
 
   // repeated .exec.bit.control.Collector collector = 17;
-  for (int i = 0; i < this->collector_size(); i++) {
+  for (unsigned int i = 0,
+      n = static_cast<unsigned int>(this->collector_size()); i < n; i++) {
     target = ::google::protobuf::internal::WireFormatLite::
-      WriteMessageNoVirtualToArray(
-        17, this->collector(i), target);
+      InternalWriteMessageToArray(
+        17, this->collector(static_cast<int>(i)), deterministic, target);
   }
 
-  if (!unknown_fields().empty()) {
+  if (_internal_metadata_.have_unknown_fields()) {
     target = ::google::protobuf::internal::WireFormat::SerializeUnknownFieldsToArray(
-        unknown_fields(), target);
+        _internal_metadata_.unknown_fields(), target);
   }
+  // @@protoc_insertion_point(serialize_to_array_end:exec.bit.control.PlanFragment)
   return target;
 }
 
-int PlanFragment::ByteSize() const {
-  int total_size = 0;
+size_t PlanFragment::ByteSizeLong() const {
+// @@protoc_insertion_point(message_byte_size_start:exec.bit.control.PlanFragment)
+  size_t total_size = 0;
+
+  if (_internal_metadata_.have_unknown_fields()) {
+    total_size +=
+      ::google::protobuf::internal::WireFormat::ComputeUnknownFieldsSize(
+        _internal_metadata_.unknown_fields());
+  }
+  // repeated .exec.bit.control.Collector collector = 17;
+  {
+    unsigned int count = static_cast<unsigned int>(this->collector_size());
+    total_size += 2UL * count;
+    for (unsigned int i = 0; i < count; i++) {
+      total_size +=
+        ::google::protobuf::internal::WireFormatLite::MessageSize(
+          this->collector(static_cast<int>(i)));
+    }
+  }
+
+  if (_has_bits_[0 / 32] & 255u) {
+    // optional string fragment_json = 8;
+    if (has_fragment_json()) {
+      total_size += 1 +
+        ::google::protobuf::internal::WireFormatLite::StringSize(
+          this->fragment_json());
+    }
+
+    // optional string options_json = 15;
+    if (has_options_json()) {
+      total_size += 1 +
+        ::google::protobuf::internal::WireFormatLite::StringSize(
+          this->options_json());
+    }
 
-  if (_has_bits_[0 / 32] & (0xffu << (0 % 32))) {
     // optional .exec.bit.FragmentHandle handle = 1;
     if (has_handle()) {
       total_size += 1 +
-        ::google::protobuf::internal::WireFormatLite::MessageSizeNoVirtual(
-          this->handle());
+        ::google::protobuf::internal::WireFormatLite::MessageSize(
+          *handle_);
+    }
+
+    // optional .exec.DrillbitEndpoint assignment = 10;
+    if (has_assignment()) {
+      total_size += 1 +
+        ::google::protobuf::internal::WireFormatLite::MessageSize(
+          *assignment_);
+    }
+
+    // optional .exec.DrillbitEndpoint foreman = 11;
+    if (has_foreman()) {
+      total_size += 1 +
+        ::google::protobuf::internal::WireFormatLite::MessageSize(
+          *foreman_);
+    }
+
+    // optional .exec.shared.UserCredentials credentials = 14;
+    if (has_credentials()) {
+      total_size += 1 +
+        ::google::protobuf::internal::WireFormatLite::MessageSize(
+          *credentials_);
+    }
+
+    // optional .exec.bit.control.QueryContextInformation context = 16;
+    if (has_context()) {
+      total_size += 2 +
+        ::google::protobuf::internal::WireFormatLite::MessageSize(
+          *context_);
     }
 
     // optional float network_cost = 4;
@@ -2302,6 +2700,8 @@ int PlanFragment::ByteSize() const {
       total_size += 1 + 4;
     }
 
+  }
+  if (_has_bits_[8 / 32] & 16128u) {
     // optional float cpu_cost = 5;
     if (has_cpu_cost()) {
       total_size += 1 + 4;
@@ -2317,32 +2717,9 @@ int PlanFragment::ByteSize() const {
       total_size += 1 + 4;
     }
 
-    // optional string fragment_json = 8;
-    if (has_fragment_json()) {
-      total_size += 1 +
-        ::google::protobuf::internal::WireFormatLite::StringSize(
-          this->fragment_json());
-    }
-
     // optional bool leaf_fragment = 9;
-    if (has_leaf_fragment()) {
-      total_size += 1 + 1;
-    }
-
-    // optional .exec.DrillbitEndpoint assignment = 10;
-    if (has_assignment()) {
-      total_size += 1 +
-        ::google::protobuf::internal::WireFormatLite::MessageSizeNoVirtual(
-          this->assignment());
-    }
-
-  }
-  if (_has_bits_[8 / 32] & (0xffu << (8 % 32))) {
-    // optional .exec.DrillbitEndpoint foreman = 11;
-    if (has_foreman()) {
-      total_size += 1 +
-        ::google::protobuf::internal::WireFormatLite::MessageSizeNoVirtual(
-          this->foreman());
+    if (has_leaf_fragment()) {
+      total_size += 1 + 1;
     }
 
     // optional int64 mem_initial = 12 [default = 20000000];
@@ -2359,359 +2736,355 @@ int PlanFragment::ByteSize() const {
           this->mem_max());
     }
 
-    // optional .exec.shared.UserCredentials credentials = 14;
-    if (has_credentials()) {
-      total_size += 1 +
-        ::google::protobuf::internal::WireFormatLite::MessageSizeNoVirtual(
-          this->credentials());
-    }
-
-    // optional string options_json = 15;
-    if (has_options_json()) {
-      total_size += 1 +
-        ::google::protobuf::internal::WireFormatLite::StringSize(
-          this->options_json());
-    }
-
-    // optional .exec.bit.control.QueryContextInformation context = 16;
-    if (has_context()) {
-      total_size += 2 +
-        ::google::protobuf::internal::WireFormatLite::MessageSizeNoVirtual(
-          this->context());
-    }
-
-  }
-  // repeated .exec.bit.control.Collector collector = 17;
-  total_size += 2 * this->collector_size();
-  for (int i = 0; i < this->collector_size(); i++) {
-    total_size +=
-      ::google::protobuf::internal::WireFormatLite::MessageSizeNoVirtual(
-        this->collector(i));
-  }
-
-  if (!unknown_fields().empty()) {
-    total_size +=
-      ::google::protobuf::internal::WireFormat::ComputeUnknownFieldsSize(
-        unknown_fields());
   }
-  GOOGLE_SAFE_CONCURRENT_WRITES_BEGIN();
-  _cached_size_ = total_size;
-  GOOGLE_SAFE_CONCURRENT_WRITES_END();
+  int cached_size = ::google::protobuf::internal::ToCachedSize(total_size);
+  SetCachedSize(cached_size);
   return total_size;
 }
 
 void PlanFragment::MergeFrom(const ::google::protobuf::Message& from) {
-  GOOGLE_CHECK_NE(&from, this);
+// @@protoc_insertion_point(generalized_merge_from_start:exec.bit.control.PlanFragment)
+  GOOGLE_DCHECK_NE(&from, this);
   const PlanFragment* source =
-    ::google::protobuf::internal::dynamic_cast_if_available<const PlanFragment*>(
-      &from);
+      ::google::protobuf::internal::DynamicCastToGenerated<const PlanFragment>(
+          &from);
   if (source == NULL) {
+  // @@protoc_insertion_point(generalized_merge_from_cast_fail:exec.bit.control.PlanFragment)
     ::google::protobuf::internal::ReflectionOps::Merge(from, this);
   } else {
+  // @@protoc_insertion_point(generalized_merge_from_cast_success:exec.bit.control.PlanFragment)
     MergeFrom(*source);
   }
 }
 
 void PlanFragment::MergeFrom(const PlanFragment& from) {
-  GOOGLE_CHECK_NE(&from, this);
+// @@protoc_insertion_point(class_specific_merge_from_start:exec.bit.control.PlanFragment)
+  GOOGLE_DCHECK_NE(&from, this);
+  _internal_metadata_.MergeFrom(from._internal_metadata_);
+  ::google::protobuf::uint32 cached_has_bits = 0;
+  (void) cached_has_bits;
+
   collector_.MergeFrom(from.collector_);
-  if (from._has_bits_[0 / 32] & (0xffu << (0 % 32))) {
-    if (from.has_handle()) {
-      mutable_handle()->::exec::bit::FragmentHandle::MergeFrom(from.handle());
+  cached_has_bits = from._has_bits_[0];
+  if (cached_has_bits & 255u) {
+    if (cached_has_bits & 0x00000001u) {
+      set_has_fragment_json();
+      fragment_json_.AssignWithDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), from.fragment_json_);
     }
-    if (from.has_network_cost()) {
-      set_network_cost(from.network_cost());
+    if (cached_has_bits & 0x00000002u) {
+      set_has_options_json();
+      options_json_.AssignWithDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), from.options_json_);
     }
-    if (from.has_cpu_cost()) {
-      set_cpu_cost(from.cpu_cost());
+    if (cached_has_bits & 0x00000004u) {
+      mutable_handle()->::exec::bit::FragmentHandle::MergeFrom(from.handle());
     }
-    if (from.has_disk_cost()) {
-      set_disk_cost(from.disk_cost());
+    if (cached_has_bits & 0x00000008u) {
+      mutable_assignment()->::exec::DrillbitEndpoint::MergeFrom(from.assignment());
     }
-    if (from.has_memory_cost()) {
-      set_memory_cost(from.memory_cost());
+    if (cached_has_bits & 0x00000010u) {
+      mutable_foreman()->::exec::DrillbitEndpoint::MergeFrom(from.foreman());
     }
-    if (from.has_fragment_json()) {
-      set_fragment_json(from.fragment_json());
+    if (cached_has_bits & 0x00000020u) {
+      mutable_credentials()->::exec::shared::UserCredentials::MergeFrom(from.credentials());
     }
-    if (from.has_leaf_fragment()) {
-      set_leaf_fragment(from.leaf_fragment());
+    if (cached_has_bits & 0x00000040u) {
+      mutable_context()->::exec::bit::control::QueryContextInformation::MergeFrom(from.context());
     }
-    if (from.has_assignment()) {
-      mutable_assignment()->::exec::DrillbitEndpoint::MergeFrom(from.assignment());
+    if (cached_has_bits & 0x00000080u) {
+      network_cost_ = from.network_cost_;
     }
+    _has_bits_[0] |= cached_has_bits;
   }
-  if (from._has_bits_[8 / 32] & (0xffu << (8 % 32))) {
-    if (from.has_foreman()) {
-      mutable_foreman()->::exec::DrillbitEndpoint::MergeFrom(from.foreman());
+  if (cached_has_bits & 16128u) {
+    if (cached_has_bits & 0x00000100u) {
+      cpu_cost_ = from.cpu_cost_;
     }
-    if (from.has_mem_initial()) {
-      set_mem_initial(from.mem_initial());
+    if (cached_has_bits & 0x00000200u) {
+      disk_cost_ = from.disk_cost_;
     }
-    if (from.has_mem_max()) {
-      set_mem_max(from.mem_max());
+    if (cached_has_bits & 0x00000400u) {
+      memory_cost_ = from.memory_cost_;
     }
-    if (from.has_credentials()) {
-      mutable_credentials()->::exec::shared::UserCredentials::MergeFrom(from.credentials());
+    if (cached_has_bits & 0x00000800u) {
+      leaf_fragment_ = from.leaf_fragment_;
     }
-    if (from.has_options_json()) {
-      set_options_json(from.options_json());
+    if (cached_has_bits & 0x00001000u) {
+      mem_initial_ = from.mem_initial_;
     }
-    if (from.has_context()) {
-      mutable_context()->::exec::bit::control::QueryContextInformation::MergeFrom(from.context());
+    if (cached_has_bits & 0x00002000u) {
+      mem_max_ = from.mem_max_;
     }
+    _has_bits_[0] |= cached_has_bits;
   }
-  mutable_unknown_fields()->MergeFrom(from.unknown_fields());
 }
 
 void PlanFragment::CopyFrom(const ::google::protobuf::Message& from) {
+// @@protoc_insertion_point(generalized_copy_from_start:exec.bit.control.PlanFragment)
   if (&from == this) return;
   Clear();
   MergeFrom(from);
 }
 
 void PlanFragment::CopyFrom(const PlanFragment& from) {
+// @@protoc_insertion_point(class_specific_copy_from_start:exec.bit.control.PlanFragment)
   if (&from == this) return;
   Clear();
   MergeFrom(from);
 }
 
 bool PlanFragment::IsInitialized() const {
-
   return true;
 }
 
 void PlanFragment::Swap(PlanFragment* other) {
-  if (other != this) {
-    std::swap(handle_, other->handle_);
-    std::swap(network_cost_, other->network_cost_);
-    std::swap(cpu_cost_, other->cpu_cost_);
-    std::swap(disk_cost_, other->disk_cost_);
-    std::swap(memory_cost_, other->memory_cost_);
-    std::swap(fragment_json_, other->fragment_json_);
-    std::swap(leaf_fragment_, other->leaf_fragment_);
-    std::swap(assignment_, other->assignment_);
-    std::swap(foreman_, other->foreman_);
-    std::swap(mem_initial_, other->mem_initial_);
-    std::swap(mem_max_, other->mem_max_);
-    std::swap(credentials_, other->credentials_);
-    std::swap(options_json_, other->options_json_);
-    std::swap(context_, other->context_);
-    collector_.Swap(&other->collector_);
-    std::swap(_has_bits_[0], other->_has_bits_[0]);
-    _unknown_fields_.Swap(&other->_unknown_fields_);
-    std::swap(_cached_size_, other->_cached_size_);
-  }
+  if (other == this) return;
+  InternalSwap(other);
+}
+void PlanFragment::InternalSwap(PlanFragment* other) {
+  using std::swap;
+  CastToBase(&collector_)->InternalSwap(CastToBase(&other->collector_));
+  fragment_json_.Swap(&other->fragment_json_, &::google::protobuf::internal::GetEmptyStringAlreadyInited(),
+    GetArenaNoVirtual());
+  options_json_.Swap(&other->options_json_, &::google::protobuf::internal::GetEmptyStringAlreadyInited(),
+    GetArenaNoVirtual());
+  swap(handle_, other->handle_);
+  swap(assignment_, other->assignment_);
+  swap(foreman_, other->foreman_);
+  swap(credentials_, other->credentials_);
+  swap(context_, other->context_);
+  swap(network_cost_, other->network_cost_);
+  swap(cpu_cost_, other->cpu_cost_);
+  swap(disk_cost_, other->disk_cost_);
+  swap(memory_cost_, other->memory_cost_);
+  swap(leaf_fragment_, other->leaf_fragment_);
+  swap(mem_initial_, other->mem_initial_);
+  swap(mem_max_, other->mem_max_);
+  swap(_has_bits_[0], other->_has_bits_[0]);
+  _internal_metadata_.Swap(&other->_internal_metadata_);
 }
 
 ::google::protobuf::Metadata PlanFragment::GetMetadata() const {
-  protobuf_AssignDescriptorsOnce();
-  ::google::protobuf::Metadata metadata;
-  metadata.descriptor = PlanFragment_descriptor_;
-  metadata.reflection = PlanFragment_reflection_;
-  return metadata;
+  protobuf_BitControl_2eproto::protobuf_AssignDescriptorsOnce();
+  return ::protobuf_BitControl_2eproto::file_level_metadata[kIndexInFileMessages];
 }
 
 
 // ===================================================================
 
-#ifndef _MSC_VER
+void Collector::InitAsDefaultInstance() {
+}
+#if !defined(_MSC_VER) || _MSC_VER >= 1900
 const int Collector::kOppositeMajorFragmentIdFieldNumber;
 const int Collector::kIncomingMinorFragmentFieldNumber;
 const int Collector::kSupportsOutOfOrderFieldNumber;
 const int Collector::kIsSpoolingFieldNumber;
-#endif  // !_MSC_VER
+#endif  // !defined(_MSC_VER) || _MSC_VER >= 1900
 
 Collector::Collector()
-  : ::google::protobuf::Message() {
+  : ::google::protobuf::Message(), _internal_metadata_(NULL) {
+  ::google::protobuf::internal::InitSCC(
+      &protobuf_BitControl_2eproto::scc_info_Collector.base);
   SharedCtor();
+  // @@protoc_insertion_point(constructor:exec.bit.control.Collector)
 }
-
-void Collector::InitAsDefaultInstance() {
-}
-
 Collector::Collector(const Collector& from)
-  : ::google::protobuf::Message() {
-  SharedCtor();
-  MergeFrom(from);
+  : ::google::protobuf::Message(),
+      _internal_metadata_(NULL),
+      _has_bits_(from._has_bits_),
+      incoming_minor_fragment_(from.incoming_minor_fragment_) {
+  _internal_metadata_.MergeFrom(from._internal_metadata_);
+  ::memcpy(&opposite_major_fragment_id_, &from.opposite_major_fragment_id_,
+    static_cast<size_t>(reinterpret_cast<char*>(&is_spooling_) -
+    reinterpret_cast<char*>(&opposite_major_fragment_id_)) + sizeof(is_spooling_));
+  // @@protoc_insertion_point(copy_constructor:exec.bit.control.Collector)
 }
 
 void Collector::SharedCtor() {
-  _cached_size_ = 0;
-  opposite_major_fragment_id_ = 0;
-  supports_out_of_order_ = false;
-  is_spooling_ = false;
-  ::memset(_has_bits_, 0, sizeof(_has_bits_));
+  ::memset(&opposite_major_fragment_id_, 0, static_cast<size_t>(
+      reinterpret_cast<char*>(&is_spooling_) -
+      reinterpret_cast<char*>(&opposite_major_fragment_id_)) + sizeof(is_spooling_));
 }
 
 Collector::~Collector() {
+  // @@protoc_insertion_point(destructor:exec.bit.control.Collector)
   SharedDtor();
 }
 
 void Collector::SharedDtor() {
-  if (this != default_instance_) {
-  }
 }
 
 void Collector::SetCachedSize(int size) const {
-  GOOGLE_SAFE_CONCURRENT_WRITES_BEGIN();
-  _cached_size_ = size;
-  GOOGLE_SAFE_CONCURRENT_WRITES_END();
+  _cached_size_.Set(size);
 }
 const ::google::protobuf::Descriptor* Collector::descriptor() {
-  protobuf_AssignDescriptorsOnce();
-  return Collector_descriptor_;
+  ::protobuf_BitControl_2eproto::protobuf_AssignDescriptorsOnce();
+  return ::protobuf_BitControl_2eproto::file_level_metadata[kIndexInFileMessages].descriptor;
 }
 
 const Collector& Collector::default_instance() {
-  if (default_instance_ == NULL) protobuf_AddDesc_BitControl_2eproto();
-  return *default_instance_;
+  ::google::protobuf::internal::InitSCC(&protobuf_BitControl_2eproto::scc_info_Collector.base);
+  return *internal_default_instance();
 }
 
-Collector* Collector::default_instance_ = NULL;
-
-Collector* Collector::New() const {
-  return new Collector;
-}
 
 void Collector::Clear() {
-  if (_has_bits_[0 / 32] & (0xffu << (0 % 32))) {
-    opposite_major_fragment_id_ = 0;
-    supports_out_of_order_ = false;
-    is_spooling_ = false;
-  }
+// @@protoc_insertion_point(message_clear_start:exec.bit.control.Collector)
+  ::google::protobuf::uint32 cached_has_bits = 0;
+  // Prevent compiler warnings about cached_has_bits being unused
+  (void) cached_has_bits;
+
   incoming_minor_fragment_.Clear();
-  ::memset(_has_bits_, 0, sizeof(_has_bits_));
-  mutable_unknown_fields()->Clear();
+  cached_has_bits = _has_bits_[0];
+  if (cached_has_bits & 7u) {
+    ::memset(&opposite_major_fragment_id_, 0, static_cast<size_t>(
+        reinterpret_cast<char*>(&is_spooling_) -
+        reinterpret_cast<char*>(&opposite_major_fragment_id_)) + sizeof(is_spooling_));
+  }
+  _has_bits_.Clear();
+  _internal_metadata_.Clear();
 }
 
 bool Collector::MergePartialFromCodedStream(
     ::google::protobuf::io::CodedInputStream* input) {
-#define DO_(EXPRESSION) if (!(EXPRESSION)) return false
+#define DO_(EXPRESSION) if (!GOOGLE_PREDICT_TRUE(EXPRESSION)) goto failure
   ::google::protobuf::uint32 tag;
-  while ((tag = input->ReadTag()) != 0) {
+  // @@protoc_insertion_point(parse_start:exec.bit.control.Collector)
+  for (;;) {
+    ::std::pair<::google::protobuf::uint32, bool> p = input->ReadTagWithCutoffNoLastTag(127u);
+    tag = p.first;
+    if (!p.second) goto handle_unusual;
     switch (::google::protobuf::internal::WireFormatLite::GetTagFieldNumber(tag)) {
       // optional int32 opposite_major_fragment_id = 1;
       case 1: {
-        if (::google::protobuf::internal::WireFormatLite::GetTagWireType(tag) ==
-            ::google::protobuf::internal::WireFormatLite::WIRETYPE_VARINT) {
+        if (static_cast< ::google::protobuf::uint8>(tag) ==
+            static_cast< ::google::protobuf::uint8>(8u /* 8 & 0xFF */)) {
+          set_has_opposite_major_fragment_id();
           DO_((::google::protobuf::internal::WireFormatLite::ReadPrimitive<
                    ::google::protobuf::int32, ::google::protobuf::internal::WireFormatLite::TYPE_INT32>(
                  input, &opposite_major_fragment_id_)));
-          set_has_opposite_major_fragment_id();
         } else {
-          goto handle_uninterpreted;
+          goto handle_unusual;
         }
-        if (input->ExpectTag(18)) goto parse_incoming_minor_fragment;
         break;
       }
 
       // repeated int32 incoming_minor_fragment = 2 [packed = true];
       case 2: {
-        if (::google::protobuf::internal::WireFormatLite::GetTagWireType(tag) ==
-            ::google::protobuf::internal::WireFormatLite::WIRETYPE_LENGTH_DELIMITED) {
-         parse_incoming_minor_fragment:
+        if (static_cast< ::google::protobuf::uint8>(tag) ==
+            static_cast< ::google::protobuf::uint8>(18u /* 18 & 0xFF */)) {
           DO_((::google::protobuf::internal::WireFormatLite::ReadPackedPrimitive<
                    ::google::protobuf::int32, ::google::protobuf::internal::WireFormatLite::TYPE_INT32>(
                  input, this->mutable_incoming_minor_fragment())));
-        } else if (::google::protobuf::internal::WireFormatLite::GetTagWireType(tag)
-                   == ::google::protobuf::internal::WireFormatLite::
-                      WIRETYPE_VARINT) {
+        } else if (
+            static_cast< ::google::protobuf::uint8>(tag) ==
+            static_cast< ::google::protobuf::uint8>(16u /* 16 & 0xFF */)) {
           DO_((::google::protobuf::internal::WireFormatLite::ReadRepeatedPrimitiveNoInline<
                    ::google::protobuf::int32, ::google::protobuf::internal::WireFormatLite::TYPE_INT32>(
-                 1, 18, input, this->mutable_incoming_minor_fragment())));
+                 1, 18u, input, this->mutable_incoming_minor_fragment())));
         } else {
-          goto handle_uninterpreted;
+          goto handle_unusual;
         }
-        if (input->ExpectTag(24)) goto parse_supports_out_of_order;
         break;
       }
 
       // optional bool supports_out_of_order = 3;
       case 3: {
-        if (::google::protobuf::internal::WireFormatLite::GetTagWireType(tag) ==
-            ::google::protobuf::internal::WireFormatLite::WIRETYPE_VARINT) {
-         parse_supports_out_of_order:
+        if (static_cast< ::google::protobuf::uint8>(tag) ==
+            static_cast< ::google::protobuf::uint8>(24u /* 24 & 0xFF */)) {
+          set_has_supports_out_of_order();
           DO_((::google::protobuf::internal::WireFormatLite::ReadPrimitive<
                    bool, ::google::protobuf::internal::WireFormatLite::TYPE_BOOL>(
                  input, &supports_out_of_order_)));
-          set_has_supports_out_of_order();
         } else {
-          goto handle_uninterpreted;
+          goto handle_unusual;
         }
-        if (input->ExpectTag(32)) goto parse_is_spooling;
         break;
       }
 
       // optional bool is_spooling = 4;
       case 4: {
-        if (::google::protobuf::internal::WireFormatLite::GetTagWireType(tag) ==
-            ::google::protobuf::internal::WireFormatLite::WIRETYPE_VARINT) {
-         parse_is_spooling:
+        if (static_cast< ::google::protobuf::uint8>(tag) ==
+            static_cast< ::google::protobuf::uint8>(32u /* 32 & 0xFF */)) {
+          set_has_is_spooling();
           DO_((::google::protobuf::internal::WireFormatLite::ReadPrimitive<
                    bool, ::google::protobuf::internal::WireFormatLite::TYPE_BOOL>(
                  input, &is_spooling_)));
-          set_has_is_spooling();
         } else {
-          goto handle_uninterpreted;
+          goto handle_unusual;
         }
-        if (input->ExpectAtEnd()) return true;
         break;
       }
 
       default: {
-      handle_uninterpreted:
-        if (::google::protobuf::internal::WireFormatLite::GetTagWireType(tag) ==
-            ::google::protobuf::internal::WireFormatLite::WIRETYPE_END_GROUP) {
-          return true;
+      handle_unusual:
+        if (tag == 0) {
+          goto success;
         }
         DO_(::google::protobuf::internal::WireFormat::SkipField(
-              input, tag, mutable_unknown_fields()));
+              input, tag, _internal_metadata_.mutable_unknown_fields()));
         break;
       }
     }
   }
+success:
+  // @@protoc_insertion_point(parse_success:exec.bit.control.Collector)
   return true;
+failure:
+  // @@protoc_insertion_point(parse_failure:exec.bit.control.Collector)
+  return false;
 #undef DO_
 }
 
 void Collector::SerializeWithCachedSizes(
     ::google::protobuf::io::CodedOutputStream* output) const {
+  // @@protoc_insertion_point(serialize_start:exec.bit.control.Collector)
+  ::google::protobuf::uint32 cached_has_bits = 0;
+  (void) cached_has_bits;
+
+  cached_has_bits = _has_bits_[0];
   // optional int32 opposite_major_fragment_id = 1;
-  if (has_opposite_major_fragment_id()) {
+  if (cached_has_bits & 0x00000001u) {
     ::google::protobuf::internal::WireFormatLite::WriteInt32(1, this->opposite_major_fragment_id(), output);
   }
 
   // repeated int32 incoming_minor_fragment = 2 [packed = true];
   if (this->incoming_minor_fragment_size() > 0) {
     ::google::protobuf::internal::WireFormatLite::WriteTag(2, ::google::protobuf::internal::WireFormatLite::WIRETYPE_LENGTH_DELIMITED, output);
-    output->WriteVarint32(_incoming_minor_fragment_cached_byte_size_);
+    output->WriteVarint32(static_cast< ::google::protobuf::uint32>(
+        _incoming_minor_fragment_cached_byte_size_));
   }
-  for (int i = 0; i < this->incoming_minor_fragment_size(); i++) {
+  for (int i = 0, n = this->incoming_minor_fragment_size(); i < n; i++) {
     ::google::protobuf::internal::WireFormatLite::WriteInt32NoTag(
       this->incoming_minor_fragment(i), output);
   }
 
   // optional bool supports_out_of_order = 3;
-  if (has_supports_out_of_order()) {
+  if (cached_has_bits & 0x00000002u) {
     ::google::protobuf::internal::WireFormatLite::WriteBool(3, this->supports_out_of_order(), output);
   }
 
   // optional bool is_spooling = 4;
-  if (has_is_spooling()) {
+  if (cached_has_bits & 0x00000004u) {
     ::google::protobuf::internal::WireFormatLite::WriteBool(4, this->is_spooling(), output);
   }
 
-  if (!unknown_fields().empty()) {
+  if (_internal_metadata_.have_unknown_fields()) {
     ::google::protobuf::internal::WireFormat::SerializeUnknownFields(
-        unknown_fields(), output);
+        _internal_metadata_.unknown_fields(), output);
   }
+  // @@protoc_insertion_point(serialize_end:exec.bit.control.Collector)
 }
 
-::google::protobuf::uint8* Collector::SerializeWithCachedSizesToArray(
-    ::google::protobuf::uint8* target) const {
+::google::protobuf::uint8* Collector::InternalSerializeWithCachedSizesToArray(
+    bool deterministic, ::google::protobuf::uint8* target) const {
+  (void)deterministic; // Unused
+  // @@protoc_insertion_point(serialize_to_array_start:exec.bit.control.Collector)
+  ::google::protobuf::uint32 cached_has_bits = 0;
+  (void) cached_has_bits;
+
+  cached_has_bits = _has_bits_[0];
   // optional int32 opposite_major_fragment_id = 1;
-  if (has_opposite_major_fragment_id()) {
+  if (cached_has_bits & 0x00000001u) {
     target = ::google::protobuf::internal::WireFormatLite::WriteInt32ToArray(1, this->opposite_major_fragment_id(), target);
   }
 
@@ -2722,34 +3095,56 @@ void Collector::SerializeWithCachedSizes(
       ::google::protobuf::internal::WireFormatLite::WIRETYPE_LENGTH_DELIMITED,
       target);
     target = ::google::protobuf::io::CodedOutputStream::WriteVarint32ToArray(
-      _incoming_minor_fragment_cached_byte_size_, target);
-  }
-  for (int i = 0; i < this->incoming_minor_fragment_size(); i++) {
+        static_cast< ::google::protobuf::int32>(
+            _incoming_minor_fragment_cached_byte_size_), target);
     target = ::google::protobuf::internal::WireFormatLite::
-      WriteInt32NoTagToArray(this->incoming_minor_fragment(i), target);
+      WriteInt32NoTagToArray(this->incoming_minor_fragment_, target);
   }
 
   // optional bool supports_out_of_order = 3;
-  if (has_supports_out_of_order()) {
+  if (cached_has_bits & 0x00000002u) {
     target = ::google::protobuf::internal::WireFormatLite::WriteBoolToArray(3, this->supports_out_of_order(), target);
   }
 
   // optional bool is_spooling = 4;
-  if (has_is_spooling()) {
+  if (cached_has_bits & 0x00000004u) {
     target = ::google::protobuf::internal::WireFormatLite::WriteBoolToArray(4, this->is_spooling(), target);
   }
 
-  if (!unknown_fields().empty()) {
+  if (_internal_metadata_.have_unknown_fields()) {
     target = ::google::protobuf::internal::WireFormat::SerializeUnknownFieldsToArray(
-        unknown_fields(), target);
+        _internal_metadata_.unknown_fields(), target);
   }
+  // @@protoc_insertion_point(serialize_to_array_end:exec.bit.control.Collector)
   return target;
 }
 
-int Collector::ByteSize() const {
-  int total_size = 0;
+size_t Collector::ByteSizeLong() const {
+// @@protoc_insertion_point(message_byte_size_start:exec.bit.control.Collector)
+  size_t total_size = 0;
 
-  if (_has_bits_[0 / 32] & (0xffu << (0 % 32))) {
+  if (_internal_metadata_.have_unknown_fields()) {
+    total_size +=
+      ::google::protobuf::internal::WireFormat::ComputeUnknownFieldsSize(
+        _internal_metadata_.unknown_fields());
+  }
+  // repeated int32 incoming_minor_fragment = 2 [packed = true];
+  {
+    size_t data_size = ::google::protobuf::internal::WireFormatLite::
+      Int32Size(this->incoming_minor_fragment_);
+    if (data_size > 0) {
+      total_size += 1 +
+        ::google::protobuf::internal::WireFormatLite::Int32Size(
+            static_cast< ::google::protobuf::int32>(data_size));
+    }
+    int cached_size = ::google::protobuf::internal::ToCachedSize(data_size);
+    GOOGLE_SAFE_CONCURRENT_WRITES_BEGIN();
+    _incoming_minor_fragment_cached_byte_size_ = cached_size;
+    GOOGLE_SAFE_CONCURRENT_WRITES_END();
+    total_size += data_size;
+  }
+
+  if (_has_bits_[0 / 32] & 7u) {
     // optional int32 opposite_major_fragment_id = 1;
     if (has_opposite_major_fragment_id()) {
       total_size += 1 +
@@ -2768,368 +3163,372 @@ int Collector::ByteSize() const {
     }
 
   }
-  // repeated int32 incoming_minor_fragment = 2 [packed = true];
-  {
-    int data_size = 0;
-    for (int i = 0; i < this->incoming_minor_fragment_size(); i++) {
-      data_size += ::google::protobuf::internal::WireFormatLite::
-        Int32Size(this->incoming_minor_fragment(i));
-    }
-    if (data_size > 0) {
-      total_size += 1 +
-        ::google::protobuf::internal::WireFormatLite::Int32Size(data_size);
-    }
-    GOOGLE_SAFE_CONCURRENT_WRITES_BEGIN();
-    _incoming_minor_fragment_cached_byte_size_ = data_size;
-    GOOGLE_SAFE_CONCURRENT_WRITES_END();
-    total_size += data_size;
-  }
-
-  if (!unknown_fields().empty()) {
-    total_size +=
-      ::google::protobuf::internal::WireFormat::ComputeUnknownFieldsSize(
-        unknown_fields());
-  }
-  GOOGLE_SAFE_CONCURRENT_WRITES_BEGIN();
-  _cached_size_ = total_size;
-  GOOGLE_SAFE_CONCURRENT_WRITES_END();
+  int cached_size = ::google::protobuf::internal::ToCachedSize(total_size);
+  SetCachedSize(cached_size);
   return total_size;
 }
 
 void Collector::MergeFrom(const ::google::protobuf::Message& from) {
-  GOOGLE_CHECK_NE(&from, this);
+// @@protoc_insertion_point(generalized_merge_from_start:exec.bit.control.Collector)
+  GOOGLE_DCHECK_NE(&from, this);
   const Collector* source =
-    ::google::protobuf::internal::dynamic_cast_if_available<const Collector*>(
-      &from);
+      ::google::protobuf::internal::DynamicCastToGenerated<const Collector>(
+          &from);
   if (source == NULL) {
+  // @@protoc_insertion_point(generalized_merge_from_cast_fail:exec.bit.control.Collector)
     ::google::protobuf::internal::ReflectionOps::Merge(from, this);
   } else {
+  // @@protoc_insertion_point(generalized_merge_from_cast_success:exec.bit.control.Collector)
     MergeFrom(*source);
   }
 }
 
 void Collector::MergeFrom(const Collector& from) {
-  GOOGLE_CHECK_NE(&from, this);
+// @@protoc_insertion_point(class_specific_merge_from_start:exec.bit.control.Collector)
+  GOOGLE_DCHECK_NE(&from, this);
+  _internal_metadata_.MergeFrom(from._internal_metadata_);
+  ::google::protobuf::uint32 cached_has_bits = 0;
+  (void) cached_has_bits;
+
   incoming_minor_fragment_.MergeFrom(from.incoming_minor_fragment_);
-  if (from._has_bits_[0 / 32] & (0xffu << (0 % 32))) {
-    if (from.has_opposite_major_fragment_id()) {
-      set_opposite_major_fragment_id(from.opposite_major_fragment_id());
+  cached_has_bits = from._has_bits_[0];
+  if (cached_has_bits & 7u) {
+    if (cached_has_bits & 0x00000001u) {
+      opposite_major_fragment_id_ = from.opposite_major_fragment_id_;
     }
-    if (from.has_supports_out_of_order()) {
-      set_supports_out_of_order(from.supports_out_of_order());
+    if (cached_has_bits & 0x00000002u) {
+      supports_out_of_order_ = from.supports_out_of_order_;
     }
-    if (from.has_is_spooling()) {
-      set_is_spooling(from.is_spooling());
+    if (cached_has_bits & 0x00000004u) {
+      is_spooling_ = from.is_spooling_;
     }
+    _has_bits_[0] |= cached_has_bits;
   }
-  mutable_unknown_fields()->MergeFrom(from.unknown_fields());
 }
 
 void Collector::CopyFrom(const ::google::protobuf::Message& from) {
+// @@protoc_insertion_point(generalized_copy_from_start:exec.bit.control.Collector)
   if (&from == this) return;
   Clear();
   MergeFrom(from);
 }
 
 void Collector::CopyFrom(const Collector& from) {
+// @@protoc_insertion_point(class_specific_copy_from_start:exec.bit.control.Collector)
   if (&from == this) return;
   Clear();
   MergeFrom(from);
 }
 
 bool Collector::IsInitialized() const {
-
   return true;
 }
 
 void Collector::Swap(Collector* other) {
-  if (other != this) {
-    std::swap(opposite_major_fragment_id_, other->opposite_major_fragment_id_);
-    incoming_minor_fragment_.Swap(&other->incoming_minor_fragment_);
-    std::swap(supports_out_of_order_, other->supports_out_of_order_);
-    std::swap(is_spooling_, other->is_spooling_);
-    std::swap(_has_bits_[0], other->_has_bits_[0]);
-    _unknown_fields_.Swap(&other->_unknown_fields_);
-    std::swap(_cached_size_, other->_cached_size_);
-  }
+  if (other == this) return;
+  InternalSwap(other);
+}
+void Collector::InternalSwap(Collector* other) {
+  using std::swap;
+  incoming_minor_fragment_.InternalSwap(&other->incoming_minor_fragment_);
+  swap(opposite_major_fragment_id_, other->opposite_major_fragment_id_);
+  swap(supports_out_of_order_, other->supports_out_of_order_);
+  swap(is_spooling_, other->is_spooling_);
+  swap(_has_bits_[0], other->_has_bits_[0]);
+  _internal_metadata_.Swap(&other->_internal_metadata_);
 }
 
 ::google::protobuf::Metadata Collector::GetMetadata() const {
-  protobuf_AssignDescriptorsOnce();
-  ::google::protobuf::Metadata metadata;
-  metadata.descriptor = Collector_descriptor_;
-  metadata.reflection = Collector_reflection_;
-  return metadata;
+  protobuf_BitControl_2eproto::protobuf_AssignDescriptorsOnce();
+  return ::protobuf_BitControl_2eproto::file_level_metadata[kIndexInFileMessages];
 }
 
 
 // ===================================================================
 
-#ifndef _MSC_VER
+void QueryContextInformation::InitAsDefaultInstance() {
+}
+#if !defined(_MSC_VER) || _MSC_VER >= 1900
 const int QueryContextInformation::kQueryStartTimeFieldNumber;
 const int QueryContextInformation::kTimeZoneFieldNumber;
 const int QueryContextInformation::kDefaultSchemaNameFieldNumber;
 const int QueryContextInformation::kSessionIdFieldNumber;
-#endif  // !_MSC_VER
+#endif  // !defined(_MSC_VER) || _MSC_VER >= 1900
 
 QueryContextInformation::QueryContextInformation()
-  : ::google::protobuf::Message() {
+  : ::google::protobuf::Message(), _internal_metadata_(NULL) {
+  ::google::protobuf::internal::InitSCC(
+      &protobuf_BitControl_2eproto::scc_info_QueryContextInformation.base);
   SharedCtor();
+  // @@protoc_insertion_point(constructor:exec.bit.control.QueryContextInformation)
 }
-
-void QueryContextInformation::InitAsDefaultInstance() {
-}
-
 QueryContextInformation::QueryContextInformation(const QueryContextInformation& from)
-  : ::google::protobuf::Message() {
-  SharedCtor();
-  MergeFrom(from);
+  : ::google::protobuf::Message(),
+      _internal_metadata_(NULL),
+      _has_bits_(from._has_bits_) {
+  _internal_metadata_.MergeFrom(from._internal_metadata_);
+  default_schema_name_.UnsafeSetDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
+  if (from.has_default_schema_name()) {
+    default_schema_name_.AssignWithDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), from.default_schema_name_);
+  }
+  session_id_.UnsafeSetDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
+  if (from.has_session_id()) {
+    session_id_.AssignWithDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), from.session_id_);
+  }
+  ::memcpy(&query_start_time_, &from.query_start_time_,
+    static_cast<size_t>(reinterpret_cast<char*>(&time_zone_) -
+    reinterpret_cast<char*>(&query_start_time_)) + sizeof(time_zone_));
+  // @@protoc_insertion_point(copy_constructor:exec.bit.control.QueryContextInformation)
 }
 
 void QueryContextInformation::SharedCtor() {
-  _cached_size_ = 0;
-  query_start_time_ = GOOGLE_LONGLONG(0);
-  time_zone_ = 0;
-  default_schema_name_ = const_cast< ::std::string*>(&::google::protobuf::internal::kEmptyString);
-  session_id_ = const_cast< ::std::string*>(&::google::protobuf::internal::kEmptyString);
-  ::memset(_has_bits_, 0, sizeof(_has_bits_));
+  default_schema_name_.UnsafeSetDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
+  session_id_.UnsafeSetDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
+  ::memset(&query_start_time_, 0, static_cast<size_t>(
+      reinterpret_cast<char*>(&time_zone_) -
+      reinterpret_cast<char*>(&query_start_time_)) + sizeof(time_zone_));
 }
 
 QueryContextInformation::~QueryContextInformation() {
+  // @@protoc_insertion_point(destructor:exec.bit.control.QueryContextInformation)
   SharedDtor();
 }
 
 void QueryContextInformation::SharedDtor() {
-  if (default_schema_name_ != &::google::protobuf::internal::kEmptyString) {
-    delete default_schema_name_;
-  }
-  if (session_id_ != &::google::protobuf::internal::kEmptyString) {
-    delete session_id_;
-  }
-  if (this != default_instance_) {
-  }
+  default_schema_name_.DestroyNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
+  session_id_.DestroyNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
 }
 
 void QueryContextInformation::SetCachedSize(int size) const {
-  GOOGLE_SAFE_CONCURRENT_WRITES_BEGIN();
-  _cached_size_ = size;
-  GOOGLE_SAFE_CONCURRENT_WRITES_END();
+  _cached_size_.Set(size);
 }
 const ::google::protobuf::Descriptor* QueryContextInformation::descriptor() {
-  protobuf_AssignDescriptorsOnce();
-  return QueryContextInformation_descriptor_;
+  ::protobuf_BitControl_2eproto::protobuf_AssignDescriptorsOnce();
+  return ::protobuf_BitControl_2eproto::file_level_metadata[kIndexInFileMessages].descriptor;
 }
 
 const QueryContextInformation& QueryContextInformation::default_instance() {
-  if (default_instance_ == NULL) protobuf_AddDesc_BitControl_2eproto();
-  return *default_instance_;
+  ::google::protobuf::internal::InitSCC(&protobuf_BitControl_2eproto::scc_info_QueryContextInformation.base);
+  return *internal_default_instance();
 }
 
-QueryContextInformation* QueryContextInformation::default_instance_ = NULL;
-
-QueryContextInformation* QueryContextInformation::New() const {
-  return new QueryContextInformation;
-}
 
 void QueryContextInformation::Clear() {
-  if (_has_bits_[0 / 32] & (0xffu << (0 % 32))) {
-    query_start_time_ = GOOGLE_LONGLONG(0);
-    time_zone_ = 0;
-    if (has_default_schema_name()) {
-      if (default_schema_name_ != &::google::protobuf::internal::kEmptyString) {
-        default_schema_name_->clear();
-      }
+// @@protoc_insertion_point(message_clear_start:exec.bit.control.QueryContextInformation)
+  ::google::protobuf::uint32 cached_has_bits = 0;
+  // Prevent compiler warnings about cached_has_bits being unused
+  (void) cached_has_bits;
+
+  cached_has_bits = _has_bits_[0];
+  if (cached_has_bits & 3u) {
+    if (cached_has_bits & 0x00000001u) {
+      default_schema_name_.ClearNonDefaultToEmptyNoArena();
     }
-    if (has_session_id()) {
-      if (session_id_ != &::google::protobuf::internal::kEmptyString) {
-        session_id_->clear();
-      }
+    if (cached_has_bits & 0x00000002u) {
+      session_id_.ClearNonDefaultToEmptyNoArena();
     }
   }
-  ::memset(_has_bits_, 0, sizeof(_has_bits_));
-  mutable_unknown_fields()->Clear();
+  if (cached_has_bits & 12u) {
+    ::memset(&query_start_time_, 0, static_cast<size_t>(
+        reinterpret_cast<char*>(&time_zone_) -
+        reinterpret_cast<char*>(&query_start_time_)) + sizeof(time_zone_));
+  }
+  _has_bits_.Clear();
+  _internal_metadata_.Clear();
 }
 
 bool QueryContextInformation::MergePartialFromCodedStream(
     ::google::protobuf::io::CodedInputStream* input) {
-#define DO_(EXPRESSION) if (!(EXPRESSION)) return false
+#define DO_(EXPRESSION) if (!GOOGLE_PREDICT_TRUE(EXPRESSION)) goto failure
   ::google::protobuf::uint32 tag;
-  while ((tag = input->ReadTag()) != 0) {
+  // @@protoc_insertion_point(parse_start:exec.bit.control.QueryContextInformation)
+  for (;;) {
+    ::std::pair<::google::protobuf::uint32, bool> p = input->ReadTagWithCutoffNoLastTag(127u);
+    tag = p.first;
+    if (!p.second) goto handle_unusual;
     switch (::google::protobuf::internal::WireFormatLite::GetTagFieldNumber(tag)) {
       // optional int64 query_start_time = 1;
       case 1: {
-        if (::google::protobuf::internal::WireFormatLite::GetTagWireType(tag) ==
-            ::google::protobuf::internal::WireFormatLite::WIRETYPE_VARINT) {
+        if (static_cast< ::google::protobuf::uint8>(tag) ==
+            static_cast< ::google::protobuf::uint8>(8u /* 8 & 0xFF */)) {
+          set_has_query_start_time();
           DO_((::google::protobuf::internal::WireFormatLite::ReadPrimitive<
                    ::google::protobuf::int64, ::google::protobuf::internal::WireFormatLite::TYPE_INT64>(
                  input, &query_start_time_)));
-          set_has_query_start_time();
         } else {
-          goto handle_uninterpreted;
+          goto handle_unusual;
         }
-        if (input->ExpectTag(16)) goto parse_time_zone;
         break;
       }
 
       // optional int32 time_zone = 2;
       case 2: {
-        if (::google::protobuf::internal::WireFormatLite::GetTagWireType(tag) ==
-            ::google::protobuf::internal::WireFormatLite::WIRETYPE_VARINT) {
-         parse_time_zone:
+        if (static_cast< ::google::protobuf::uint8>(tag) ==
+            static_cast< ::google::protobuf::uint8>(16u /* 16 & 0xFF */)) {
+          set_has_time_zone();
           DO_((::google::protobuf::internal::WireFormatLite::ReadPrimitive<
                    ::google::protobuf::int32, ::google::protobuf::internal::WireFormatLite::TYPE_INT32>(
                  input, &time_zone_)));
-          set_has_time_zone();
         } else {
-          goto handle_uninterpreted;
+          goto handle_unusual;
         }
-        if (input->ExpectTag(26)) goto parse_default_schema_name;
         break;
       }
 
       // optional string default_schema_name = 3;
       case 3: {
-        if (::google::protobuf::internal::WireFormatLite::GetTagWireType(tag) ==
-            ::google::protobuf::internal::WireFormatLite::WIRETYPE_LENGTH_DELIMITED) {
-         parse_default_schema_name:
+        if (static_cast< ::google::protobuf::uint8>(tag) ==
+            static_cast< ::google::protobuf::uint8>(26u /* 26 & 0xFF */)) {
           DO_(::google::protobuf::internal::WireFormatLite::ReadString(
                 input, this->mutable_default_schema_name()));
-          ::google::protobuf::internal::WireFormat::VerifyUTF8String(
-            this->default_schema_name().data(), this->default_schema_name().length(),
-            ::google::protobuf::internal::WireFormat::PARSE);
+          ::google::protobuf::internal::WireFormat::VerifyUTF8StringNamedField(
+            this->default_schema_name().data(), static_cast<int>(this->default_schema_name().length()),
+            ::google::protobuf::internal::WireFormat::PARSE,
+            "exec.bit.control.QueryContextInformation.default_schema_name");
         } else {
-          goto handle_uninterpreted;
+          goto handle_unusual;
         }
-        if (input->ExpectTag(34)) goto parse_session_id;
         break;
       }
 
       // optional string session_id = 4;
       case 4: {
-        if (::google::protobuf::internal::WireFormatLite::GetTagWireType(tag) ==
-            ::google::protobuf::internal::WireFormatLite::WIRETYPE_LENGTH_DELIMITED) {
-         parse_session_id:
+        if (static_cast< ::google::protobuf::uint8>(tag) ==
+            static_cast< ::google::protobuf::uint8>(34u /* 34 & 0xFF */)) {
           DO_(::google::protobuf::internal::WireFormatLite::ReadString(
                 input, this->mutable_session_id()));
-          ::google::protobuf::internal::WireFormat::VerifyUTF8String(
-            this->session_id().data(), this->session_id().length(),
-            ::google::protobuf::internal::WireFormat::PARSE);
+          ::google::protobuf::internal::WireFormat::VerifyUTF8StringNamedField(
+            this->session_id().data(), static_cast<int>(this->session_id().length()),
+            ::google::protobuf::internal::WireFormat::PARSE,
+            "exec.bit.control.QueryContextInformation.session_id");
         } else {
-          goto handle_uninterpreted;
+          goto handle_unusual;
         }
-        if (input->ExpectAtEnd()) return true;
         break;
       }
 
       default: {
-      handle_uninterpreted:
-        if (::google::protobuf::internal::WireFormatLite::GetTagWireType(tag) ==
-            ::google::protobuf::internal::WireFormatLite::WIRETYPE_END_GROUP) {
-          return true;
+      handle_unusual:
+        if (tag == 0) {
+          goto success;
         }
         DO_(::google::protobuf::internal::WireFormat::SkipField(
-              input, tag, mutable_unknown_fields()));
+              input, tag, _internal_metadata_.mutable_unknown_fields()));
         break;
       }
     }
   }
+success:
+  // @@protoc_insertion_point(parse_success:exec.bit.control.QueryContextInformation)
   return true;
+failure:
+  // @@protoc_insertion_point(parse_failure:exec.bit.control.QueryContextInformation)
+  return false;
 #undef DO_
 }
 
 void QueryContextInformation::SerializeWithCachedSizes(
     ::google::protobuf::io::CodedOutputStream* output) const {
+  // @@protoc_insertion_point(serialize_start:exec.bit.control.QueryContextInformation)
+  ::google::protobuf::uint32 cached_has_bits = 0;
+  (void) cached_has_bits;
+
+  cached_has_bits = _has_bits_[0];
   // optional int64 query_start_time = 1;
-  if (has_query_start_time()) {
+  if (cached_has_bits & 0x00000004u) {
     ::google::protobuf::internal::WireFormatLite::WriteInt64(1, this->query_start_time(), output);
   }
 
   // optional int32 time_zone = 2;
-  if (has_time_zone()) {
+  if (cached_has_bits & 0x00000008u) {
     ::google::protobuf::internal::WireFormatLite::WriteInt32(2, this->time_zone(), output);
   }
 
   // optional string default_schema_name = 3;
-  if (has_default_schema_name()) {
-    ::google::protobuf::internal::WireFormat::VerifyUTF8String(
-      this->default_schema_name().data(), this->default_schema_name().length(),
-      ::google::protobuf::internal::WireFormat::SERIALIZE);
-    ::google::protobuf::internal::WireFormatLite::WriteString(
+  if (cached_has_bits & 0x00000001u) {
+    ::google::protobuf::internal::WireFormat::VerifyUTF8StringNamedField(
+      this->default_schema_name().data(), static_cast<int>(this->default_schema_name().length()),
+      ::google::protobuf::internal::WireFormat::SERIALIZE,
+      "exec.bit.control.QueryContextInformation.default_schema_name");
+    ::google::protobuf::internal::WireFormatLite::WriteStringMaybeAliased(
       3, this->default_schema_name(), output);
   }
 
   // optional string session_id = 4;
-  if (has_session_id()) {
-    ::google::protobuf::internal::WireFormat::VerifyUTF8String(
-      this->session_id().data(), this->session_id().length(),
-      ::google::protobuf::internal::WireFormat::SERIALIZE);
-    ::google::protobuf::internal::WireFormatLite::WriteString(
+  if (cached_has_bits & 0x00000002u) {
+    ::google::protobuf::internal::WireFormat::VerifyUTF8StringNamedField(
+      this->session_id().data(), static_cast<int>(this->session_id().length()),
+      ::google::protobuf::internal::WireFormat::SERIALIZE,
+      "exec.bit.control.QueryContextInformation.session_id");
+    ::google::protobuf::internal::WireFormatLite::WriteStringMaybeAliased(
       4, this->session_id(), output);
   }
 
-  if (!unknown_fields().empty()) {
+  if (_internal_metadata_.have_unknown_fields()) {
     ::google::protobuf::internal::WireFormat::SerializeUnknownFields(
-        unknown_fields(), output);
+        _internal_metadata_.unknown_fields(), output);
   }
+  // @@protoc_insertion_point(serialize_end:exec.bit.control.QueryContextInformation)
 }
 
-::google::protobuf::uint8* QueryContextInformation::SerializeWithCachedSizesToArray(
-    ::google::protobuf::uint8* target) const {
+::google::protobuf::uint8* QueryContextInformation::InternalSerializeWithCachedSizesToArray(
+    bool deterministic, ::google::protobuf::uint8* target) const {
+  (void)deterministic; // Unused
+  // @@protoc_insertion_point(serialize_to_array_start:exec.bit.control.QueryContextInformation)
+  ::google::protobuf::uint32 cached_has_bits = 0;
+  (void) cached_has_bits;
+
+  cached_has_bits = _has_bits_[0];
   // optional int64 query_start_time = 1;
-  if (has_query_start_time()) {
+  if (cached_has_bits & 0x00000004u) {
     target = ::google::protobuf::internal::WireFormatLite::WriteInt64ToArray(1, this->query_start_time(), target);
   }
 
   // optional int32 time_zone = 2;
-  if (has_time_zone()) {
+  if (cached_has_bits & 0x00000008u) {
     target = ::google::protobuf::internal::WireFormatLite::WriteInt32ToArray(2, this->time_zone(), target);
   }
 
   // optional string default_schema_name = 3;
-  if (has_default_schema_name()) {
-    ::google::protobuf::internal::WireFormat::VerifyUTF8String(
-      this->default_schema_name().data(), this->default_schema_name().length(),
-      ::google::protobuf::internal::WireFormat::SERIALIZE);
+  if (cached_has_bits & 0x00000001u) {
+    ::google::protobuf::internal::WireFormat::VerifyUTF8StringNamedField(
+      this->default_schema_name().data(), static_cast<int>(this->default_schema_name().length()),
+      ::google::protobuf::internal::WireFormat::SERIALIZE,
+      "exec.bit.control.QueryContextInformation.default_schema_name");
     target =
       ::google::protobuf::internal::WireFormatLite::WriteStringToArray(
         3, this->default_schema_name(), target);
   }
 
   // optional string session_id = 4;
-  if (has_session_id()) {
-    ::google::protobuf::internal::WireFormat::VerifyUTF8String(
-      this->session_id().data(), this->session_id().length(),
-      ::google::protobuf::internal::WireFormat::SERIALIZE);
+  if (cached_has_bits & 0x00000002u) {
+    ::google::protobuf::internal::WireFormat::VerifyUTF8StringNamedField(
+      this->session_id().data(), static_cast<int>(this->session_id().length()),
+      ::google::protobuf::internal::WireFormat::SERIALIZE,
+      "exec.bit.control.QueryContextInformation.session_id");
     target =
       ::google::protobuf::internal::WireFormatLite::WriteStringToArray(
         4, this->session_id(), target);
   }
 
-  if (!unknown_fields().empty()) {
+  if (_internal_metadata_.have_unknown_fields()) {
     target = ::google::protobuf::internal::WireFormat::SerializeUnknownFieldsToArray(
-        unknown_fields(), target);
+        _internal_metadata_.unknown_fields(), target);
   }
+  // @@protoc_insertion_point(serialize_to_array_end:exec.bit.control.QueryContextInformation)
   return target;
 }
 
-int QueryContextInformation::ByteSize() const {
-  int total_size = 0;
-
-  if (_has_bits_[0 / 32] & (0xffu << (0 % 32))) {
-    // optional int64 query_start_time = 1;
-    if (has_query_start_time()) {
-      total_size += 1 +
-        ::google::protobuf::internal::WireFormatLite::Int64Size(
-          this->query_start_time());
-    }
-
-    // optional int32 time_zone = 2;
-    if (has_time_zone()) {
-      total_size += 1 +
-        ::google::protobuf::internal::WireFormatLite::Int32Size(
-          this->time_zone());
-    }
+size_t QueryContextInformation::ByteSizeLong() const {
+// @@protoc_insertion_point(message_byte_size_start:exec.bit.control.QueryContextInformation)
+  size_t total_size = 0;
 
+  if (_internal_metadata_.have_unknown_fields()) {
+    total_size +=
+      ::google::protobuf::internal::WireFormat::ComputeUnknownFieldsSize(
+        _internal_metadata_.unknown_fields());
+  }
+  if (_has_bits_[0 / 32] & 15u) {
     // optional string default_schema_name = 3;
     if (has_default_schema_name()) {
       total_size += 1 +
@@ -3144,294 +3543,344 @@ int QueryContextInformation::ByteSize() const {
           this->session_id());
     }
 
+    // optional int64 query_start_time = 1;
+    if (has_query_start_time()) {
+      total_size += 1 +
+        ::google::protobuf::internal::WireFormatLite::Int64Size(
+          this->query_start_time());
+    }
+
+    // optional int32 time_zone = 2;
+    if (has_time_zone()) {
+      total_size += 1 +
+        ::google::protobuf::internal::WireFormatLite::Int32Size(
+          this->time_zone());
+    }
+
   }
-  if (!unknown_fields().empty()) {
-    total_size +=
-      ::google::protobuf::internal::WireFormat::ComputeUnknownFieldsSize(
-        unknown_fields());
-  }
-  GOOGLE_SAFE_CONCURRENT_WRITES_BEGIN();
-  _cached_size_ = total_size;
-  GOOGLE_SAFE_CONCURRENT_WRITES_END();
+  int cached_size = ::google::protobuf::internal::ToCachedSize(total_size);
+  SetCachedSize(cached_size);
   return total_size;
 }
 
 void QueryContextInformation::MergeFrom(const ::google::protobuf::Message& from) {
-  GOOGLE_CHECK_NE(&from, this);
+// @@protoc_insertion_point(generalized_merge_from_start:exec.bit.control.QueryContextInformation)
+  GOOGLE_DCHECK_NE(&from, this);
   const QueryContextInformation* source =
-    ::google::protobuf::internal::dynamic_cast_if_available<const QueryContextInformation*>(
-      &from);
+      ::google::protobuf::internal::DynamicCastToGenerated<const QueryContextInformation>(
+          &from);
   if (source == NULL) {
+  // @@protoc_insertion_point(generalized_merge_from_cast_fail:exec.bit.control.QueryContextInformation)
     ::google::protobuf::internal::ReflectionOps::Merge(from, this);
   } else {
+  // @@protoc_insertion_point(generalized_merge_from_cast_success:exec.bit.control.QueryContextInformation)
     MergeFrom(*source);
   }
 }
 
 void QueryContextInformation::MergeFrom(const QueryContextInformation& from) {
-  GOOGLE_CHECK_NE(&from, this);
-  if (from._has_bits_[0 / 32] & (0xffu << (0 % 32))) {
-    if (from.has_query_start_time()) {
-      set_query_start_time(from.query_start_time());
+// @@protoc_insertion_point(class_specific_merge_from_start:exec.bit.control.QueryContextInformation)
+  GOOGLE_DCHECK_NE(&from, this);
+  _internal_metadata_.MergeFrom(from._internal_metadata_);
+  ::google::protobuf::uint32 cached_has_bits = 0;
+  (void) cached_has_bits;
+
+  cached_has_bits = from._has_bits_[0];
+  if (cached_has_bits & 15u) {
+    if (cached_has_bits & 0x00000001u) {
+      set_has_default_schema_name();
+      default_schema_name_.AssignWithDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), from.default_schema_name_);
     }
-    if (from.has_time_zone()) {
-      set_time_zone(from.time_zone());
+    if (cached_has_bits & 0x00000002u) {
+      set_has_session_id();
+      session_id_.AssignWithDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), from.session_id_);
     }
-    if (from.has_default_schema_name()) {
-      set_default_schema_name(from.default_schema_name());
+    if (cached_has_bits & 0x00000004u) {
+      query_start_time_ = from.query_start_time_;
     }
-    if (from.has_session_id()) {
-      set_session_id(from.session_id());
+    if (cached_has_bits & 0x00000008u) {
+      time_zone_ = from.time_zone_;
     }
+    _has_bits_[0] |= cached_has_bits;
   }
-  mutable_unknown_fields()->MergeFrom(from.unknown_fields());
 }
 
 void QueryContextInformation::CopyFrom(const ::google::protobuf::Message& from) {
+// @@protoc_insertion_point(generalized_copy_from_start:exec.bit.control.QueryContextInformation)
   if (&from == this) return;
   Clear();
   MergeFrom(from);
 }
 
 void QueryContextInformation::CopyFrom(const QueryContextInformation& from) {
+// @@protoc_insertion_point(class_specific_copy_from_start:exec.bit.control.QueryContextInformation)
   if (&from == this) return;
   Clear();
   MergeFrom(from);
 }
 
 bool QueryContextInformation::IsInitialized() const {
-
   return true;
 }
 
 void QueryContextInformation::Swap(QueryContextInformation* other) {
-  if (other != this) {
-    std::swap(query_start_time_, other->query_start_time_);
-    std::swap(time_zone_, other->time_zone_);
-    std::swap(default_schema_name_, other->default_schema_name_);
-    std::swap(session_id_, other->session_id_);
-    std::swap(_has_bits_[0], other->_has_bits_[0]);
-    _unknown_fields_.Swap(&other->_unknown_fields_);
-    std::swap(_cached_size_, other->_cached_size_);
-  }
+  if (other == this) return;
+  InternalSwap(other);
+}
+void QueryContextInformation::InternalSwap(QueryContextInformation* other) {
+  using std::swap;
+  default_schema_name_.Swap(&other->default_schema_name_, &::google::protobuf::internal::GetEmptyStringAlreadyInited(),
+    GetArenaNoVirtual());
+  session_id_.Swap(&other->session_id_, &::google::protobuf::internal::GetEmptyStringAlreadyInited(),
+    GetArenaNoVirtual());
+  swap(query_start_time_, other->query_start_time_);
+  swap(time_zone_, other->time_zone_);
+  swap(_has_bits_[0], other->_has_bits_[0]);
+  _internal_metadata_.Swap(&other->_internal_metadata_);
 }
 
 ::google::protobuf::Metadata QueryContextInformation::GetMetadata() const {
-  protobuf_AssignDescriptorsOnce();
-  ::google::protobuf::Metadata metadata;
-  metadata.descriptor = QueryContextInformation_descriptor_;
-  metadata.reflection = QueryContextInformation_reflection_;
-  return metadata;
+  protobuf_BitControl_2eproto::protobuf_AssignDescriptorsOnce();
+  return ::protobuf_BitControl_2eproto::file_level_metadata[kIndexInFileMessages];
 }
 
 
 // ===================================================================
 
-#ifndef _MSC_VER
+void WorkQueueStatus::InitAsDefaultInstance() {
+  ::exec::bit::control::_WorkQueueStatus_default_instance_._instance.get_mutable()->endpoint_ = const_cast< ::exec::DrillbitEndpoint*>(
+      ::exec::DrillbitEndpoint::internal_default_instance());
+}
+void WorkQueueStatus::clear_endpoint() {
+  if (endpoint_ != NULL) endpoint_->Clear();
+  clear_has_endpoint();
+}
+#if !defined(_MSC_VER) || _MSC_VER >= 1900
 const int WorkQueueStatus::kEndpointFieldNumber;
 const int WorkQueueStatus::kQueueLengthFieldNumber;
 const int WorkQueueStatus::kReportTimeFieldNumber;
-#endif  // !_MSC_VER
+#endif  // !defined(_MSC_VER) || _MSC_VER >= 1900
 
 WorkQueueStatus::WorkQueueStatus()
-  : ::google::protobuf::Message() {
+  : ::google::protobuf::Message(), _internal_metadata_(NULL) {
+  ::google::protobuf::internal::InitSCC(
+      &protobuf_BitControl_2eproto::scc_info_WorkQueueStatus.base);
   SharedCtor();
+  // @@protoc_insertion_point(constructor:exec.bit.control.WorkQueueStatus)
 }
-
-void WorkQueueStatus::InitAsDefaultInstance() {
-  endpoint_ = const_cast< ::exec::DrillbitEndpoint*>(&::exec::DrillbitEndpoint::default_instance());
-}
-
 WorkQueueStatus::WorkQueueStatus(const WorkQueueStatus& from)
-  : ::google::protobuf::Message() {
-  SharedCtor();
-  MergeFrom(from);
+  : ::google::protobuf::Message(),
+      _internal_metadata_(NULL),
+      _has_bits_(from._has_bits_) {
+  _internal_metadata_.MergeFrom(from._internal_metadata_);
+  if (from.has_endpoint()) {
+    endpoint_ = new ::exec::DrillbitEndpoint(*from.endpoint_);
+  } else {
+    endpoint_ = NULL;
+  }
+  ::memcpy(&report_time_, &from.report_time_,
+    static_cast<size_t>(reinterpret_cast<char*>(&queue_length_) -
+    reinterpret_cast<char*>(&report_time_)) + sizeof(queue_length_));
+  // @@protoc_insertion_point(copy_constructor:exec.bit.control.WorkQueueStatus)
 }
 
 void WorkQueueStatus::SharedCtor() {
-  _cached_size_ = 0;
-  endpoint_ = NULL;
-  queue_length_ = 0;
-  report_time_ = GOOGLE_LONGLONG(0);
-  ::memset(_has_bits_, 0, sizeof(_has_bits_));
+  ::memset(&endpoint_, 0, static_cast<size_t>(
+      reinterpret_cast<char*>(&queue_length_) -
+      reinterpret_cast<char*>(&endpoint_)) + sizeof(queue_length_));
 }
 
 WorkQueueStatus::~WorkQueueStatus() {
+  // @@protoc_insertion_point(destructor:exec.bit.control.WorkQueueStatus)
   SharedDtor();
 }
 
 void WorkQueueStatus::SharedDtor() {
-  if (this != default_instance_) {
-    delete endpoint_;
-  }
+  if (this != internal_default_instance()) delete endpoint_;
 }
 
 void WorkQueueStatus::SetCachedSize(int size) const {
-  GOOGLE_SAFE_CONCURRENT_WRITES_BEGIN();
-  _cached_size_ = size;
-  GOOGLE_SAFE_CONCURRENT_WRITES_END();
+  _cached_size_.Set(size);
 }
 const ::google::protobuf::Descriptor* WorkQueueStatus::descriptor() {
-  protobuf_AssignDescriptorsOnce();
-  return WorkQueueStatus_descriptor_;
+  ::protobuf_BitControl_2eproto::protobuf_AssignDescriptorsOnce();
+  return ::protobuf_BitControl_2eproto::file_level_metadata[kIndexInFileMessages].descriptor;
 }
 
 const WorkQueueStatus& WorkQueueStatus::default_instance() {
-  if (default_instance_ == NULL) protobuf_AddDesc_BitControl_2eproto();
-  return *default_instance_;
+  ::google::protobuf::internal::InitSCC(&protobuf_BitControl_2eproto::scc_info_WorkQueueStatus.base);
+  return *internal_default_instance();
 }
 
-WorkQueueStatus* WorkQueueStatus::default_instance_ = NULL;
-
-WorkQueueStatus* WorkQueueStatus::New() const {
-  return new WorkQueueStatus;
-}
 
 void WorkQueueStatus::Clear() {
-  if (_has_bits_[0 / 32] & (0xffu << (0 % 32))) {
-    if (has_endpoint()) {
-      if (endpoint_ != NULL) endpoint_->::exec::DrillbitEndpoint::Clear();
-    }
-    queue_length_ = 0;
-    report_time_ = GOOGLE_LONGLONG(0);
+// @@protoc_insertion_point(message_clear_start:exec.bit.control.WorkQueueStatus)
+  ::google::protobuf::uint32 cached_has_bits = 0;
+  // Prevent compiler warnings about cached_has_bits being unused
+  (void) cached_has_bits;
+
+  cached_has_bits = _has_bits_[0];
+  if (cached_has_bits & 0x00000001u) {
+    GOOGLE_DCHECK(endpoint_ != NULL);
+    endpoint_->Clear();
   }
-  ::memset(_has_bits_, 0, sizeof(_has_bits_));
-  mutable_unknown_fields()->Clear();
+  if (cached_has_bits & 6u) {
+    ::memset(&report_time_, 0, static_cast<size_t>(
+        reinterpret_cast<char*>(&queue_length_) -
+        reinterpret_cast<char*>(&report_time_)) + sizeof(queue_length_));
+  }
+  _has_bits_.Clear();
+  _internal_metadata_.Clear();
 }
 
 bool WorkQueueStatus::MergePartialFromCodedStream(
     ::google::protobuf::io::CodedInputStream* input) {
-#define DO_(EXPRESSION) if (!(EXPRESSION)) return false
+#define DO_(EXPRESSION) if (!GOOGLE_PREDICT_TRUE(EXPRESSION)) goto failure
   ::google::protobuf::uint32 tag;
-  while ((tag = input->ReadTag()) != 0) {
+  // @@protoc_insertion_point(parse_start:exec.bit.control.WorkQueueStatus)
+  for (;;) {
+    ::std::pair<::google::protobuf::uint32, bool> p = input->ReadTagWithCutoffNoLastTag(127u);
+    tag = p.first;
+    if (!p.second) goto handle_unusual;
     switch (::google::protobuf::internal::WireFormatLite::GetTagFieldNumber(tag)) {
       // optional .exec.DrillbitEndpoint endpoint = 1;
       case 1: {
-        if (::google::protobuf::internal::WireFormatLite::GetTagWireType(tag) ==
-            ::google::protobuf::internal::WireFormatLite::WIRETYPE_LENGTH_DELIMITED) {
-          DO_(::google::protobuf::internal::WireFormatLite::ReadMessageNoVirtual(
+        if (static_cast< ::google::protobuf::uint8>(tag) ==
+            static_cast< ::google::protobuf::uint8>(10u /* 10 & 0xFF */)) {
+          DO_(::google::protobuf::internal::WireFormatLite::ReadMessage(
                input, mutable_endpoint()));
         } else {
-          goto handle_uninterpreted;
+          goto handle_unusual;
         }
-        if (input->ExpectTag(16)) goto parse_queue_length;
         break;
       }
 
       // optional int32 queue_length = 2;
       case 2: {
-        if (::google::protobuf::internal::WireFormatLite::GetTagWireType(tag) ==
-            ::google::protobuf::internal::WireFormatLite::WIRETYPE_VARINT) {
-         parse_queue_length:
+        if (static_cast< ::google::protobuf::uint8>(tag) ==
+            static_cast< ::google::protobuf::uint8>(16u /* 16 & 0xFF */)) {
+          set_has_queue_length();
           DO_((::google::protobuf::internal::WireFormatLite::ReadPrimitive<
                    ::google::protobuf::int32, ::google::protobuf::internal::WireFormatLite::TYPE_INT32>(
                  input, &queue_length_)));
-          set_has_queue_length();
         } else {
-          goto handle_uninterpreted;
+          goto handle_unusual;
         }
-        if (input->ExpectTag(24)) goto parse_report_time;
         break;
       }
 
       // optional int64 report_time = 3;
       case 3: {
-        if (::google::protobuf::internal::WireFormatLite::GetTagWireType(tag) ==
-            ::google::protobuf::internal::WireFormatLite::WIRETYPE_VARINT) {
-         parse_report_time:
+        if (static_cast< ::google::protobuf::uint8>(tag) ==
+            static_cast< ::google::protobuf::uint8>(24u /* 24 & 0xFF */)) {
+          set_has_report_time();
           DO_((::google::protobuf::internal::WireFormatLite::ReadPrimitive<
                    ::google::protobuf::int64, ::google::protobuf::internal::WireFormatLite::TYPE_INT64>(
                  input, &report_time_)));
-          set_has_report_time();
         } else {
-          goto handle_uninterpreted;
+          goto handle_unusual;
         }
-        if (input->ExpectAtEnd()) return true;
         break;
       }
 
       default: {
-      handle_uninterpreted:
-        if (::google::protobuf::internal::WireFormatLite::GetTagWireType(tag) ==
-            ::google::protobuf::internal::WireFormatLite::WIRETYPE_END_GROUP) {
-          return true;
+      handle_unusual:
+        if (tag == 0) {
+          goto success;
         }
         DO_(::google::protobuf::internal::WireFormat::SkipField(
-              input, tag, mutable_unknown_fields()));
+              input, tag, _internal_metadata_.mutable_unknown_fields()));
         break;
       }
     }
   }
+success:
+  // @@protoc_insertion_point(parse_success:exec.bit.control.WorkQueueStatus)
   return true;
+failure:
+  // @@protoc_insertion_point(parse_failure:exec.bit.control.WorkQueueStatus)
+  return false;
 #undef DO_
 }
 
 void WorkQueueStatus::SerializeWithCachedSizes(
     ::google::protobuf::io::CodedOutputStream* output) const {
+  // @@protoc_insertion_point(serialize_start:exec.bit.control.WorkQueueStatus)
+  ::google::protobuf::uint32 cached_has_bits = 0;
+  (void) cached_has_bits;
+
+  cached_has_bits = _has_bits_[0];
   // optional .exec.DrillbitEndpoint endpoint = 1;
-  if (has_endpoint()) {
+  if (cached_has_bits & 0x00000001u) {
     ::google::protobuf::internal::WireFormatLite::WriteMessageMaybeToArray(
-      1, this->endpoint(), output);
+      1, this->_internal_endpoint(), output);
   }
 
   // optional int32 queue_length = 2;
-  if (has_queue_length()) {
+  if (cached_has_bits & 0x00000004u) {
     ::google::protobuf::internal::WireFormatLite::WriteInt32(2, this->queue_length(), output);
   }
 
   // optional int64 report_time = 3;
-  if (has_report_time()) {
+  if (cached_has_bits & 0x00000002u) {
     ::google::protobuf::internal::WireFormatLite::WriteInt64(3, this->report_time(), output);
   }
 
-  if (!unknown_fields().empty()) {
+  if (_internal_metadata_.have_unknown_fields()) {
     ::google::protobuf::internal::WireFormat::SerializeUnknownFields(
-        unknown_fields(), output);
+        _internal_metadata_.unknown_fields(), output);
   }
+  // @@protoc_insertion_point(serialize_end:exec.bit.control.WorkQueueStatus)
 }
 
-::google::protobuf::uint8* WorkQueueStatus::SerializeWithCachedSizesToArray(
-    ::google::protobuf::uint8* target) const {
+::google::protobuf::uint8* WorkQueueStatus::InternalSerializeWithCachedSizesToArray(
+    bool deterministic, ::google::protobuf::uint8* target) const {
+  (void)deterministic; // Unused
+  // @@protoc_insertion_point(serialize_to_array_start:exec.bit.control.WorkQueueStatus)
+  ::google::protobuf::uint32 cached_has_bits = 0;
+  (void) cached_has_bits;
+
+  cached_has_bits = _has_bits_[0];
   // optional .exec.DrillbitEndpoint endpoint = 1;
-  if (has_endpoint()) {
+  if (cached_has_bits & 0x00000001u) {
     target = ::google::protobuf::internal::WireFormatLite::
-      WriteMessageNoVirtualToArray(
-        1, this->endpoint(), target);
+      InternalWriteMessageToArray(
+        1, this->_internal_endpoint(), deterministic, target);
   }
 
   // optional int32 queue_length = 2;
-  if (has_queue_length()) {
+  if (cached_has_bits & 0x00000004u) {
     target = ::google::protobuf::internal::WireFormatLite::WriteInt32ToArray(2, this->queue_length(), target);
   }
 
   // optional int64 report_time = 3;
-  if (has_report_time()) {
+  if (cached_has_bits & 0x00000002u) {
     target = ::google::protobuf::internal::WireFormatLite::WriteInt64ToArray(3, this->report_time(), target);
   }
 
-  if (!unknown_fields().empty()) {
+  if (_internal_metadata_.have_unknown_fields()) {
     target = ::google::protobuf::internal::WireFormat::SerializeUnknownFieldsToArray(
-        unknown_fields(), target);
+        _internal_metadata_.unknown_fields(), target);
   }
+  // @@protoc_insertion_point(serialize_to_array_end:exec.bit.control.WorkQueueStatus)
   return target;
 }
 
-int WorkQueueStatus::ByteSize() const {
-  int total_size = 0;
+size_t WorkQueueStatus::ByteSizeLong() const {
+// @@protoc_insertion_point(message_byte_size_start:exec.bit.control.WorkQueueStatus)
+  size_t total_size = 0;
 
-  if (_has_bits_[0 / 32] & (0xffu << (0 % 32))) {
+  if (_internal_metadata_.have_unknown_fields()) {
+    total_size +=
+      ::google::protobuf::internal::WireFormat::ComputeUnknownFieldsSize(
+        _internal_metadata_.unknown_fields());
+  }
+  if (_has_bits_[0 / 32] & 7u) {
     // optional .exec.DrillbitEndpoint endpoint = 1;
     if (has_endpoint()) {
       total_size += 1 +
-        ::google::protobuf::internal::WireFormatLite::MessageSizeNoVirtual(
-          this->endpoint());
-    }
-
-    // optional int32 queue_length = 2;
-    if (has_queue_length()) {
-      total_size += 1 +
-        ::google::protobuf::internal::WireFormatLite::Int32Size(
-          this->queue_length());
+        ::google::protobuf::internal::WireFormatLite::MessageSize(
+          *endpoint_);
     }
 
     // optional int64 report_time = 3;
@@ -3441,345 +3890,436 @@ int WorkQueueStatus::ByteSize() const {
           this->report_time());
     }
 
+    // optional int32 queue_length = 2;
+    if (has_queue_length()) {
+      total_size += 1 +
+        ::google::protobuf::internal::WireFormatLite::Int32Size(
+          this->queue_length());
+    }
+
   }
-  if (!unknown_fields().empty()) {
-    total_size +=
-      ::google::protobuf::internal::WireFormat::ComputeUnknownFieldsSize(
-        unknown_fields());
-  }
-  GOOGLE_SAFE_CONCURRENT_WRITES_BEGIN();
-  _cached_size_ = total_size;
-  GOOGLE_SAFE_CONCURRENT_WRITES_END();
+  int cached_size = ::google::protobuf::internal::ToCachedSize(total_size);
+  SetCachedSize(cached_size);
   return total_size;
 }
 
 void WorkQueueStatus::MergeFrom(const ::google::protobuf::Message& from) {
-  GOOGLE_CHECK_NE(&from, this);
+// @@protoc_insertion_point(generalized_merge_from_start:exec.bit.control.WorkQueueStatus)
+  GOOGLE_DCHECK_NE(&from, this);
   const WorkQueueStatus* source =
-    ::google::protobuf::internal::dynamic_cast_if_available<const WorkQueueStatus*>(
-      &from);
+      ::google::protobuf::internal::DynamicCastToGenerated<const WorkQueueStatus>(
+          &from);
   if (source == NULL) {
+  // @@protoc_insertion_point(generalized_merge_from_cast_fail:exec.bit.control.WorkQueueStatus)
     ::google::protobuf::internal::ReflectionOps::Merge(from, this);
   } else {
+  // @@protoc_insertion_point(generalized_merge_from_cast_success:exec.bit.control.WorkQueueStatus)
     MergeFrom(*source);
   }
 }
 
 void WorkQueueStatus::MergeFrom(const WorkQueueStatus& from) {
-  GOOGLE_CHECK_NE(&from, this);
-  if (from._has_bits_[0 / 32] & (0xffu << (0 % 32))) {
-    if (from.has_endpoint()) {
+// @@protoc_insertion_point(class_specific_merge_from_start:exec.bit.control.WorkQueueStatus)
+  GOOGLE_DCHECK_NE(&from, this);
+  _internal_metadata_.MergeFrom(from._internal_metadata_);
+  ::google::protobuf::uint32 cached_has_bits = 0;
+  (void) cached_has_bits;
+
+  cached_has_bits = from._has_bits_[0];
+  if (cached_has_bits & 7u) {
+    if (cached_has_bits & 0x00000001u) {
       mutable_endpoint()->::exec::DrillbitEndpoint::MergeFrom(from.endpoint());
     }
-    if (from.has_queue_length()) {
-      set_queue_length(from.queue_length());
+    if (cached_has_bits & 0x00000002u) {
+      report_time_ = from.report_time_;
     }
-    if (from.has_report_time()) {
-      set_report_time(from.report_time());
+    if (cached_has_bits & 0x00000004u) {
+      queue_length_ = from.queue_length_;
     }
+    _has_bits_[0] |= cached_has_bits;
   }
-  mutable_unknown_fields()->MergeFrom(from.unknown_fields());
 }
 
 void WorkQueueStatus::CopyFrom(const ::google::protobuf::Message& from) {
+// @@protoc_insertion_point(generalized_copy_from_start:exec.bit.control.WorkQueueStatus)
   if (&from == this) return;
   Clear();
   MergeFrom(from);
 }
 
 void WorkQueueStatus::CopyFrom(const WorkQueueStatus& from) {
+// @@protoc_insertion_point(class_specific_copy_from_start:exec.bit.control.WorkQueueStatus)
   if (&from == this) return;
   Clear();
   MergeFrom(from);
 }
 
 bool WorkQueueStatus::IsInitialized() const {
-
   return true;
 }
 
 void WorkQueueStatus::Swap(WorkQueueStatus* other) {
-  if (other != this) {
-    std::swap(endpoint_, other->endpoint_);
-    std::swap(queue_length_, other->queue_length_);
-    std::swap(report_time_, other->report_time_);
-    std::swap(_has_bits_[0], other->_has_bits_[0]);
-    _unknown_fields_.Swap(&other->_unknown_fields_);
-    std::swap(_cached_size_, other->_cached_size_);
-  }
+  if (other == this) return;
+  InternalSwap(other);
+}
+void WorkQueueStatus::InternalSwap(WorkQueueStatus* other) {
+  using std::swap;
+  swap(endpoint_, other->endpoint_);
+  swap(report_time_, other->report_time_);
+  swap(queue_length_, other->queue_length_);
+  swap(_has_bits_[0], other->_has_bits_[0]);
+  _internal_metadata_.Swap(&other->_internal_metadata_);
 }
 
 ::google::protobuf::Metadata WorkQueueStatus::GetMetadata() const {
-  protobuf_AssignDescriptorsOnce();
-  ::google::protobuf::Metadata metadata;
-  metadata.descriptor = WorkQueueStatus_descriptor_;
-  metadata.reflection = WorkQueueStatus_reflection_;
-  return metadata;
+  protobuf_BitControl_2eproto::protobuf_AssignDescriptorsOnce();
+  return ::protobuf_BitControl_2eproto::file_level_metadata[kIndexInFileMessages];
 }
 
 
 // ===================================================================
 
-#ifndef _MSC_VER
+void FinishedReceiver::InitAsDefaultInstance() {
+  ::exec::bit::control::_FinishedReceiver_default_instance_._instance.get_mutable()->receiver_ = const_cast< ::exec::bit::FragmentHandle*>(
+      ::exec::bit::FragmentHandle::internal_default_instance());
+  ::exec::bit::control::_FinishedReceiver_default_instance_._instance.get_mutable()->sender_ = const_cast< ::exec::bit::FragmentHandle*>(
+      ::exec::bit::FragmentHandle::internal_default_instance());
+}
+void FinishedReceiver::clear_receiver() {
+  if (receiver_ != NULL) receiver_->Clear();
+  clear_has_receiver();
+}
+void FinishedReceiver::clear_sender() {
+  if (sender_ != NULL) sender_->Clear();
+  clear_has_sender();
+}
+#if !defined(_MSC_VER) || _MSC_VER >= 1900
 const int FinishedReceiver::kReceiverFieldNumber;
 const int FinishedReceiver::kSenderFieldNumber;
-#endif  // !_MSC_VER
+#endif  // !defined(_MSC_VER) || _MSC_VER >= 1900
 
 FinishedReceiver::FinishedReceiver()
-  : ::google::protobuf::Message() {
+  : ::google::protobuf::Message(), _internal_metadata_(NULL) {
+  ::google::protobuf::internal::InitSCC(
+      &protobuf_BitControl_2eproto::scc_info_FinishedReceiver.base);
   SharedCtor();
+  // @@protoc_insertion_point(constructor:exec.bit.control.FinishedReceiver)
 }
-
-void FinishedReceiver::InitAsDefaultInstance() {
-  receiver_ = const_cast< ::exec::bit::FragmentHandle*>(&::exec::bit::FragmentHandle::default_instance());
-  sender_ = const_cast< ::exec::bit::FragmentHandle*>(&::exec::bit::FragmentHandle::default_instance());
-}
-
 FinishedReceiver::FinishedReceiver(const FinishedReceiver& from)
-  : ::google::protobuf::Message() {
-  SharedCtor();
-  MergeFrom(from);
+  : ::google::protobuf::Message(),
+      _internal_metadata_(NULL),
+      _has_bits_(from._has_bits_) {
+  _internal_metadata_.MergeFrom(from._internal_metadata_);
+  if (from.has_receiver()) {
+    receiver_ = new ::exec::bit::FragmentHandle(*from.receiver_);
+  } else {
+    receiver_ = NULL;
+  }
+  if (from.has_sender()) {
+    sender_ = new ::exec::bit::FragmentHandle(*from.sender_);
+  } else {
+    sender_ = NULL;
+  }
+  // @@protoc_insertion_point(copy_constructor:exec.bit.control.FinishedReceiver)
 }
 
 void FinishedReceiver::SharedCtor() {
-  _cached_size_ = 0;
-  receiver_ = NULL;
-  sender_ = NULL;
-  ::memset(_has_bits_, 0, sizeof(_has_bits_));
+  ::memset(&receiver_, 0, static_cast<size_t>(
+      reinterpret_cast<char*>(&sender_) -
+      reinterpret_cast<char*>(&receiver_)) + sizeof(sender_));
 }
 
 FinishedReceiver::~FinishedReceiver() {
+  // @@protoc_insertion_point(destructor:exec.bit.control.FinishedReceiver)
   SharedDtor();
 }
 
 void FinishedReceiver::SharedDtor() {
-  if (this != default_instance_) {
-    delete receiver_;
-    delete sender_;
-  }
+  if (this != internal_default_instance()) delete receiver_;
+  if (this != internal_default_instance()) delete sender_;
 }
 
 void FinishedReceiver::SetCachedSize(int size) const {
-  GOOGLE_SAFE_CONCURRENT_WRITES_BEGIN();
-  _cached_size_ = size;
-  GOOGLE_SAFE_CONCURRENT_WRITES_END();
+  _cached_size_.Set(size);
 }
 const ::google::protobuf::Descriptor* FinishedReceiver::descriptor() {
-  protobuf_AssignDescriptorsOnce();
-  return FinishedReceiver_descriptor_;
+  ::protobuf_BitControl_2eproto::protobuf_AssignDescriptorsOnce();
+  return ::protobuf_BitControl_2eproto::file_level_metadata[kIndexInFileMessages].descriptor;
 }
 
 const FinishedReceiver& FinishedReceiver::default_instance() {
-  if (default_instance_ == NULL) protobuf_AddDesc_BitControl_2eproto();
-  return *default_instance_;
+  ::google::protobuf::internal::InitSCC(&protobuf_BitControl_2eproto::scc_info_FinishedReceiver.base);
+  return *internal_default_instance();
 }
 
-FinishedReceiver* FinishedReceiver::default_instance_ = NULL;
-
-FinishedReceiver* FinishedReceiver::New() const {
-  return new FinishedReceiver;
-}
 
 void FinishedReceiver::Clear() {
-  if (_has_bits_[0 / 32] & (0xffu << (0 % 32))) {
-    if (has_receiver()) {
-      if (receiver_ != NULL) receiver_->::exec::bit::FragmentHandle::Clear();
+// @@protoc_insertion_point(message_clear_start:exec.bit.control.FinishedReceiver)
+  ::google::protobuf::uint32 cached_has_bits = 0;
+  // Prevent compiler warnings about cached_has_bits being unused
+  (void) cached_has_bits;
+
+  cached_has_bits = _has_bits_[0];
+  if (cached_has_bits & 3u) {
+    if (cached_has_bits & 0x00000001u) {
+      GOOGLE_DCHECK(receiver_ != NULL);
+      receiver_->Clear();
     }
-    if (has_sender()) {
-      if (sender_ != NULL) sender_->::exec::bit::FragmentHandle::Clear();
+    if (cached_has_bits & 0x00000002u) {
+      GOOGLE_DCHECK(sender_ != NULL);
+      sender_->Clear();
     }
   }
-  ::memset(_has_bits_, 0, sizeof(_has_bits_));
-  mutable_unknown_fields()->Clear();
+  _has_bits_.Clear();
+  _internal_metadata_.Clear();
 }
 
 bool FinishedReceiver::MergePartialFromCodedStream(
     ::google::protobuf::io::CodedInputStream* input) {
-#define DO_(EXPRESSION) if (!(EXPRESSION)) return false
+#define DO_(EXPRESSION) if (!GOOGLE_PREDICT_TRUE(EXPRESSION)) goto failure
   ::google::protobuf::uint32 tag;
-  while ((tag = input->ReadTag()) != 0) {
+  // @@protoc_insertion_point(parse_start:exec.bit.control.FinishedReceiver)
+  for (;;) {
+    ::std::pair<::google::protobuf::uint32, bool> p = input->ReadTagWithCutoffNoLastTag(127u);
+    tag = p.first;
+    if (!p.second) goto handle_unusual;
     switch (::google::protobuf::internal::WireFormatLite::GetTagFieldNumber(tag)) {
       // optional .exec.bit.FragmentHandle receiver = 1;
       case 1: {
-        if (::google::protobuf::internal::WireFormatLite::GetTagWireType(tag) ==
-            ::google::protobuf::internal::WireFormatLite::WIRETYPE_LENGTH_DELIMITED) {
-          DO_(::google::protobuf::internal::WireFormatLite::ReadMessageNoVirtual(
+        if (static_cast< ::google::protobuf::uint8>(tag) ==
+            static_cast< ::google::protobuf::uint8>(10u /* 10 & 0xFF */)) {
+          DO_(::google::protobuf::internal::WireFormatLite::ReadMessage(
                input, mutable_receiver()));
         } else {
-          goto handle_uninterpreted;
+          goto handle_unusual;
         }
-        if (input->ExpectTag(18)) goto parse_sender;
         break;
       }
 
       // optional .exec.bit.FragmentHandle sender = 2;
       case 2: {
-        if (::google::protobuf::internal::WireFormatLite::GetTagWireType(tag) ==
-            ::google::protobuf::internal::WireFormatLite::WIRETYPE_LENGTH_DELIMITED) {
-         parse_sender:
-          DO_(::google::protobuf::internal::WireFormatLite::ReadMessageNoVirtual(
+        if (static_cast< ::google::protobuf::uint8>(tag) ==
+            static_cast< ::google::protobuf::uint8>(18u /* 18 & 0xFF */)) {
+          DO_(::google::protobuf::internal::WireFormatLite::ReadMessage(
                input, mutable_sender()));
         } else {
-          goto handle_uninterpreted;
+          goto handle_unusual;
         }
-        if (input->ExpectAtEnd()) return true;
         break;
       }
 
       default: {
-      handle_uninterpreted:
-        if (::google::protobuf::internal::WireFormatLite::GetTagWireType(tag) ==
-            ::google::protobuf::internal::WireFormatLite::WIRETYPE_END_GROUP) {
-          return true;
+      handle_unusual:
+        if (tag == 0) {
+          goto success;
         }
         DO_(::google::protobuf::internal::WireFormat::SkipField(
-              input, tag, mutable_unknown_fields()));
+              input, tag, _internal_metadata_.mutable_unknown_fields()));
         break;
       }
     }
   }
+success:
+  // @@protoc_insertion_point(parse_success:exec.bit.control.FinishedReceiver)
   return true;
+failure:
+  // @@protoc_insertion_point(parse_failure:exec.bit.control.FinishedReceiver)
+  return false;
 #undef DO_
 }
 
 void FinishedReceiver::SerializeWithCachedSizes(
     ::google::protobuf::io::CodedOutputStream* output) const {
+  // @@protoc_insertion_point(serialize_start:exec.bit.control.FinishedReceiver)
+  ::google::protobuf::uint32 cached_has_bits = 0;
+  (void) cached_has_bits;
+
+  cached_has_bits = _has_bits_[0];
   // optional .exec.bit.FragmentHandle receiver = 1;
-  if (has_receiver()) {
+  if (cached_has_bits & 0x00000001u) {
     ::google::protobuf::internal::WireFormatLite::WriteMessageMaybeToArray(
-      1, this->receiver(), output);
+      1, this->_internal_receiver(), output);
   }
 
   // optional .exec.bit.FragmentHandle sender = 2;
-  if (has_sender()) {
+  if (cached_has_bits & 0x00000002u) {
     ::google::protobuf::internal::WireFormatLite::WriteMessageMaybeToArray(
-      2, this->sender(), output);
+      2, this->_internal_sender(), output);
   }
 
-  if (!unknown_fields().empty()) {
+  if (_internal_metadata_.have_unknown_fields()) {
     ::google::protobuf::internal::WireFormat::SerializeUnknownFields(
-        unknown_fields(), output);
+        _internal_metadata_.unknown_fields(), output);
   }
+  // @@protoc_insertion_point(serialize_end:exec.bit.control.FinishedReceiver)
 }
 
-::google::protobuf::uint8* FinishedReceiver::SerializeWithCachedSizesToArray(
-    ::google::protobuf::uint8* target) const {
+::google::protobuf::uint8* FinishedReceiver::InternalSerializeWithCachedSizesToArray(
+    bool deterministic, ::google::protobuf::uint8* target) const {
+  (void)deterministic; // Unused
+  // @@protoc_insertion_point(serialize_to_array_start:exec.bit.control.FinishedReceiver)
+  ::google::protobuf::uint32 cached_has_bits = 0;
+  (void) cached_has_bits;
+
+  cached_has_bits = _has_bits_[0];
   // optional .exec.bit.FragmentHandle receiver = 1;
-  if (has_receiver()) {
+  if (cached_has_bits & 0x00000001u) {
     target = ::google::protobuf::internal::WireFormatLite::
-      WriteMessageNoVirtualToArray(
-        1, this->receiver(), target);
+      InternalWriteMessageToArray(
+        1, this->_internal_receiver(), deterministic, target);
   }
 
   // optional .exec.bit.FragmentHandle sender = 2;
-  if (has_sender()) {
+  if (cached_has_bits & 0x00000002u) {
     target = ::google::protobuf::internal::WireFormatLite::
-      WriteMessageNoVirtualToArray(
-        2, this->sender(), target);
+      InternalWriteMessageToArray(
+        2, this->_internal_sender(), deterministic, target);
   }
 
-  if (!unknown_fields().empty()) {
+  if (_internal_metadata_.have_unknown_fields()) {
     target = ::google::protobuf::internal::WireFormat::SerializeUnknownFieldsToArray(
-        unknown_fields(), target);
+        _internal_metadata_.unknown_fields(), target);
   }
+  // @@protoc_insertion_point(serialize_to_array_end:exec.bit.control.FinishedReceiver)
   return target;
 }
 
-int FinishedReceiver::ByteSize() const {
-  int total_size = 0;
+size_t FinishedReceiver::ByteSizeLong() const {
+// @@protoc_insertion_point(message_byte_size_start:exec.bit.control.FinishedReceiver)
+  size_t total_size = 0;
 
-  if (_has_bits_[0 / 32] & (0xffu << (0 % 32))) {
+  if (_internal_metadata_.have_unknown_fields()) {
+    total_size +=
+      ::google::protobuf::internal::WireFormat::ComputeUnknownFieldsSize(
+        _internal_metadata_.unknown_fields());
+  }
+  if (_has_bits_[0 / 32] & 3u) {
     // optional .exec.bit.FragmentHandle receiver = 1;
     if (has_receiver()) {
       total_size += 1 +
-        ::google::protobuf::internal::WireFormatLite::MessageSizeNoVirtual(
-          this->receiver());
+        ::google::protobuf::internal::WireFormatLite::MessageSize(
+          *receiver_);
     }
 
     // optional .exec.bit.FragmentHandle sender = 2;
     if (has_sender()) {
       total_size += 1 +
-        ::google::protobuf::internal::WireFormatLite::MessageSizeNoVirtual(
-          this->sender());
+        ::google::protobuf::internal::WireFormatLite::MessageSize(
+          *sender_);
     }
 
   }
-  if (!unknown_fields().empty()) {
-    total_size +=
-      ::google::protobuf::internal::WireFormat::ComputeUnknownFieldsSize(
-        unknown_fields());
-  }
-  GOOGLE_SAFE_CONCURRENT_WRITES_BEGIN();
-  _cached_size_ = total_size;
-  GOOGLE_SAFE_CONCURRENT_WRITES_END();
+  int cached_size = ::google::protobuf::internal::ToCachedSize(total_size);
+  SetCachedSize(cached_size);
   return total_size;
 }
 
 void FinishedReceiver::MergeFrom(const ::google::protobuf::Message& from) {
-  GOOGLE_CHECK_NE(&from, this);
+// @@protoc_insertion_point(generalized_merge_from_start:exec.bit.control.FinishedReceiver)
+  GOOGLE_DCHECK_NE(&from, this);
   const FinishedReceiver* source =
-    ::google::protobuf::internal::dynamic_cast_if_available<const FinishedReceiver*>(
-      &from);
+      ::google::protobuf::internal::DynamicCastToGenerated<const FinishedReceiver>(
+          &from);
   if (source == NULL) {
+  // @@protoc_insertion_point(generalized_merge_from_cast_fail:exec.bit.control.FinishedReceiver)
     ::google::protobuf::internal::ReflectionOps::Merge(from, this);
   } else {
+  // @@protoc_insertion_point(generalized_merge_from_cast_success:exec.bit.control.FinishedReceiver)
     MergeFrom(*source);
   }
 }
 
 void FinishedReceiver::MergeFrom(const FinishedReceiver& from) {
-  GOOGLE_CHECK_NE(&from, this);
-  if (from._has_bits_[0 / 32] & (0xffu << (0 % 32))) {
-    if (from.has_receiver()) {
+// @@protoc_insertion_point(class_specific_merge_from_start:exec.bit.control.FinishedReceiver)
+  GOOGLE_DCHECK_NE(&from, this);
+  _internal_metadata_.MergeFrom(from._internal_metadata_);
+  ::google::protobuf::uint32 cached_has_bits = 0;
+  (void) cached_has_bits;
+
+  cached_has_bits = from._has_bits_[0];
+  if (cached_has_bits & 3u) {
+    if (cached_has_bits & 0x00000001u) {
       mutable_receiver()->::exec::bit::FragmentHandle::MergeFrom(from.receiver());
     }
-    if (from.has_sender()) {
+    if (cached_has_bits & 0x00000002u) {
       mutable_sender()->::exec::bit::FragmentHandle::MergeFrom(from.sender());
     }
   }
-  mutable_unknown_fields()->MergeFrom(from.unknown_fields());
 }
 
 void FinishedReceiver::CopyFrom(const ::google::protobuf::Message& from) {
+// @@protoc_insertion_point(generalized_copy_from_start:exec.bit.control.FinishedReceiver)
   if (&from == this) return;
   Clear();
   MergeFrom(from);
 }
 
 void FinishedReceiver::CopyFrom(const FinishedReceiver& from) {
+// @@protoc_insertion_point(class_specific_copy_from_start:exec.bit.control.FinishedReceiver)
   if (&from == this) return;
   Clear();
   MergeFrom(from);
 }
 
 bool FinishedReceiver::IsInitialized() const {
-
   return true;
 }
 
 void FinishedReceiver::Swap(FinishedReceiver* other) {
-  if (other != this) {
-    std::swap(receiver_, other->receiver_);
-    std::swap(sender_, other->sender_);
-    std::swap(_has_bits_[0], other->_has_bits_[0]);
-    _unknown_fields_.Swap(&other->_unknown_fields_);
-    std::swap(_cached_size_, other->_cached_size_);
-  }
+  if (other == this) return;
+  InternalSwap(other);
+}
+void FinishedReceiver::InternalSwap(FinishedReceiver* other) {
+  using std::swap;
+  swap(receiver_, other->receiver_);
+  swap(sender_, other->sender_);
+  swap(_has_bits_[0], other->_has_bits_[0]);
+  _internal_metadata_.Swap(&other->_internal_metadata_);
 }
 
 ::google::protobuf::Metadata FinishedReceiver::GetMetadata() const {
-  protobuf_AssignDescriptorsOnce();
-  ::google::protobuf::Metadata metadata;
-  metadata.descriptor = FinishedReceiver_descriptor_;
-  metadata.reflection = FinishedReceiver_reflection_;
-  return metadata;
+  protobuf_BitControl_2eproto::protobuf_AssignDescriptorsOnce();
+  return ::protobuf_BitControl_2eproto::file_level_metadata[kIndexInFileMessages];
 }
 
 
 // @@protoc_insertion_point(namespace_scope)
-
 }  // namespace control
 }  // namespace bit
 }  // namespace exec
+namespace google {
+namespace protobuf {
+template<> GOOGLE_PROTOBUF_ATTRIBUTE_NOINLINE ::exec::bit::control::BitControlHandshake* Arena::CreateMaybeMessage< ::exec::bit::control::BitControlHandshake >(Arena* arena) {
+  return Arena::CreateInternal< ::exec::bit::control::BitControlHandshake >(arena);
+}
+template<> GOOGLE_PROTOBUF_ATTRIBUTE_NOINLINE ::exec::bit::control::BitStatus* Arena::CreateMaybeMessage< ::exec::bit::control::BitStatus >(Arena* arena) {
+  return Arena::CreateInternal< ::exec::bit::control::BitStatus >(arena);
+}
+template<> GOOGLE_PROTOBUF_ATTRIBUTE_NOINLINE ::exec::bit::control::FragmentStatus* Arena::CreateMaybeMessage< ::exec::bit::control::FragmentStatus >(Arena* arena) {
+  return Arena::CreateInternal< ::exec::bit::control::FragmentStatus >(arena);
+}
+template<> GOOGLE_PROTOBUF_ATTRIBUTE_NOINLINE ::exec::bit::control::InitializeFragments* Arena::CreateMaybeMessage< ::exec::bit::control::InitializeFragments >(Arena* arena) {
+  return Arena::CreateInternal< ::exec::bit::control::InitializeFragments >(arena);
+}
+template<> GOOGLE_PROTOBUF_ATTRIBUTE_NOINLINE ::exec::bit::control::CustomMessage* Arena::CreateMaybeMessage< ::exec::bit::control::CustomMessage >(Arena* arena) {
+  return Arena::CreateInternal< ::exec::bit::control::CustomMessage >(arena);
+}
+template<> GOOGLE_PROTOBUF_ATTRIBUTE_NOINLINE ::exec::bit::control::PlanFragment* Arena::CreateMaybeMessage< ::exec::bit::control::PlanFragment >(Arena* arena) {
+  return Arena::CreateInternal< ::exec::bit::control::PlanFragment >(arena);
+}
+template<> GOOGLE_PROTOBUF_ATTRIBUTE_NOINLINE ::exec::bit::control::Collector* Arena::CreateMaybeMessage< ::exec::bit::control::Collector >(Arena* arena) {
+  return Arena::CreateInternal< ::exec::bit::control::Collector >(arena);
+}
+template<> GOOGLE_PROTOBUF_ATTRIBUTE_NOINLINE ::exec::bit::control::QueryContextInformation* Arena::CreateMaybeMessage< ::exec::bit::control::QueryContextInformation >(Arena* arena) {
+  return Arena::CreateInternal< ::exec::bit::control::QueryContextInformation >(arena);
+}
+template<> GOOGLE_PROTOBUF_ATTRIBUTE_NOINLINE ::exec::bit::control::WorkQueueStatus* Arena::CreateMaybeMessage< ::exec::bit::control::WorkQueueStatus >(Arena* arena) {
+  return Arena::CreateInternal< ::exec::bit::control::WorkQueueStatus >(arena);
+}
+template<> GOOGLE_PROTOBUF_ATTRIBUTE_NOINLINE ::exec::bit::control::FinishedReceiver* Arena::CreateMaybeMessage< ::exec::bit::control::FinishedReceiver >(Arena* arena) {
+  return Arena::CreateInternal< ::exec::bit::control::FinishedReceiver >(arena);
+}
+}  // namespace protobuf
+}  // namespace google
 
 // @@protoc_insertion_point(global_scope)
diff --git a/contrib/native/client/src/protobuf/BitControl.pb.h b/contrib/native/client/src/protobuf/BitControl.pb.h
index 400c901..abfda10 100644
--- a/contrib/native/client/src/protobuf/BitControl.pb.h
+++ b/contrib/native/client/src/protobuf/BitControl.pb.h
@@ -1,54 +1,107 @@
 // Generated by the protocol buffer compiler.  DO NOT EDIT!
 // source: BitControl.proto
 
-#ifndef PROTOBUF_BitControl_2eproto__INCLUDED
-#define PROTOBUF_BitControl_2eproto__INCLUDED
+#ifndef PROTOBUF_INCLUDED_BitControl_2eproto
+#define PROTOBUF_INCLUDED_BitControl_2eproto
 
 #include <string>
 
 #include <google/protobuf/stubs/common.h>
 
-#if GOOGLE_PROTOBUF_VERSION < 2005000
+#if GOOGLE_PROTOBUF_VERSION < 3006001
 #error This file was generated by a newer version of protoc which is
 #error incompatible with your Protocol Buffer headers.  Please update
 #error your headers.
 #endif
-#if 2005000 < GOOGLE_PROTOBUF_MIN_PROTOC_VERSION
+#if 3006001 < GOOGLE_PROTOBUF_MIN_PROTOC_VERSION
 #error This file was generated by an older version of protoc which is
 #error incompatible with your Protocol Buffer headers.  Please
 #error regenerate this file with a newer version of protoc.
 #endif
 
+#include <google/protobuf/io/coded_stream.h>
+#include <google/protobuf/arena.h>
+#include <google/protobuf/arenastring.h>
+#include <google/protobuf/generated_message_table_driven.h>
 #include <google/protobuf/generated_message_util.h>
+#include <google/protobuf/inlined_string_field.h>
+#include <google/protobuf/metadata.h>
 #include <google/protobuf/message.h>
-#include <google/protobuf/repeated_field.h>
-#include <google/protobuf/extension_set.h>
+#include <google/protobuf/repeated_field.h>  // IWYU pragma: export
+#include <google/protobuf/extension_set.h>  // IWYU pragma: export
 #include <google/protobuf/generated_enum_reflection.h>
 #include <google/protobuf/unknown_field_set.h>
 #include "ExecutionProtos.pb.h"
 #include "Coordination.pb.h"
 #include "UserBitShared.pb.h"
 // @@protoc_insertion_point(includes)
-
+#define PROTOBUF_INTERNAL_EXPORT_protobuf_BitControl_2eproto 
+
+namespace protobuf_BitControl_2eproto {
+// Internal implementation detail -- do not use these members.
+struct TableStruct {
+  static const ::google::protobuf::internal::ParseTableField entries[];
+  static const ::google::protobuf::internal::AuxillaryParseTableField aux[];
+  static const ::google::protobuf::internal::ParseTable schema[10];
+  static const ::google::protobuf::internal::FieldMetadata field_metadata[];
+  static const ::google::protobuf::internal::SerializationTable serialization_table[];
+  static const ::google::protobuf::uint32 offsets[];
+};
+void AddDescriptors();
+}  // namespace protobuf_BitControl_2eproto
 namespace exec {
 namespace bit {
 namespace control {
-
-// Internal implementation detail -- do not call these.
-void  protobuf_AddDesc_BitControl_2eproto();
-void protobuf_AssignDesc_BitControl_2eproto();
-void protobuf_ShutdownFile_BitControl_2eproto();
-
 class BitControlHandshake;
+class BitControlHandshakeDefaultTypeInternal;
+extern BitControlHandshakeDefaultTypeInternal _BitControlHandshake_default_instance_;
 class BitStatus;
+class BitStatusDefaultTypeInternal;
+extern BitStatusDefaultTypeInternal _BitStatus_default_instance_;
+class Collector;
+class CollectorDefaultTypeInternal;
+extern CollectorDefaultTypeInternal _Collector_default_instance_;
+class CustomMessage;
+class CustomMessageDefaultTypeInternal;
+extern CustomMessageDefaultTypeInternal _CustomMessage_default_instance_;
+class FinishedReceiver;
+class FinishedReceiverDefaultTypeInternal;
+extern FinishedReceiverDefaultTypeInternal _FinishedReceiver_default_instance_;
 class FragmentStatus;
+class FragmentStatusDefaultTypeInternal;
+extern FragmentStatusDefaultTypeInternal _FragmentStatus_default_instance_;
 class InitializeFragments;
-class CustomMessage;
+class InitializeFragmentsDefaultTypeInternal;
+extern InitializeFragmentsDefaultTypeInternal _InitializeFragments_default_instance_;
 class PlanFragment;
-class Collector;
+class PlanFragmentDefaultTypeInternal;
+extern PlanFragmentDefaultTypeInternal _PlanFragment_default_instance_;
 class QueryContextInformation;
+class QueryContextInformationDefaultTypeInternal;
+extern QueryContextInformationDefaultTypeInternal _QueryContextInformation_default_instance_;
 class WorkQueueStatus;
-class FinishedReceiver;
+class WorkQueueStatusDefaultTypeInternal;
+extern WorkQueueStatusDefaultTypeInternal _WorkQueueStatus_default_instance_;
+}  // namespace control
+}  // namespace bit
+}  // namespace exec
+namespace google {
+namespace protobuf {
+template<> ::exec::bit::control::BitControlHandshake* Arena::CreateMaybeMessage<::exec::bit::control::BitControlHandshake>(Arena*);
+template<> ::exec::bit::control::BitStatus* Arena::CreateMaybeMessage<::exec::bit::control::BitStatus>(Arena*);
+template<> ::exec::bit::control::Collector* Arena::CreateMaybeMessage<::exec::bit::control::Collector>(Arena*);
+template<> ::exec::bit::control::CustomMessage* Arena::CreateMaybeMessage<::exec::bit::control::CustomMessage>(Arena*);
+template<> ::exec::bit::control::FinishedReceiver* Arena::CreateMaybeMessage<::exec::bit::control::FinishedReceiver>(Arena*);
+template<> ::exec::bit::control::FragmentStatus* Arena::CreateMaybeMessage<::exec::bit::control::FragmentStatus>(Arena*);
+template<> ::exec::bit::control::InitializeFragments* Arena::CreateMaybeMessage<::exec::bit::control::InitializeFragments>(Arena*);
+template<> ::exec::bit::control::PlanFragment* Arena::CreateMaybeMessage<::exec::bit::control::PlanFragment>(Arena*);
+template<> ::exec::bit::control::QueryContextInformation* Arena::CreateMaybeMessage<::exec::bit::control::QueryContextInformation>(Arena*);
+template<> ::exec::bit::control::WorkQueueStatus* Arena::CreateMaybeMessage<::exec::bit::control::WorkQueueStatus>(Arena*);
+}  // namespace protobuf
+}  // namespace google
+namespace exec {
+namespace bit {
+namespace control {
 
 enum RpcType {
   HANDSHAKE = 0,
@@ -87,7 +140,7 @@ inline bool RpcType_Parse(
 }
 // ===================================================================
 
-class BitControlHandshake : public ::google::protobuf::Message {
+class BitControlHandshake : public ::google::protobuf::Message /* @@protoc_insertion_point(class_definition:exec.bit.control.BitControlHandshake) */ {
  public:
   BitControlHandshake();
   virtual ~BitControlHandshake();
@@ -98,117 +151,158 @@ class BitControlHandshake : public ::google::protobuf::Message {
     CopyFrom(from);
     return *this;
   }
+  #if LANG_CXX11
+  BitControlHandshake(BitControlHandshake&& from) noexcept
+    : BitControlHandshake() {
+    *this = ::std::move(from);
+  }
 
+  inline BitControlHandshake& operator=(BitControlHandshake&& from) noexcept {
+    if (GetArenaNoVirtual() == from.GetArenaNoVirtual()) {
+      if (this != &from) InternalSwap(&from);
+    } else {
+      CopyFrom(from);
+    }
+    return *this;
+  }
+  #endif
   inline const ::google::protobuf::UnknownFieldSet& unknown_fields() const {
-    return _unknown_fields_;
+    return _internal_metadata_.unknown_fields();
   }
-
   inline ::google::protobuf::UnknownFieldSet* mutable_unknown_fields() {
-    return &_unknown_fields_;
+    return _internal_metadata_.mutable_unknown_fields();
   }
 
   static const ::google::protobuf::Descriptor* descriptor();
   static const BitControlHandshake& default_instance();
 
+  static void InitAsDefaultInstance();  // FOR INTERNAL USE ONLY
+  static inline const BitControlHandshake* internal_default_instance() {
+    return reinterpret_cast<const BitControlHandshake*>(
+               &_BitControlHandshake_default_instance_);
+  }
+  static constexpr int kIndexInFileMessages =
+    0;
+
   void Swap(BitControlHandshake* other);
+  friend void swap(BitControlHandshake& a, BitControlHandshake& b) {
+    a.Swap(&b);
+  }
 
   // implements Message ----------------------------------------------
 
-  BitControlHandshake* New() const;
-  void CopyFrom(const ::google::protobuf::Message& from);
-  void MergeFrom(const ::google::protobuf::Message& from);
+  inline BitControlHandshake* New() const final {
+    return CreateMaybeMessage<BitControlHandshake>(NULL);
+  }
+
+  BitControlHandshake* New(::google::protobuf::Arena* arena) const final {
+    return CreateMaybeMessage<BitControlHandshake>(arena);
+  }
+  void CopyFrom(const ::google::protobuf::Message& from) final;
+  void MergeFrom(const ::google::protobuf::Message& from) final;
   void CopyFrom(const BitControlHandshake& from);
   void MergeFrom(const BitControlHandshake& from);
-  void Clear();
-  bool IsInitialized() const;
+  void Clear() final;
+  bool IsInitialized() const final;
 
-  int ByteSize() const;
+  size_t ByteSizeLong() const final;
   bool MergePartialFromCodedStream(
-      ::google::protobuf::io::CodedInputStream* input);
+      ::google::protobuf::io::CodedInputStream* input) final;
   void SerializeWithCachedSizes(
-      ::google::protobuf::io::CodedOutputStream* output) const;
-  ::google::protobuf::uint8* SerializeWithCachedSizesToArray(::google::protobuf::uint8* output) const;
-  int GetCachedSize() const { return _cached_size_; }
+      ::google::protobuf::io::CodedOutputStream* output) const final;
+  ::google::protobuf::uint8* InternalSerializeWithCachedSizesToArray(
+      bool deterministic, ::google::protobuf::uint8* target) const final;
+  int GetCachedSize() const final { return _cached_size_.Get(); }
+
   private:
   void SharedCtor();
   void SharedDtor();
-  void SetCachedSize(int size) const;
+  void SetCachedSize(int size) const final;
+  void InternalSwap(BitControlHandshake* other);
+  private:
+  inline ::google::protobuf::Arena* GetArenaNoVirtual() const {
+    return NULL;
+  }
+  inline void* MaybeArenaPtr() const {
+    return NULL;
+  }
   public:
 
-  ::google::protobuf::Metadata GetMetadata() const;
+  ::google::protobuf::Metadata GetMetadata() const final;
 
   // nested types ----------------------------------------------------
 
   // accessors -------------------------------------------------------
 
+  // repeated string authenticationMechanisms = 4;
+  int authenticationmechanisms_size() const;
+  void clear_authenticationmechanisms();
+  static const int kAuthenticationMechanismsFieldNumber = 4;
+  const ::std::string& authenticationmechanisms(int index) const;
+  ::std::string* mutable_authenticationmechanisms(int index);
+  void set_authenticationmechanisms(int index, const ::std::string& value);
+  #if LANG_CXX11
+  void set_authenticationmechanisms(int index, ::std::string&& value);
+  #endif
+  void set_authenticationmechanisms(int index, const char* value);
+  void set_authenticationmechanisms(int index, const char* value, size_t size);
+  ::std::string* add_authenticationmechanisms();
+  void add_authenticationmechanisms(const ::std::string& value);
+  #if LANG_CXX11
+  void add_authenticationmechanisms(::std::string&& value);
+  #endif
+  void add_authenticationmechanisms(const char* value);
+  void add_authenticationmechanisms(const char* value, size_t size);
+  const ::google::protobuf::RepeatedPtrField< ::std::string>& authenticationmechanisms() const;
+  ::google::protobuf::RepeatedPtrField< ::std::string>* mutable_authenticationmechanisms();
+
+  // optional .exec.DrillbitEndpoint endpoint = 3;
+  bool has_endpoint() const;
+  void clear_endpoint();
+  static const int kEndpointFieldNumber = 3;
+  private:
+  const ::exec::DrillbitEndpoint& _internal_endpoint() const;
+  public:
+  const ::exec::DrillbitEndpoint& endpoint() const;
+  ::exec::DrillbitEndpoint* release_endpoint();
+  ::exec::DrillbitEndpoint* mutable_endpoint();
+  void set_allocated_endpoint(::exec::DrillbitEndpoint* endpoint);
+
   // optional int32 rpc_version = 1;
-  inline bool has_rpc_version() const;
-  inline void clear_rpc_version();
+  bool has_rpc_version() const;
+  void clear_rpc_version();
   static const int kRpcVersionFieldNumber = 1;
-  inline ::google::protobuf::int32 rpc_version() const;
-  inline void set_rpc_version(::google::protobuf::int32 value);
+  ::google::protobuf::int32 rpc_version() const;
+  void set_rpc_version(::google::protobuf::int32 value);
 
   // optional .exec.shared.RpcChannel channel = 2 [default = BIT_CONTROL];
-  inline bool has_channel() const;
-  inline void clear_channel();
+  bool has_channel() const;
+  void clear_channel();
   static const int kChannelFieldNumber = 2;
-  inline ::exec::shared::RpcChannel channel() const;
-  inline void set_channel(::exec::shared::RpcChannel value);
-
-  // optional .exec.DrillbitEndpoint endpoint = 3;
-  inline bool has_endpoint() const;
-  inline void clear_endpoint();
-  static const int kEndpointFieldNumber = 3;
-  inline const ::exec::DrillbitEndpoint& endpoint() const;
-  inline ::exec::DrillbitEndpoint* mutable_endpoint();
-  inline ::exec::DrillbitEndpoint* release_endpoint();
-  inline void set_allocated_endpoint(::exec::DrillbitEndpoint* endpoint);
-
-  // repeated string authenticationMechanisms = 4;
-  inline int authenticationmechanisms_size() const;
-  inline void clear_authenticationmechanisms();
-  static const int kAuthenticationMechanismsFieldNumber = 4;
-  inline const ::std::string& authenticationmechanisms(int index) const;
-  inline ::std::string* mutable_authenticationmechanisms(int index);
-  inline void set_authenticationmechanisms(int index, const ::std::string& value);
-  inline void set_authenticationmechanisms(int index, const char* value);
-  inline void set_authenticationmechanisms(int index, const char* value, size_t size);
-  inline ::std::string* add_authenticationmechanisms();
-  inline void add_authenticationmechanisms(const ::std::string& value);
-  inline void add_authenticationmechanisms(const char* value);
-  inline void add_authenticationmechanisms(const char* value, size_t size);
-  inline const ::google::protobuf::RepeatedPtrField< ::std::string>& authenticationmechanisms() const;
-  inline ::google::protobuf::RepeatedPtrField< ::std::string>* mutable_authenticationmechanisms();
+  ::exec::shared::RpcChannel channel() const;
+  void set_channel(::exec::shared::RpcChannel value);
 
   // @@protoc_insertion_point(class_scope:exec.bit.control.BitControlHandshake)
  private:
-  inline void set_has_rpc_version();
-  inline void clear_has_rpc_version();
-  inline void set_has_channel();
-  inline void clear_has_channel();
-  inline void set_has_endpoint();
-  inline void clear_has_endpoint();
-
-  ::google::protobuf::UnknownFieldSet _unknown_fields_;
-
+  void set_has_rpc_version();
+  void clear_has_rpc_version();
+  void set_has_channel();
+  void clear_has_channel();
+  void set_has_endpoint();
+  void clear_has_endpoint();
+
+  ::google::protobuf::internal::InternalMetadataWithArena _internal_metadata_;
+  ::google::protobuf::internal::HasBits<1> _has_bits_;
+  mutable ::google::protobuf::internal::CachedSize _cached_size_;
+  ::google::protobuf::RepeatedPtrField< ::std::string> authenticationmechanisms_;
+  ::exec::DrillbitEndpoint* endpoint_;
   ::google::protobuf::int32 rpc_version_;
   int channel_;
-  ::exec::DrillbitEndpoint* endpoint_;
-  ::google::protobuf::RepeatedPtrField< ::std::string> authenticationmechanisms_;
-
-  mutable int _cached_size_;
-  ::google::protobuf::uint32 _has_bits_[(4 + 31) / 32];
-
-  friend void  protobuf_AddDesc_BitControl_2eproto();
-  friend void protobuf_AssignDesc_BitControl_2eproto();
-  friend void protobuf_ShutdownFile_BitControl_2eproto();
-
-  void InitAsDefaultInstance();
-  static BitControlHandshake* default_instance_;
+  friend struct ::protobuf_BitControl_2eproto::TableStruct;
 };
 // -------------------------------------------------------------------
 
-class BitStatus : public ::google::protobuf::Message {
+class BitStatus : public ::google::protobuf::Message /* @@protoc_insertion_point(class_definition:exec.bit.control.BitStatus) */ {
  public:
   BitStatus();
   virtual ~BitStatus();
@@ -219,81 +313,113 @@ class BitStatus : public ::google::protobuf::Message {
     CopyFrom(from);
     return *this;
   }
+  #if LANG_CXX11
+  BitStatus(BitStatus&& from) noexcept
+    : BitStatus() {
+    *this = ::std::move(from);
+  }
 
+  inline BitStatus& operator=(BitStatus&& from) noexcept {
+    if (GetArenaNoVirtual() == from.GetArenaNoVirtual()) {
+      if (this != &from) InternalSwap(&from);
+    } else {
+      CopyFrom(from);
+    }
+    return *this;
+  }
+  #endif
   inline const ::google::protobuf::UnknownFieldSet& unknown_fields() const {
-    return _unknown_fields_;
+    return _internal_metadata_.unknown_fields();
   }
-
   inline ::google::protobuf::UnknownFieldSet* mutable_unknown_fields() {
-    return &_unknown_fields_;
+    return _internal_metadata_.mutable_unknown_fields();
   }
 
   static const ::google::protobuf::Descriptor* descriptor();
   static const BitStatus& default_instance();
 
+  static void InitAsDefaultInstance();  // FOR INTERNAL USE ONLY
+  static inline const BitStatus* internal_default_instance() {
+    return reinterpret_cast<const BitStatus*>(
+               &_BitStatus_default_instance_);
+  }
+  static constexpr int kIndexInFileMessages =
+    1;
+
   void Swap(BitStatus* other);
+  friend void swap(BitStatus& a, BitStatus& b) {
+    a.Swap(&b);
+  }
 
   // implements Message ----------------------------------------------
 
-  BitStatus* New() const;
-  void CopyFrom(const ::google::protobuf::Message& from);
-  void MergeFrom(const ::google::protobuf::Message& from);
+  inline BitStatus* New() const final {
+    return CreateMaybeMessage<BitStatus>(NULL);
+  }
+
+  BitStatus* New(::google::protobuf::Arena* arena) const final {
+    return CreateMaybeMessage<BitStatus>(arena);
+  }
+  void CopyFrom(const ::google::protobuf::Message& from) final;
+  void MergeFrom(const ::google::protobuf::Message& from) final;
   void CopyFrom(const BitStatus& from);
   void MergeFrom(const BitStatus& from);
-  void Clear();
-  bool IsInitialized() const;
+  void Clear() final;
+  bool IsInitialized() const final;
 
-  int ByteSize() const;
+  size_t ByteSizeLong() const final;
   bool MergePartialFromCodedStream(
-      ::google::protobuf::io::CodedInputStream* input);
+      ::google::protobuf::io::CodedInputStream* input) final;
   void SerializeWithCachedSizes(
-      ::google::protobuf::io::CodedOutputStream* output) const;
-  ::google::protobuf::uint8* SerializeWithCachedSizesToArray(::google::protobuf::uint8* output) const;
-  int GetCachedSize() const { return _cached_size_; }
+      ::google::protobuf::io::CodedOutputStream* output) const final;
+  ::google::protobuf::uint8* InternalSerializeWithCachedSizesToArray(
+      bool deterministic, ::google::protobuf::uint8* target) const final;
+  int GetCachedSize() const final { return _cached_size_.Get(); }
+
   private:
   void SharedCtor();
   void SharedDtor();
-  void SetCachedSize(int size) const;
+  void SetCachedSize(int size) const final;
+  void InternalSwap(BitStatus* other);
+  private:
+  inline ::google::protobuf::Arena* GetArenaNoVirtual() const {
+    return NULL;
+  }
+  inline void* MaybeArenaPtr() const {
+    return NULL;
+  }
   public:
 
-  ::google::protobuf::Metadata GetMetadata() const;
+  ::google::protobuf::Metadata GetMetadata() const final;
 
   // nested types ----------------------------------------------------
 
   // accessors -------------------------------------------------------
 
   // repeated .exec.bit.control.FragmentStatus fragment_status = 1;
-  inline int fragment_status_size() const;
-  inline void clear_fragment_status();
+  int fragment_status_size() const;
+  void clear_fragment_status();
   static const int kFragmentStatusFieldNumber = 1;
-  inline const ::exec::bit::control::FragmentStatus& fragment_status(int index) const;
-  inline ::exec::bit::control::FragmentStatus* mutable_fragment_status(int index);
-  inline ::exec::bit::control::FragmentStatus* add_fragment_status();
-  inline const ::google::protobuf::RepeatedPtrField< ::exec::bit::control::FragmentStatus >&
-      fragment_status() const;
-  inline ::google::protobuf::RepeatedPtrField< ::exec::bit::control::FragmentStatus >*
+  ::exec::bit::control::FragmentStatus* mutable_fragment_status(int index);
+  ::google::protobuf::RepeatedPtrField< ::exec::bit::control::FragmentStatus >*
       mutable_fragment_status();
+  const ::exec::bit::control::FragmentStatus& fragment_status(int index) const;
+  ::exec::bit::control::FragmentStatus* add_fragment_status();
+  const ::google::protobuf::RepeatedPtrField< ::exec::bit::control::FragmentStatus >&
+      fragment_status() const;
 
   // @@protoc_insertion_point(class_scope:exec.bit.control.BitStatus)
  private:
 
-  ::google::protobuf::UnknownFieldSet _unknown_fields_;
-
+  ::google::protobuf::internal::InternalMetadataWithArena _internal_metadata_;
+  ::google::protobuf::internal::HasBits<1> _has_bits_;
+  mutable ::google::protobuf::internal::CachedSize _cached_size_;
   ::google::protobuf::RepeatedPtrField< ::exec::bit::control::FragmentStatus > fragment_status_;
-
-  mutable int _cached_size_;
-  ::google::protobuf::uint32 _has_bits_[(1 + 31) / 32];
-
-  friend void  protobuf_AddDesc_BitControl_2eproto();
-  friend void protobuf_AssignDesc_BitControl_2eproto();
-  friend void protobuf_ShutdownFile_BitControl_2eproto();
-
-  void InitAsDefaultInstance();
-  static BitStatus* default_instance_;
+  friend struct ::protobuf_BitControl_2eproto::TableStruct;
 };
 // -------------------------------------------------------------------
 
-class FragmentStatus : public ::google::protobuf::Message {
+class FragmentStatus : public ::google::protobuf::Message /* @@protoc_insertion_point(class_definition:exec.bit.control.FragmentStatus) */ {
  public:
   FragmentStatus();
   virtual ~FragmentStatus();
@@ -304,92 +430,130 @@ class FragmentStatus : public ::google::protobuf::Message {
     CopyFrom(from);
     return *this;
   }
+  #if LANG_CXX11
+  FragmentStatus(FragmentStatus&& from) noexcept
+    : FragmentStatus() {
+    *this = ::std::move(from);
+  }
 
+  inline FragmentStatus& operator=(FragmentStatus&& from) noexcept {
+    if (GetArenaNoVirtual() == from.GetArenaNoVirtual()) {
+      if (this != &from) InternalSwap(&from);
+    } else {
+      CopyFrom(from);
+    }
+    return *this;
+  }
+  #endif
   inline const ::google::protobuf::UnknownFieldSet& unknown_fields() const {
-    return _unknown_fields_;
+    return _internal_metadata_.unknown_fields();
   }
-
   inline ::google::protobuf::UnknownFieldSet* mutable_unknown_fields() {
-    return &_unknown_fields_;
+    return _internal_metadata_.mutable_unknown_fields();
   }
 
   static const ::google::protobuf::Descriptor* descriptor();
   static const FragmentStatus& default_instance();
 
+  static void InitAsDefaultInstance();  // FOR INTERNAL USE ONLY
+  static inline const FragmentStatus* internal_default_instance() {
+    return reinterpret_cast<const FragmentStatus*>(
+               &_FragmentStatus_default_instance_);
+  }
+  static constexpr int kIndexInFileMessages =
+    2;
+
   void Swap(FragmentStatus* other);
+  friend void swap(FragmentStatus& a, FragmentStatus& b) {
+    a.Swap(&b);
+  }
 
   // implements Message ----------------------------------------------
 
-  FragmentStatus* New() const;
-  void CopyFrom(const ::google::protobuf::Message& from);
-  void MergeFrom(const ::google::protobuf::Message& from);
+  inline FragmentStatus* New() const final {
+    return CreateMaybeMessage<FragmentStatus>(NULL);
+  }
+
+  FragmentStatus* New(::google::protobuf::Arena* arena) const final {
+    return CreateMaybeMessage<FragmentStatus>(arena);
+  }
+  void CopyFrom(const ::google::protobuf::Message& from) final;
+  void MergeFrom(const ::google::protobuf::Message& from) final;
   void CopyFrom(const FragmentStatus& from);
   void MergeFrom(const FragmentStatus& from);
-  void Clear();
-  bool IsInitialized() const;
+  void Clear() final;
+  bool IsInitialized() const final;
 
-  int ByteSize() const;
+  size_t ByteSizeLong() const final;
   bool MergePartialFromCodedStream(
-      ::google::protobuf::io::CodedInputStream* input);
+      ::google::protobuf::io::CodedInputStream* input) final;
   void SerializeWithCachedSizes(
-      ::google::protobuf::io::CodedOutputStream* output) const;
-  ::google::protobuf::uint8* SerializeWithCachedSizesToArray(::google::protobuf::uint8* output) const;
-  int GetCachedSize() const { return _cached_size_; }
+      ::google::protobuf::io::CodedOutputStream* output) const final;
+  ::google::protobuf::uint8* InternalSerializeWithCachedSizesToArray(
+      bool deterministic, ::google::protobuf::uint8* target) const final;
+  int GetCachedSize() const final { return _cached_size_.Get(); }
+
   private:
   void SharedCtor();
   void SharedDtor();
-  void SetCachedSize(int size) const;
+  void SetCachedSize(int size) const final;
+  void InternalSwap(FragmentStatus* other);
+  private:
+  inline ::google::protobuf::Arena* GetArenaNoVirtual() const {
+    return NULL;
+  }
+  inline void* MaybeArenaPtr() const {
+    return NULL;
+  }
   public:
 
-  ::google::protobuf::Metadata GetMetadata() const;
+  ::google::protobuf::Metadata GetMetadata() const final;
 
   // nested types ----------------------------------------------------
 
   // accessors -------------------------------------------------------
 
   // optional .exec.shared.MinorFragmentProfile profile = 1;
-  inline bool has_profile() const;
-  inline void clear_profile();
+  bool has_profile() const;
+  void clear_profile();
   static const int kProfileFieldNumber = 1;
-  inline const ::exec::shared::MinorFragmentProfile& profile() const;
-  inline ::exec::shared::MinorFragmentProfile* mutable_profile();
-  inline ::exec::shared::MinorFragmentProfile* release_profile();
-  inline void set_allocated_profile(::exec::shared::MinorFragmentProfile* profile);
+  private:
+  const ::exec::shared::MinorFragmentProfile& _internal_profile() const;
+  public:
+  const ::exec::shared::MinorFragmentProfile& profile() const;
+  ::exec::shared::MinorFragmentProfile* release_profile();
+  ::exec::shared::MinorFragmentProfile* mutable_profile();
+  void set_allocated_profile(::exec::shared::MinorFragmentProfile* profile);
 
   // optional .exec.bit.FragmentHandle handle = 2;
-  inline bool has_handle() const;
-  inline void clear_handle();
+  bool has_handle() const;
+  void clear_handle();
   static const int kHandleFieldNumber = 2;
-  inline const ::exec::bit::FragmentHandle& handle() const;
-  inline ::exec::bit::FragmentHandle* mutable_handle();
-  inline ::exec::bit::FragmentHandle* release_handle();
-  inline void set_allocated_handle(::exec::bit::FragmentHandle* handle);
+  private:
+  const ::exec::bit::FragmentHandle& _internal_handle() const;
+  public:
+  const ::exec::bit::FragmentHandle& handle() const;
+  ::exec::bit::FragmentHandle* release_handle();
+  ::exec::bit::FragmentHandle* mutable_handle();
+  void set_allocated_handle(::exec::bit::FragmentHandle* handle);
 
   // @@protoc_insertion_point(class_scope:exec.bit.control.FragmentStatus)
  private:
-  inline void set_has_profile();
-  inline void clear_has_profile();
-  inline void set_has_handle();
-  inline void clear_has_handle();
-
-  ::google::protobuf::UnknownFieldSet _unknown_fields_;
-
+  void set_has_profile();
+  void clear_has_profile();
+  void set_has_handle();
+  void clear_has_handle();
+
+  ::google::protobuf::internal::InternalMetadataWithArena _internal_metadata_;
+  ::google::protobuf::internal::HasBits<1> _has_bits_;
+  mutable ::google::protobuf::internal::CachedSize _cached_size_;
   ::exec::shared::MinorFragmentProfile* profile_;
   ::exec::bit::FragmentHandle* handle_;
-
-  mutable int _cached_size_;
-  ::google::protobuf::uint32 _has_bits_[(2 + 31) / 32];
-
-  friend void  protobuf_AddDesc_BitControl_2eproto();
-  friend void protobuf_AssignDesc_BitControl_2eproto();
-  friend void protobuf_ShutdownFile_BitControl_2eproto();
-
-  void InitAsDefaultInstance();
-  static FragmentStatus* default_instance_;
+  friend struct ::protobuf_BitControl_2eproto::TableStruct;
 };
 // -------------------------------------------------------------------
 
-class InitializeFragments : public ::google::protobuf::Message {
+class InitializeFragments : public ::google::protobuf::Message /* @@protoc_insertion_point(class_definition:exec.bit.control.InitializeFragments) */ {
  public:
   InitializeFragments();
   virtual ~InitializeFragments();
@@ -400,81 +564,113 @@ class InitializeFragments : public ::google::protobuf::Message {
     CopyFrom(from);
     return *this;
   }
+  #if LANG_CXX11
+  InitializeFragments(InitializeFragments&& from) noexcept
+    : InitializeFragments() {
+    *this = ::std::move(from);
+  }
 
+  inline InitializeFragments& operator=(InitializeFragments&& from) noexcept {
+    if (GetArenaNoVirtual() == from.GetArenaNoVirtual()) {
+      if (this != &from) InternalSwap(&from);
+    } else {
+      CopyFrom(from);
+    }
+    return *this;
+  }
+  #endif
   inline const ::google::protobuf::UnknownFieldSet& unknown_fields() const {
-    return _unknown_fields_;
+    return _internal_metadata_.unknown_fields();
   }
-
   inline ::google::protobuf::UnknownFieldSet* mutable_unknown_fields() {
-    return &_unknown_fields_;
+    return _internal_metadata_.mutable_unknown_fields();
   }
 
   static const ::google::protobuf::Descriptor* descriptor();
   static const InitializeFragments& default_instance();
 
+  static void InitAsDefaultInstance();  // FOR INTERNAL USE ONLY
+  static inline const InitializeFragments* internal_default_instance() {
+    return reinterpret_cast<const InitializeFragments*>(
+               &_InitializeFragments_default_instance_);
+  }
+  static constexpr int kIndexInFileMessages =
+    3;
+
   void Swap(InitializeFragments* other);
+  friend void swap(InitializeFragments& a, InitializeFragments& b) {
+    a.Swap(&b);
+  }
 
   // implements Message ----------------------------------------------
 
-  InitializeFragments* New() const;
-  void CopyFrom(const ::google::protobuf::Message& from);
-  void MergeFrom(const ::google::protobuf::Message& from);
+  inline InitializeFragments* New() const final {
+    return CreateMaybeMessage<InitializeFragments>(NULL);
+  }
+
+  InitializeFragments* New(::google::protobuf::Arena* arena) const final {
+    return CreateMaybeMessage<InitializeFragments>(arena);
+  }
+  void CopyFrom(const ::google::protobuf::Message& from) final;
+  void MergeFrom(const ::google::protobuf::Message& from) final;
   void CopyFrom(const InitializeFragments& from);
   void MergeFrom(const InitializeFragments& from);
-  void Clear();
-  bool IsInitialized() const;
+  void Clear() final;
+  bool IsInitialized() const final;
 
-  int ByteSize() const;
+  size_t ByteSizeLong() const final;
   bool MergePartialFromCodedStream(
-      ::google::protobuf::io::CodedInputStream* input);
+      ::google::protobuf::io::CodedInputStream* input) final;
   void SerializeWithCachedSizes(
-      ::google::protobuf::io::CodedOutputStream* output) const;
-  ::google::protobuf::uint8* SerializeWithCachedSizesToArray(::google::protobuf::uint8* output) const;
-  int GetCachedSize() const { return _cached_size_; }
+      ::google::protobuf::io::CodedOutputStream* output) const final;
+  ::google::protobuf::uint8* InternalSerializeWithCachedSizesToArray(
+      bool deterministic, ::google::protobuf::uint8* target) const final;
+  int GetCachedSize() const final { return _cached_size_.Get(); }
+
   private:
   void SharedCtor();
   void SharedDtor();
-  void SetCachedSize(int size) const;
+  void SetCachedSize(int size) const final;
+  void InternalSwap(InitializeFragments* other);
+  private:
+  inline ::google::protobuf::Arena* GetArenaNoVirtual() const {
+    return NULL;
+  }
+  inline void* MaybeArenaPtr() const {
+    return NULL;
+  }
   public:
 
-  ::google::protobuf::Metadata GetMetadata() const;
+  ::google::protobuf::Metadata GetMetadata() const final;
 
   // nested types ----------------------------------------------------
 
   // accessors -------------------------------------------------------
 
   // repeated .exec.bit.control.PlanFragment fragment = 1;
-  inline int fragment_size() const;
-  inline void clear_fragment();
+  int fragment_size() const;
+  void clear_fragment();
   static const int kFragmentFieldNumber = 1;
-  inline const ::exec::bit::control::PlanFragment& fragment(int index) const;
-  inline ::exec::bit::control::PlanFragment* mutable_fragment(int index);
-  inline ::exec::bit::control::PlanFragment* add_fragment();
-  inline const ::google::protobuf::RepeatedPtrField< ::exec::bit::control::PlanFragment >&
-      fragment() const;
-  inline ::google::protobuf::RepeatedPtrField< ::exec::bit::control::PlanFragment >*
+  ::exec::bit::control::PlanFragment* mutable_fragment(int index);
+  ::google::protobuf::RepeatedPtrField< ::exec::bit::control::PlanFragment >*
       mutable_fragment();
+  const ::exec::bit::control::PlanFragment& fragment(int index) const;
+  ::exec::bit::control::PlanFragment* add_fragment();
+  const ::google::protobuf::RepeatedPtrField< ::exec::bit::control::PlanFragment >&
+      fragment() const;
 
   // @@protoc_insertion_point(class_scope:exec.bit.control.InitializeFragments)
  private:
 
-  ::google::protobuf::UnknownFieldSet _unknown_fields_;
-
+  ::google::protobuf::internal::InternalMetadataWithArena _internal_metadata_;
+  ::google::protobuf::internal::HasBits<1> _has_bits_;
+  mutable ::google::protobuf::internal::CachedSize _cached_size_;
   ::google::protobuf::RepeatedPtrField< ::exec::bit::control::PlanFragment > fragment_;
-
-  mutable int _cached_size_;
-  ::google::protobuf::uint32 _has_bits_[(1 + 31) / 32];
-
-  friend void  protobuf_AddDesc_BitControl_2eproto();
-  friend void protobuf_AssignDesc_BitControl_2eproto();
-  friend void protobuf_ShutdownFile_BitControl_2eproto();
-
-  void InitAsDefaultInstance();
-  static InitializeFragments* default_instance_;
+  friend struct ::protobuf_BitControl_2eproto::TableStruct;
 };
 // -------------------------------------------------------------------
 
-class CustomMessage : public ::google::protobuf::Message {
+class CustomMessage : public ::google::protobuf::Message /* @@protoc_insertion_point(class_definition:exec.bit.control.CustomMessage) */ {
  public:
   CustomMessage();
   virtual ~CustomMessage();
@@ -485,93 +681,128 @@ class CustomMessage : public ::google::protobuf::Message {
     CopyFrom(from);
     return *this;
   }
+  #if LANG_CXX11
+  CustomMessage(CustomMessage&& from) noexcept
+    : CustomMessage() {
+    *this = ::std::move(from);
+  }
 
+  inline CustomMessage& operator=(CustomMessage&& from) noexcept {
+    if (GetArenaNoVirtual() == from.GetArenaNoVirtual()) {
+      if (this != &from) InternalSwap(&from);
+    } else {
+      CopyFrom(from);
+    }
+    return *this;
+  }
+  #endif
   inline const ::google::protobuf::UnknownFieldSet& unknown_fields() const {
-    return _unknown_fields_;
+    return _internal_metadata_.unknown_fields();
   }
-
   inline ::google::protobuf::UnknownFieldSet* mutable_unknown_fields() {
-    return &_unknown_fields_;
+    return _internal_metadata_.mutable_unknown_fields();
   }
 
   static const ::google::protobuf::Descriptor* descriptor();
   static const CustomMessage& default_instance();
 
+  static void InitAsDefaultInstance();  // FOR INTERNAL USE ONLY
+  static inline const CustomMessage* internal_default_instance() {
+    return reinterpret_cast<const CustomMessage*>(
+               &_CustomMessage_default_instance_);
+  }
+  static constexpr int kIndexInFileMessages =
+    4;
+
   void Swap(CustomMessage* other);
+  friend void swap(CustomMessage& a, CustomMessage& b) {
+    a.Swap(&b);
+  }
 
   // implements Message ----------------------------------------------
 
-  CustomMessage* New() const;
-  void CopyFrom(const ::google::protobuf::Message& from);
-  void MergeFrom(const ::google::protobuf::Message& from);
+  inline CustomMessage* New() const final {
+    return CreateMaybeMessage<CustomMessage>(NULL);
+  }
+
+  CustomMessage* New(::google::protobuf::Arena* arena) const final {
+    return CreateMaybeMessage<CustomMessage>(arena);
+  }
+  void CopyFrom(const ::google::protobuf::Message& from) final;
+  void MergeFrom(const ::google::protobuf::Message& from) final;
   void CopyFrom(const CustomMessage& from);
   void MergeFrom(const CustomMessage& from);
-  void Clear();
-  bool IsInitialized() const;
+  void Clear() final;
+  bool IsInitialized() const final;
 
-  int ByteSize() const;
+  size_t ByteSizeLong() const final;
   bool MergePartialFromCodedStream(
-      ::google::protobuf::io::CodedInputStream* input);
+      ::google::protobuf::io::CodedInputStream* input) final;
   void SerializeWithCachedSizes(
-      ::google::protobuf::io::CodedOutputStream* output) const;
-  ::google::protobuf::uint8* SerializeWithCachedSizesToArray(::google::protobuf::uint8* output) const;
-  int GetCachedSize() const { return _cached_size_; }
+      ::google::protobuf::io::CodedOutputStream* output) const final;
+  ::google::protobuf::uint8* InternalSerializeWithCachedSizesToArray(
+      bool deterministic, ::google::protobuf::uint8* target) const final;
+  int GetCachedSize() const final { return _cached_size_.Get(); }
+
   private:
   void SharedCtor();
   void SharedDtor();
-  void SetCachedSize(int size) const;
+  void SetCachedSize(int size) const final;
+  void InternalSwap(CustomMessage* other);
+  private:
+  inline ::google::protobuf::Arena* GetArenaNoVirtual() const {
+    return NULL;
+  }
+  inline void* MaybeArenaPtr() const {
+    return NULL;
+  }
   public:
 
-  ::google::protobuf::Metadata GetMetadata() const;
+  ::google::protobuf::Metadata GetMetadata() const final;
 
   // nested types ----------------------------------------------------
 
   // accessors -------------------------------------------------------
 
-  // optional int32 type = 1;
-  inline bool has_type() const;
-  inline void clear_type();
-  static const int kTypeFieldNumber = 1;
-  inline ::google::protobuf::int32 type() const;
-  inline void set_type(::google::protobuf::int32 value);
-
   // optional bytes message = 2;
-  inline bool has_message() const;
-  inline void clear_message();
+  bool has_message() const;
+  void clear_message();
   static const int kMessageFieldNumber = 2;
-  inline const ::std::string& message() const;
-  inline void set_message(const ::std::string& value);
-  inline void set_message(const char* value);
-  inline void set_message(const void* value, size_t size);
-  inline ::std::string* mutable_message();
-  inline ::std::string* release_message();
-  inline void set_allocated_message(::std::string* message);
+  const ::std::string& message() const;
+  void set_message(const ::std::string& value);
+  #if LANG_CXX11
+  void set_message(::std::string&& value);
+  #endif
+  void set_message(const char* value);
+  void set_message(const void* value, size_t size);
+  ::std::string* mutable_message();
+  ::std::string* release_message();
+  void set_allocated_message(::std::string* message);
+
+  // optional int32 type = 1;
+  bool has_type() const;
+  void clear_type();
+  static const int kTypeFieldNumber = 1;
+  ::google::protobuf::int32 type() const;
+  void set_type(::google::protobuf::int32 value);
 
   // @@protoc_insertion_point(class_scope:exec.bit.control.CustomMessage)
  private:
-  inline void set_has_type();
-  inline void clear_has_type();
-  inline void set_has_message();
-  inline void clear_has_message();
-
-  ::google::protobuf::UnknownFieldSet _unknown_fields_;
-
-  ::std::string* message_;
+  void set_has_type();
+  void clear_has_type();
+  void set_has_message();
+  void clear_has_message();
+
+  ::google::protobuf::internal::InternalMetadataWithArena _internal_metadata_;
+  ::google::protobuf::internal::HasBits<1> _has_bits_;
+  mutable ::google::protobuf::internal::CachedSize _cached_size_;
+  ::google::protobuf::internal::ArenaStringPtr message_;
   ::google::protobuf::int32 type_;
-
-  mutable int _cached_size_;
-  ::google::protobuf::uint32 _has_bits_[(2 + 31) / 32];
-
-  friend void  protobuf_AddDesc_BitControl_2eproto();
-  friend void protobuf_AssignDesc_BitControl_2eproto();
-  friend void protobuf_ShutdownFile_BitControl_2eproto();
-
-  void InitAsDefaultInstance();
-  static CustomMessage* default_instance_;
+  friend struct ::protobuf_BitControl_2eproto::TableStruct;
 };
 // -------------------------------------------------------------------
 
-class PlanFragment : public ::google::protobuf::Message {
+class PlanFragment : public ::google::protobuf::Message /* @@protoc_insertion_point(class_definition:exec.bit.control.PlanFragment) */ {
  public:
   PlanFragment();
   virtual ~PlanFragment();
@@ -582,241 +813,294 @@ class PlanFragment : public ::google::protobuf::Message {
     CopyFrom(from);
     return *this;
   }
+  #if LANG_CXX11
+  PlanFragment(PlanFragment&& from) noexcept
+    : PlanFragment() {
+    *this = ::std::move(from);
+  }
 
+  inline PlanFragment& operator=(PlanFragment&& from) noexcept {
+    if (GetArenaNoVirtual() == from.GetArenaNoVirtual()) {
+      if (this != &from) InternalSwap(&from);
+    } else {
+      CopyFrom(from);
+    }
+    return *this;
+  }
+  #endif
   inline const ::google::protobuf::UnknownFieldSet& unknown_fields() const {
-    return _unknown_fields_;
+    return _internal_metadata_.unknown_fields();
   }
-
   inline ::google::protobuf::UnknownFieldSet* mutable_unknown_fields() {
-    return &_unknown_fields_;
+    return _internal_metadata_.mutable_unknown_fields();
   }
 
   static const ::google::protobuf::Descriptor* descriptor();
   static const PlanFragment& default_instance();
 
+  static void InitAsDefaultInstance();  // FOR INTERNAL USE ONLY
+  static inline const PlanFragment* internal_default_instance() {
+    return reinterpret_cast<const PlanFragment*>(
+               &_PlanFragment_default_instance_);
+  }
+  static constexpr int kIndexInFileMessages =
+    5;
+
   void Swap(PlanFragment* other);
+  friend void swap(PlanFragment& a, PlanFragment& b) {
+    a.Swap(&b);
+  }
 
   // implements Message ----------------------------------------------
 
-  PlanFragment* New() const;
-  void CopyFrom(const ::google::protobuf::Message& from);
-  void MergeFrom(const ::google::protobuf::Message& from);
+  inline PlanFragment* New() const final {
+    return CreateMaybeMessage<PlanFragment>(NULL);
+  }
+
+  PlanFragment* New(::google::protobuf::Arena* arena) const final {
+    return CreateMaybeMessage<PlanFragment>(arena);
+  }
+  void CopyFrom(const ::google::protobuf::Message& from) final;
+  void MergeFrom(const ::google::protobuf::Message& from) final;
   void CopyFrom(const PlanFragment& from);
   void MergeFrom(const PlanFragment& from);
-  void Clear();
-  bool IsInitialized() const;
+  void Clear() final;
+  bool IsInitialized() const final;
 
-  int ByteSize() const;
+  size_t ByteSizeLong() const final;
   bool MergePartialFromCodedStream(
-      ::google::protobuf::io::CodedInputStream* input);
+      ::google::protobuf::io::CodedInputStream* input) final;
   void SerializeWithCachedSizes(
-      ::google::protobuf::io::CodedOutputStream* output) const;
-  ::google::protobuf::uint8* SerializeWithCachedSizesToArray(::google::protobuf::uint8* output) const;
-  int GetCachedSize() const { return _cached_size_; }
+      ::google::protobuf::io::CodedOutputStream* output) const final;
+  ::google::protobuf::uint8* InternalSerializeWithCachedSizesToArray(
+      bool deterministic, ::google::protobuf::uint8* target) const final;
+  int GetCachedSize() const final { return _cached_size_.Get(); }
+
   private:
   void SharedCtor();
   void SharedDtor();
-  void SetCachedSize(int size) const;
+  void SetCachedSize(int size) const final;
+  void InternalSwap(PlanFragment* other);
+  private:
+  inline ::google::protobuf::Arena* GetArenaNoVirtual() const {
+    return NULL;
+  }
+  inline void* MaybeArenaPtr() const {
+    return NULL;
+  }
   public:
 
-  ::google::protobuf::Metadata GetMetadata() const;
+  ::google::protobuf::Metadata GetMetadata() const final;
 
   // nested types ----------------------------------------------------
 
   // accessors -------------------------------------------------------
 
+  // repeated .exec.bit.control.Collector collector = 17;
+  int collector_size() const;
+  void clear_collector();
+  static const int kCollectorFieldNumber = 17;
+  ::exec::bit::control::Collector* mutable_collector(int index);
+  ::google::protobuf::RepeatedPtrField< ::exec::bit::control::Collector >*
+      mutable_collector();
+  const ::exec::bit::control::Collector& collector(int index) const;
+  ::exec::bit::control::Collector* add_collector();
+  const ::google::protobuf::RepeatedPtrField< ::exec::bit::control::Collector >&
+      collector() const;
+
+  // optional string fragment_json = 8;
+  bool has_fragment_json() const;
+  void clear_fragment_json();
+  static const int kFragmentJsonFieldNumber = 8;
+  const ::std::string& fragment_json() const;
+  void set_fragment_json(const ::std::string& value);
+  #if LANG_CXX11
+  void set_fragment_json(::std::string&& value);
+  #endif
+  void set_fragment_json(const char* value);
+  void set_fragment_json(const char* value, size_t size);
+  ::std::string* mutable_fragment_json();
+  ::std::string* release_fragment_json();
+  void set_allocated_fragment_json(::std::string* fragment_json);
+
+  // optional string options_json = 15;
+  bool has_options_json() const;
+  void clear_options_json();
+  static const int kOptionsJsonFieldNumber = 15;
+  const ::std::string& options_json() const;
+  void set_options_json(const ::std::string& value);
+  #if LANG_CXX11
+  void set_options_json(::std::string&& value);
+  #endif
+  void set_options_json(const char* value);
+  void set_options_json(const char* value, size_t size);
+  ::std::string* mutable_options_json();
+  ::std::string* release_options_json();
+  void set_allocated_options_json(::std::string* options_json);
+
   // optional .exec.bit.FragmentHandle handle = 1;
-  inline bool has_handle() const;
-  inline void clear_handle();
+  bool has_handle() const;
+  void clear_handle();
   static const int kHandleFieldNumber = 1;
-  inline const ::exec::bit::FragmentHandle& handle() const;
-  inline ::exec::bit::FragmentHandle* mutable_handle();
-  inline ::exec::bit::FragmentHandle* release_handle();
-  inline void set_allocated_handle(::exec::bit::FragmentHandle* handle);
+  private:
+  const ::exec::bit::FragmentHandle& _internal_handle() const;
+  public:
+  const ::exec::bit::FragmentHandle& handle() const;
+  ::exec::bit::FragmentHandle* release_handle();
+  ::exec::bit::FragmentHandle* mutable_handle();
+  void set_allocated_handle(::exec::bit::FragmentHandle* handle);
+
+  // optional .exec.DrillbitEndpoint assignment = 10;
+  bool has_assignment() const;
+  void clear_assignment();
+  static const int kAssignmentFieldNumber = 10;
+  private:
+  const ::exec::DrillbitEndpoint& _internal_assignment() const;
+  public:
+  const ::exec::DrillbitEndpoint& assignment() const;
+  ::exec::DrillbitEndpoint* release_assignment();
+  ::exec::DrillbitEndpoint* mutable_assignment();
+  void set_allocated_assignment(::exec::DrillbitEndpoint* assignment);
+
+  // optional .exec.DrillbitEndpoint foreman = 11;
+  bool has_foreman() const;
+  void clear_foreman();
+  static const int kForemanFieldNumber = 11;
+  private:
+  const ::exec::DrillbitEndpoint& _internal_foreman() const;
+  public:
+  const ::exec::DrillbitEndpoint& foreman() const;
+  ::exec::DrillbitEndpoint* release_foreman();
+  ::exec::DrillbitEndpoint* mutable_foreman();
+  void set_allocated_foreman(::exec::DrillbitEndpoint* foreman);
+
+  // optional .exec.shared.UserCredentials credentials = 14;
+  bool has_credentials() const;
+  void clear_credentials();
+  static const int kCredentialsFieldNumber = 14;
+  private:
+  const ::exec::shared::UserCredentials& _internal_credentials() const;
+  public:
+  const ::exec::shared::UserCredentials& credentials() const;
+  ::exec::shared::UserCredentials* release_credentials();
+  ::exec::shared::UserCredentials* mutable_credentials();
+  void set_allocated_credentials(::exec::shared::UserCredentials* credentials);
+
+  // optional .exec.bit.control.QueryContextInformation context = 16;
+  bool has_context() const;
+  void clear_context();
+  static const int kContextFieldNumber = 16;
+  private:
+  const ::exec::bit::control::QueryContextInformation& _internal_context() const;
+  public:
+  const ::exec::bit::control::QueryContextInformation& context() const;
+  ::exec::bit::control::QueryContextInformation* release_context();
+  ::exec::bit::control::QueryContextInformation* mutable_context();
+  void set_allocated_context(::exec::bit::control::QueryContextInformation* context);
 
   // optional float network_cost = 4;
-  inline bool has_network_cost() const;
-  inline void clear_network_cost();
+  bool has_network_cost() const;
+  void clear_network_cost();
   static const int kNetworkCostFieldNumber = 4;
-  inline float network_cost() const;
-  inline void set_network_cost(float value);
+  float network_cost() const;
+  void set_network_cost(float value);
 
   // optional float cpu_cost = 5;
-  inline bool has_cpu_cost() const;
-  inline void clear_cpu_cost();
+  bool has_cpu_cost() const;
+  void clear_cpu_cost();
   static const int kCpuCostFieldNumber = 5;
-  inline float cpu_cost() const;
-  inline void set_cpu_cost(float value);
+  float cpu_cost() const;
+  void set_cpu_cost(float value);
 
   // optional float disk_cost = 6;
-  inline bool has_disk_cost() const;
-  inline void clear_disk_cost();
+  bool has_disk_cost() const;
+  void clear_disk_cost();
   static const int kDiskCostFieldNumber = 6;
-  inline float disk_cost() const;
-  inline void set_disk_cost(float value);
+  float disk_cost() const;
+  void set_disk_cost(float value);
 
   // optional float memory_cost = 7;
-  inline bool has_memory_cost() const;
-  inline void clear_memory_cost();
+  bool has_memory_cost() const;
+  void clear_memory_cost();
   static const int kMemoryCostFieldNumber = 7;
-  inline float memory_cost() const;
-  inline void set_memory_cost(float value);
-
-  // optional string fragment_json = 8;
-  inline bool has_fragment_json() const;
-  inline void clear_fragment_json();
-  static const int kFragmentJsonFieldNumber = 8;
-  inline const ::std::string& fragment_json() const;
-  inline void set_fragment_json(const ::std::string& value);
-  inline void set_fragment_json(const char* value);
-  inline void set_fragment_json(const char* value, size_t size);
-  inline ::std::string* mutable_fragment_json();
-  inline ::std::string* release_fragment_json();
-  inline void set_allocated_fragment_json(::std::string* fragment_json);
+  float memory_cost() const;
+  void set_memory_cost(float value);
 
   // optional bool leaf_fragment = 9;
-  inline bool has_leaf_fragment() const;
-  inline void clear_leaf_fragment();
+  bool has_leaf_fragment() const;
+  void clear_leaf_fragment();
   static const int kLeafFragmentFieldNumber = 9;
-  inline bool leaf_fragment() const;
-  inline void set_leaf_fragment(bool value);
-
-  // optional .exec.DrillbitEndpoint assignment = 10;
-  inline bool has_assignment() const;
-  inline void clear_assignment();
-  static const int kAssignmentFieldNumber = 10;
-  inline const ::exec::DrillbitEndpoint& assignment() const;
-  inline ::exec::DrillbitEndpoint* mutable_assignment();
-  inline ::exec::DrillbitEndpoint* release_assignment();
-  inline void set_allocated_assignment(::exec::DrillbitEndpoint* assignment);
-
-  // optional .exec.DrillbitEndpoint foreman = 11;
-  inline bool has_foreman() const;
-  inline void clear_foreman();
-  static const int kForemanFieldNumber = 11;
-  inline const ::exec::DrillbitEndpoint& foreman() const;
-  inline ::exec::DrillbitEndpoint* mutable_foreman();
-  inline ::exec::DrillbitEndpoint* release_foreman();
-  inline void set_allocated_foreman(::exec::DrillbitEndpoint* foreman);
+  bool leaf_fragment() const;
+  void set_leaf_fragment(bool value);
 
   // optional int64 mem_initial = 12 [default = 20000000];
-  inline bool has_mem_initial() const;
-  inline void clear_mem_initial();
+  bool has_mem_initial() const;
+  void clear_mem_initial();
   static const int kMemInitialFieldNumber = 12;
-  inline ::google::protobuf::int64 mem_initial() const;
-  inline void set_mem_initial(::google::protobuf::int64 value);
+  ::google::protobuf::int64 mem_initial() const;
+  void set_mem_initial(::google::protobuf::int64 value);
 
   // optional int64 mem_max = 13 [default = 2000000000];
-  inline bool has_mem_max() const;
-  inline void clear_mem_max();
+  bool has_mem_max() const;
+  void clear_mem_max();
   static const int kMemMaxFieldNumber = 13;
-  inline ::google::protobuf::int64 mem_max() const;
-  inline void set_mem_max(::google::protobuf::int64 value);
-
-  // optional .exec.shared.UserCredentials credentials = 14;
-  inline bool has_credentials() const;
-  inline void clear_credentials();
-  static const int kCredentialsFieldNumber = 14;
-  inline const ::exec::shared::UserCredentials& credentials() const;
-  inline ::exec::shared::UserCredentials* mutable_credentials();
-  inline ::exec::shared::UserCredentials* release_credentials();
-  inline void set_allocated_credentials(::exec::shared::UserCredentials* credentials);
-
-  // optional string options_json = 15;
-  inline bool has_options_json() const;
-  inline void clear_options_json();
-  static const int kOptionsJsonFieldNumber = 15;
-  inline const ::std::string& options_json() const;
-  inline void set_options_json(const ::std::string& value);
-  inline void set_options_json(const char* value);
-  inline void set_options_json(const char* value, size_t size);
-  inline ::std::string* mutable_options_json();
-  inline ::std::string* release_options_json();
-  inline void set_allocated_options_json(::std::string* options_json);
-
-  // optional .exec.bit.control.QueryContextInformation context = 16;
-  inline bool has_context() const;
-  inline void clear_context();
-  static const int kContextFieldNumber = 16;
-  inline const ::exec::bit::control::QueryContextInformation& context() const;
-  inline ::exec::bit::control::QueryContextInformation* mutable_context();
-  inline ::exec::bit::control::QueryContextInformation* release_context();
-  inline void set_allocated_context(::exec::bit::control::QueryContextInformation* context);
-
-  // repeated .exec.bit.control.Collector collector = 17;
-  inline int collector_size() const;
-  inline void clear_collector();
-  static const int kCollectorFieldNumber = 17;
-  inline const ::exec::bit::control::Collector& collector(int index) const;
-  inline ::exec::bit::control::Collector* mutable_collector(int index);
-  inline ::exec::bit::control::Collector* add_collector();
-  inline const ::google::protobuf::RepeatedPtrField< ::exec::bit::control::Collector >&
-      collector() const;
-  inline ::google::protobuf::RepeatedPtrField< ::exec::bit::control::Collector >*
-      mutable_collector();
+  ::google::protobuf::int64 mem_max() const;
+  void set_mem_max(::google::protobuf::int64 value);
 
   // @@protoc_insertion_point(class_scope:exec.bit.control.PlanFragment)
  private:
-  inline void set_has_handle();
-  inline void clear_has_handle();
-  inline void set_has_network_cost();
-  inline void clear_has_network_cost();
-  inline void set_has_cpu_cost();
-  inline void clear_has_cpu_cost();
-  inline void set_has_disk_cost();
-  inline void clear_has_disk_cost();
-  inline void set_has_memory_cost();
-  inline void clear_has_memory_cost();
-  inline void set_has_fragment_json();
-  inline void clear_has_fragment_json();
-  inline void set_has_leaf_fragment();
-  inline void clear_has_leaf_fragment();
-  inline void set_has_assignment();
-  inline void clear_has_assignment();
-  inline void set_has_foreman();
-  inline void clear_has_foreman();
-  inline void set_has_mem_initial();
-  inline void clear_has_mem_initial();
-  inline void set_has_mem_max();
-  inline void clear_has_mem_max();
-  inline void set_has_credentials();
-  inline void clear_has_credentials();
-  inline void set_has_options_json();
-  inline void clear_has_options_json();
-  inline void set_has_context();
-  inline void clear_has_context();
-
-  ::google::protobuf::UnknownFieldSet _unknown_fields_;
-
+  void set_has_handle();
+  void clear_has_handle();
+  void set_has_network_cost();
+  void clear_has_network_cost();
+  void set_has_cpu_cost();
+  void clear_has_cpu_cost();
+  void set_has_disk_cost();
+  void clear_has_disk_cost();
+  void set_has_memory_cost();
+  void clear_has_memory_cost();
+  void set_has_fragment_json();
+  void clear_has_fragment_json();
+  void set_has_leaf_fragment();
+  void clear_has_leaf_fragment();
+  void set_has_assignment();
+  void clear_has_assignment();
+  void set_has_foreman();
+  void clear_has_foreman();
+  void set_has_mem_initial();
+  void clear_has_mem_initial();
+  void set_has_mem_max();
+  void clear_has_mem_max();
+  void set_has_credentials();
+  void clear_has_credentials();
+  void set_has_options_json();
+  void clear_has_options_json();
+  void set_has_context();
+  void clear_has_context();
+
+  ::google::protobuf::internal::InternalMetadataWithArena _internal_metadata_;
+  ::google::protobuf::internal::HasBits<1> _has_bits_;
+  mutable ::google::protobuf::internal::CachedSize _cached_size_;
+  ::google::protobuf::RepeatedPtrField< ::exec::bit::control::Collector > collector_;
+  ::google::protobuf::internal::ArenaStringPtr fragment_json_;
+  ::google::protobuf::internal::ArenaStringPtr options_json_;
   ::exec::bit::FragmentHandle* handle_;
+  ::exec::DrillbitEndpoint* assignment_;
+  ::exec::DrillbitEndpoint* foreman_;
+  ::exec::shared::UserCredentials* credentials_;
+  ::exec::bit::control::QueryContextInformation* context_;
   float network_cost_;
   float cpu_cost_;
   float disk_cost_;
   float memory_cost_;
-  ::std::string* fragment_json_;
-  ::exec::DrillbitEndpoint* assignment_;
-  ::exec::DrillbitEndpoint* foreman_;
+  bool leaf_fragment_;
   ::google::protobuf::int64 mem_initial_;
   ::google::protobuf::int64 mem_max_;
-  ::exec::shared::UserCredentials* credentials_;
-  ::std::string* options_json_;
-  ::exec::bit::control::QueryContextInformation* context_;
-  ::google::protobuf::RepeatedPtrField< ::exec::bit::control::Collector > collector_;
-  bool leaf_fragment_;
-
-  mutable int _cached_size_;
-  ::google::protobuf::uint32 _has_bits_[(15 + 31) / 32];
-
-  friend void  protobuf_AddDesc_BitControl_2eproto();
-  friend void protobuf_AssignDesc_BitControl_2eproto();
-  friend void protobuf_ShutdownFile_BitControl_2eproto();
-
-  void InitAsDefaultInstance();
-  static PlanFragment* default_instance_;
+  friend struct ::protobuf_BitControl_2eproto::TableStruct;
 };
 // -------------------------------------------------------------------
 
-class Collector : public ::google::protobuf::Message {
+class Collector : public ::google::protobuf::Message /* @@protoc_insertion_point(class_definition:exec.bit.control.Collector) */ {
  public:
   Collector();
   virtual ~Collector();
@@ -827,112 +1111,144 @@ class Collector : public ::google::protobuf::Message {
     CopyFrom(from);
     return *this;
   }
+  #if LANG_CXX11
+  Collector(Collector&& from) noexcept
+    : Collector() {
+    *this = ::std::move(from);
+  }
 
+  inline Collector& operator=(Collector&& from) noexcept {
+    if (GetArenaNoVirtual() == from.GetArenaNoVirtual()) {
+      if (this != &from) InternalSwap(&from);
+    } else {
+      CopyFrom(from);
+    }
+    return *this;
+  }
+  #endif
   inline const ::google::protobuf::UnknownFieldSet& unknown_fields() const {
-    return _unknown_fields_;
+    return _internal_metadata_.unknown_fields();
   }
-
   inline ::google::protobuf::UnknownFieldSet* mutable_unknown_fields() {
-    return &_unknown_fields_;
+    return _internal_metadata_.mutable_unknown_fields();
   }
 
   static const ::google::protobuf::Descriptor* descriptor();
   static const Collector& default_instance();
 
+  static void InitAsDefaultInstance();  // FOR INTERNAL USE ONLY
+  static inline const Collector* internal_default_instance() {
+    return reinterpret_cast<const Collector*>(
+               &_Collector_default_instance_);
+  }
+  static constexpr int kIndexInFileMessages =
+    6;
+
   void Swap(Collector* other);
+  friend void swap(Collector& a, Collector& b) {
+    a.Swap(&b);
+  }
 
   // implements Message ----------------------------------------------
 
-  Collector* New() const;
-  void CopyFrom(const ::google::protobuf::Message& from);
-  void MergeFrom(const ::google::protobuf::Message& from);
+  inline Collector* New() const final {
+    return CreateMaybeMessage<Collector>(NULL);
+  }
+
+  Collector* New(::google::protobuf::Arena* arena) const final {
+    return CreateMaybeMessage<Collector>(arena);
+  }
+  void CopyFrom(const ::google::protobuf::Message& from) final;
+  void MergeFrom(const ::google::protobuf::Message& from) final;
   void CopyFrom(const Collector& from);
   void MergeFrom(const Collector& from);
-  void Clear();
-  bool IsInitialized() const;
+  void Clear() final;
+  bool IsInitialized() const final;
 
-  int ByteSize() const;
+  size_t ByteSizeLong() const final;
   bool MergePartialFromCodedStream(
-      ::google::protobuf::io::CodedInputStream* input);
+      ::google::protobuf::io::CodedInputStream* input) final;
   void SerializeWithCachedSizes(
-      ::google::protobuf::io::CodedOutputStream* output) const;
-  ::google::protobuf::uint8* SerializeWithCachedSizesToArray(::google::protobuf::uint8* output) const;
-  int GetCachedSize() const { return _cached_size_; }
+      ::google::protobuf::io::CodedOutputStream* output) const final;
+  ::google::protobuf::uint8* InternalSerializeWithCachedSizesToArray(
+      bool deterministic, ::google::protobuf::uint8* target) const final;
+  int GetCachedSize() const final { return _cached_size_.Get(); }
+
   private:
   void SharedCtor();
   void SharedDtor();
-  void SetCachedSize(int size) const;
+  void SetCachedSize(int size) const final;
+  void InternalSwap(Collector* other);
+  private:
+  inline ::google::protobuf::Arena* GetArenaNoVirtual() const {
+    return NULL;
+  }
+  inline void* MaybeArenaPtr() const {
+    return NULL;
+  }
   public:
 
-  ::google::protobuf::Metadata GetMetadata() const;
+  ::google::protobuf::Metadata GetMetadata() const final;
 
   // nested types ----------------------------------------------------
 
   // accessors -------------------------------------------------------
 
-  // optional int32 opposite_major_fragment_id = 1;
-  inline bool has_opposite_major_fragment_id() const;
-  inline void clear_opposite_major_fragment_id();
-  static const int kOppositeMajorFragmentIdFieldNumber = 1;
-  inline ::google::protobuf::int32 opposite_major_fragment_id() const;
-  inline void set_opposite_major_fragment_id(::google::protobuf::int32 value);
-
   // repeated int32 incoming_minor_fragment = 2 [packed = true];
-  inline int incoming_minor_fragment_size() const;
-  inline void clear_incoming_minor_fragment();
+  int incoming_minor_fragment_size() const;
+  void clear_incoming_minor_fragment();
   static const int kIncomingMinorFragmentFieldNumber = 2;
-  inline ::google::protobuf::int32 incoming_minor_fragment(int index) const;
-  inline void set_incoming_minor_fragment(int index, ::google::protobuf::int32 value);
-  inline void add_incoming_minor_fragment(::google::protobuf::int32 value);
-  inline const ::google::protobuf::RepeatedField< ::google::protobuf::int32 >&
+  ::google::protobuf::int32 incoming_minor_fragment(int index) const;
+  void set_incoming_minor_fragment(int index, ::google::protobuf::int32 value);
+  void add_incoming_minor_fragment(::google::protobuf::int32 value);
+  const ::google::protobuf::RepeatedField< ::google::protobuf::int32 >&
       incoming_minor_fragment() const;
-  inline ::google::protobuf::RepeatedField< ::google::protobuf::int32 >*
+  ::google::protobuf::RepeatedField< ::google::protobuf::int32 >*
       mutable_incoming_minor_fragment();
 
+  // optional int32 opposite_major_fragment_id = 1;
+  bool has_opposite_major_fragment_id() const;
+  void clear_opposite_major_fragment_id();
+  static const int kOppositeMajorFragmentIdFieldNumber = 1;
+  ::google::protobuf::int32 opposite_major_fragment_id() const;
+  void set_opposite_major_fragment_id(::google::protobuf::int32 value);
+
   // optional bool supports_out_of_order = 3;
-  inline bool has_supports_out_of_order() const;
-  inline void clear_supports_out_of_order();
+  bool has_supports_out_of_order() const;
+  void clear_supports_out_of_order();
   static const int kSupportsOutOfOrderFieldNumber = 3;
-  inline bool supports_out_of_order() const;
-  inline void set_supports_out_of_order(bool value);
+  bool supports_out_of_order() const;
+  void set_supports_out_of_order(bool value);
 
   // optional bool is_spooling = 4;
-  inline bool has_is_spooling() const;
-  inline void clear_is_spooling();
+  bool has_is_spooling() const;
+  void clear_is_spooling();
   static const int kIsSpoolingFieldNumber = 4;
-  inline bool is_spooling() const;
-  inline void set_is_spooling(bool value);
+  bool is_spooling() const;
+  void set_is_spooling(bool value);
 
   // @@protoc_insertion_point(class_scope:exec.bit.control.Collector)
  private:
-  inline void set_has_opposite_major_fragment_id();
-  inline void clear_has_opposite_major_fragment_id();
-  inline void set_has_supports_out_of_order();
-  inline void clear_has_supports_out_of_order();
-  inline void set_has_is_spooling();
-  inline void clear_has_is_spooling();
-
-  ::google::protobuf::UnknownFieldSet _unknown_fields_;
-
+  void set_has_opposite_major_fragment_id();
+  void clear_has_opposite_major_fragment_id();
+  void set_has_supports_out_of_order();
+  void clear_has_supports_out_of_order();
+  void set_has_is_spooling();
+  void clear_has_is_spooling();
+
+  ::google::protobuf::internal::InternalMetadataWithArena _internal_metadata_;
+  ::google::protobuf::internal::HasBits<1> _has_bits_;
+  mutable ::google::protobuf::internal::CachedSize _cached_size_;
   ::google::protobuf::RepeatedField< ::google::protobuf::int32 > incoming_minor_fragment_;
   mutable int _incoming_minor_fragment_cached_byte_size_;
   ::google::protobuf::int32 opposite_major_fragment_id_;
   bool supports_out_of_order_;
   bool is_spooling_;
-
-  mutable int _cached_size_;
-  ::google::protobuf::uint32 _has_bits_[(4 + 31) / 32];
-
-  friend void  protobuf_AddDesc_BitControl_2eproto();
-  friend void protobuf_AssignDesc_BitControl_2eproto();
-  friend void protobuf_ShutdownFile_BitControl_2eproto();
-
-  void InitAsDefaultInstance();
-  static Collector* default_instance_;
+  friend struct ::protobuf_BitControl_2eproto::TableStruct;
 };
 // -------------------------------------------------------------------
 
-class QueryContextInformation : public ::google::protobuf::Message {
+class QueryContextInformation : public ::google::protobuf::Message /* @@protoc_insertion_point(class_definition:exec.bit.control.QueryContextInformation) */ {
  public:
   QueryContextInformation();
   virtual ~QueryContextInformation();
@@ -943,118 +1259,156 @@ class QueryContextInformation : public ::google::protobuf::Message {
     CopyFrom(from);
     return *this;
   }
+  #if LANG_CXX11
+  QueryContextInformation(QueryContextInformation&& from) noexcept
+    : QueryContextInformation() {
+    *this = ::std::move(from);
+  }
 
+  inline QueryContextInformation& operator=(QueryContextInformation&& from) noexcept {
+    if (GetArenaNoVirtual() == from.GetArenaNoVirtual()) {
+      if (this != &from) InternalSwap(&from);
+    } else {
+      CopyFrom(from);
+    }
+    return *this;
+  }
+  #endif
   inline const ::google::protobuf::UnknownFieldSet& unknown_fields() const {
-    return _unknown_fields_;
+    return _internal_metadata_.unknown_fields();
   }
-
   inline ::google::protobuf::UnknownFieldSet* mutable_unknown_fields() {
-    return &_unknown_fields_;
+    return _internal_metadata_.mutable_unknown_fields();
   }
 
   static const ::google::protobuf::Descriptor* descriptor();
   static const QueryContextInformation& default_instance();
 
+  static void InitAsDefaultInstance();  // FOR INTERNAL USE ONLY
+  static inline const QueryContextInformation* internal_default_instance() {
+    return reinterpret_cast<const QueryContextInformation*>(
+               &_QueryContextInformation_default_instance_);
+  }
+  static constexpr int kIndexInFileMessages =
+    7;
+
   void Swap(QueryContextInformation* other);
+  friend void swap(QueryContextInformation& a, QueryContextInformation& b) {
+    a.Swap(&b);
+  }
 
   // implements Message ----------------------------------------------
 
-  QueryContextInformation* New() const;
-  void CopyFrom(const ::google::protobuf::Message& from);
-  void MergeFrom(const ::google::protobuf::Message& from);
+  inline QueryContextInformation* New() const final {
+    return CreateMaybeMessage<QueryContextInformation>(NULL);
+  }
+
+  QueryContextInformation* New(::google::protobuf::Arena* arena) const final {
+    return CreateMaybeMessage<QueryContextInformation>(arena);
+  }
+  void CopyFrom(const ::google::protobuf::Message& from) final;
+  void MergeFrom(const ::google::protobuf::Message& from) final;
   void CopyFrom(const QueryContextInformation& from);
   void MergeFrom(const QueryContextInformation& from);
-  void Clear();
-  bool IsInitialized() const;
+  void Clear() final;
+  bool IsInitialized() const final;
 
-  int ByteSize() const;
+  size_t ByteSizeLong() const final;
   bool MergePartialFromCodedStream(
-      ::google::protobuf::io::CodedInputStream* input);
+      ::google::protobuf::io::CodedInputStream* input) final;
   void SerializeWithCachedSizes(
-      ::google::protobuf::io::CodedOutputStream* output) const;
-  ::google::protobuf::uint8* SerializeWithCachedSizesToArray(::google::protobuf::uint8* output) const;
-  int GetCachedSize() const { return _cached_size_; }
+      ::google::protobuf::io::CodedOutputStream* output) const final;
+  ::google::protobuf::uint8* InternalSerializeWithCachedSizesToArray(
+      bool deterministic, ::google::protobuf::uint8* target) const final;
+  int GetCachedSize() const final { return _cached_size_.Get(); }
+
   private:
   void SharedCtor();
   void SharedDtor();
-  void SetCachedSize(int size) const;
+  void SetCachedSize(int size) const final;
+  void InternalSwap(QueryContextInformation* other);
+  private:
+  inline ::google::protobuf::Arena* GetArenaNoVirtual() const {
+    return NULL;
+  }
+  inline void* MaybeArenaPtr() const {
+    return NULL;
+  }
   public:
 
-  ::google::protobuf::Metadata GetMetadata() const;
+  ::google::protobuf::Metadata GetMetadata() const final;
 
   // nested types ----------------------------------------------------
 
   // accessors -------------------------------------------------------
 
-  // optional int64 query_start_time = 1;
-  inline bool has_query_start_time() const;
-  inline void clear_query_start_time();
-  static const int kQueryStartTimeFieldNumber = 1;
-  inline ::google::protobuf::int64 query_start_time() const;
-  inline void set_query_start_time(::google::protobuf::int64 value);
-
-  // optional int32 time_zone = 2;
-  inline bool has_time_zone() const;
-  inline void clear_time_zone();
-  static const int kTimeZoneFieldNumber = 2;
-  inline ::google::protobuf::int32 time_zone() const;
-  inline void set_time_zone(::google::protobuf::int32 value);
-
   // optional string default_schema_name = 3;
-  inline bool has_default_schema_name() const;
-  inline void clear_default_schema_name();
+  bool has_default_schema_name() const;
+  void clear_default_schema_name();
   static const int kDefaultSchemaNameFieldNumber = 3;
-  inline const ::std::string& default_schema_name() const;
-  inline void set_default_schema_name(const ::std::string& value);
-  inline void set_default_schema_name(const char* value);
-  inline void set_default_schema_name(const char* value, size_t size);
-  inline ::std::string* mutable_default_schema_name();
-  inline ::std::string* release_default_schema_name();
-  inline void set_allocated_default_schema_name(::std::string* default_schema_name);
+  const ::std::string& default_schema_name() const;
+  void set_default_schema_name(const ::std::string& value);
+  #if LANG_CXX11
+  void set_default_schema_name(::std::string&& value);
+  #endif
+  void set_default_schema_name(const char* value);
+  void set_default_schema_name(const char* value, size_t size);
+  ::std::string* mutable_default_schema_name();
+  ::std::string* release_default_schema_name();
+  void set_allocated_default_schema_name(::std::string* default_schema_name);
 
   // optional string session_id = 4;
-  inline bool has_session_id() const;
-  inline void clear_session_id();
+  bool has_session_id() const;
+  void clear_session_id();
   static const int kSessionIdFieldNumber = 4;
-  inline const ::std::string& session_id() const;
-  inline void set_session_id(const ::std::string& value);
-  inline void set_session_id(const char* value);
-  inline void set_session_id(const char* value, size_t size);
-  inline ::std::string* mutable_session_id();
-  inline ::std::string* release_session_id();
-  inline void set_allocated_session_id(::std::string* session_id);
+  const ::std::string& session_id() const;
+  void set_session_id(const ::std::string& value);
+  #if LANG_CXX11
+  void set_session_id(::std::string&& value);
+  #endif
+  void set_session_id(const char* value);
+  void set_session_id(const char* value, size_t size);
+  ::std::string* mutable_session_id();
+  ::std::string* release_session_id();
+  void set_allocated_session_id(::std::string* session_id);
 
-  // @@protoc_insertion_point(class_scope:exec.bit.control.QueryContextInformation)
- private:
-  inline void set_has_query_start_time();
-  inline void clear_has_query_start_time();
-  inline void set_has_time_zone();
-  inline void clear_has_time_zone();
-  inline void set_has_default_schema_name();
-  inline void clear_has_default_schema_name();
-  inline void set_has_session_id();
-  inline void clear_has_session_id();
+  // optional int64 query_start_time = 1;
+  bool has_query_start_time() const;
+  void clear_query_start_time();
+  static const int kQueryStartTimeFieldNumber = 1;
+  ::google::protobuf::int64 query_start_time() const;
+  void set_query_start_time(::google::protobuf::int64 value);
 
-  ::google::protobuf::UnknownFieldSet _unknown_fields_;
+  // optional int32 time_zone = 2;
+  bool has_time_zone() const;
+  void clear_time_zone();
+  static const int kTimeZoneFieldNumber = 2;
+  ::google::protobuf::int32 time_zone() const;
+  void set_time_zone(::google::protobuf::int32 value);
 
+  // @@protoc_insertion_point(class_scope:exec.bit.control.QueryContextInformation)
+ private:
+  void set_has_query_start_time();
+  void clear_has_query_start_time();
+  void set_has_time_zone();
+  void clear_has_time_zone();
+  void set_has_default_schema_name();
+  void clear_has_default_schema_name();
+  void set_has_session_id();
+  void clear_has_session_id();
+
+  ::google::protobuf::internal::InternalMetadataWithArena _internal_metadata_;
+  ::google::protobuf::internal::HasBits<1> _has_bits_;
+  mutable ::google::protobuf::internal::CachedSize _cached_size_;
+  ::google::protobuf::internal::ArenaStringPtr default_schema_name_;
+  ::google::protobuf::internal::ArenaStringPtr session_id_;
   ::google::protobuf::int64 query_start_time_;
-  ::std::string* default_schema_name_;
-  ::std::string* session_id_;
   ::google::protobuf::int32 time_zone_;
-
-  mutable int _cached_size_;
-  ::google::protobuf::uint32 _has_bits_[(4 + 31) / 32];
-
-  friend void  protobuf_AddDesc_BitControl_2eproto();
-  friend void protobuf_AssignDesc_BitControl_2eproto();
-  friend void protobuf_ShutdownFile_BitControl_2eproto();
-
-  void InitAsDefaultInstance();
-  static QueryContextInformation* default_instance_;
+  friend struct ::protobuf_BitControl_2eproto::TableStruct;
 };
 // -------------------------------------------------------------------
 
-class WorkQueueStatus : public ::google::protobuf::Message {
+class WorkQueueStatus : public ::google::protobuf::Message /* @@protoc_insertion_point(class_definition:exec.bit.control.WorkQueueStatus) */ {
  public:
   WorkQueueStatus();
   virtual ~WorkQueueStatus();
@@ -1065,100 +1419,135 @@ class WorkQueueStatus : public ::google::protobuf::Message {
     CopyFrom(from);
     return *this;
   }
+  #if LANG_CXX11
+  WorkQueueStatus(WorkQueueStatus&& from) noexcept
+    : WorkQueueStatus() {
+    *this = ::std::move(from);
+  }
 
+  inline WorkQueueStatus& operator=(WorkQueueStatus&& from) noexcept {
+    if (GetArenaNoVirtual() == from.GetArenaNoVirtual()) {
+      if (this != &from) InternalSwap(&from);
+    } else {
+      CopyFrom(from);
+    }
+    return *this;
+  }
+  #endif
   inline const ::google::protobuf::UnknownFieldSet& unknown_fields() const {
-    return _unknown_fields_;
+    return _internal_metadata_.unknown_fields();
   }
-
   inline ::google::protobuf::UnknownFieldSet* mutable_unknown_fields() {
-    return &_unknown_fields_;
+    return _internal_metadata_.mutable_unknown_fields();
   }
 
   static const ::google::protobuf::Descriptor* descriptor();
   static const WorkQueueStatus& default_instance();
 
+  static void InitAsDefaultInstance();  // FOR INTERNAL USE ONLY
+  static inline const WorkQueueStatus* internal_default_instance() {
+    return reinterpret_cast<const WorkQueueStatus*>(
+               &_WorkQueueStatus_default_instance_);
+  }
+  static constexpr int kIndexInFileMessages =
+    8;
+
   void Swap(WorkQueueStatus* other);
+  friend void swap(WorkQueueStatus& a, WorkQueueStatus& b) {
+    a.Swap(&b);
+  }
 
   // implements Message ----------------------------------------------
 
-  WorkQueueStatus* New() const;
-  void CopyFrom(const ::google::protobuf::Message& from);
-  void MergeFrom(const ::google::protobuf::Message& from);
+  inline WorkQueueStatus* New() const final {
+    return CreateMaybeMessage<WorkQueueStatus>(NULL);
+  }
+
+  WorkQueueStatus* New(::google::protobuf::Arena* arena) const final {
+    return CreateMaybeMessage<WorkQueueStatus>(arena);
+  }
+  void CopyFrom(const ::google::protobuf::Message& from) final;
+  void MergeFrom(const ::google::protobuf::Message& from) final;
   void CopyFrom(const WorkQueueStatus& from);
   void MergeFrom(const WorkQueueStatus& from);
-  void Clear();
-  bool IsInitialized() const;
+  void Clear() final;
+  bool IsInitialized() const final;
 
-  int ByteSize() const;
+  size_t ByteSizeLong() const final;
   bool MergePartialFromCodedStream(
-      ::google::protobuf::io::CodedInputStream* input);
+      ::google::protobuf::io::CodedInputStream* input) final;
   void SerializeWithCachedSizes(
-      ::google::protobuf::io::CodedOutputStream* output) const;
-  ::google::protobuf::uint8* SerializeWithCachedSizesToArray(::google::protobuf::uint8* output) const;
-  int GetCachedSize() const { return _cached_size_; }
+      ::google::protobuf::io::CodedOutputStream* output) const final;
+  ::google::protobuf::uint8* InternalSerializeWithCachedSizesToArray(
+      bool deterministic, ::google::protobuf::uint8* target) const final;
+  int GetCachedSize() const final { return _cached_size_.Get(); }
+
   private:
   void SharedCtor();
   void SharedDtor();
-  void SetCachedSize(int size) const;
+  void SetCachedSize(int size) const final;
+  void InternalSwap(WorkQueueStatus* other);
+  private:
+  inline ::google::protobuf::Arena* GetArenaNoVirtual() const {
+    return NULL;
+  }
+  inline void* MaybeArenaPtr() const {
+    return NULL;
+  }
   public:
 
-  ::google::protobuf::Metadata GetMetadata() const;
+  ::google::protobuf::Metadata GetMetadata() const final;
 
   // nested types ----------------------------------------------------
 
   // accessors -------------------------------------------------------
 
   // optional .exec.DrillbitEndpoint endpoint = 1;
-  inline bool has_endpoint() const;
-  inline void clear_endpoint();
+  bool has_endpoint() const;
+  void clear_endpoint();
   static const int kEndpointFieldNumber = 1;
-  inline const ::exec::DrillbitEndpoint& endpoint() const;
-  inline ::exec::DrillbitEndpoint* mutable_endpoint();
-  inline ::exec::DrillbitEndpoint* release_endpoint();
-  inline void set_allocated_endpoint(::exec::DrillbitEndpoint* endpoint);
-
-  // optional int32 queue_length = 2;
-  inline bool has_queue_length() const;
-  inline void clear_queue_length();
-  static const int kQueueLengthFieldNumber = 2;
-  inline ::google::protobuf::int32 queue_length() const;
-  inline void set_queue_length(::google::protobuf::int32 value);
+  private:
+  const ::exec::DrillbitEndpoint& _internal_endpoint() const;
+  public:
+  const ::exec::DrillbitEndpoint& endpoint() const;
+  ::exec::DrillbitEndpoint* release_endpoint();
+  ::exec::DrillbitEndpoint* mutable_endpoint();
+  void set_allocated_endpoint(::exec::DrillbitEndpoint* endpoint);
 
   // optional int64 report_time = 3;
-  inline bool has_report_time() const;
-  inline void clear_report_time();
+  bool has_report_time() const;
+  void clear_report_time();
   static const int kReportTimeFieldNumber = 3;
-  inline ::google::protobuf::int64 report_time() const;
-  inline void set_report_time(::google::protobuf::int64 value);
+  ::google::protobuf::int64 report_time() const;
+  void set_report_time(::google::protobuf::int64 value);
+
+  // optional int32 queue_length = 2;
+  bool has_queue_length() const;
+  void clear_queue_length();
+  static const int kQueueLengthFieldNumber = 2;
+  ::google::protobuf::int32 queue_length() const;
+  void set_queue_length(::google::protobuf::int32 value);
 
   // @@protoc_insertion_point(class_scope:exec.bit.control.WorkQueueStatus)
  private:
-  inline void set_has_endpoint();
-  inline void clear_has_endpoint();
-  inline void set_has_queue_length();
-  inline void clear_has_queue_length();
-  inline void set_has_report_time();
-  inline void clear_has_report_time();
-
-  ::google::protobuf::UnknownFieldSet _unknown_fields_;
-
+  void set_has_endpoint();
+  void clear_has_endpoint();
+  void set_has_queue_length();
+  void clear_has_queue_length();
+  void set_has_report_time();
+  void clear_has_report_time();
+
+  ::google::protobuf::internal::InternalMetadataWithArena _internal_metadata_;
+  ::google::protobuf::internal::HasBits<1> _has_bits_;
+  mutable ::google::protobuf::internal::CachedSize _cached_size_;
   ::exec::DrillbitEndpoint* endpoint_;
   ::google::protobuf::int64 report_time_;
   ::google::protobuf::int32 queue_length_;
-
-  mutable int _cached_size_;
-  ::google::protobuf::uint32 _has_bits_[(3 + 31) / 32];
-
-  friend void  protobuf_AddDesc_BitControl_2eproto();
-  friend void protobuf_AssignDesc_BitControl_2eproto();
-  friend void protobuf_ShutdownFile_BitControl_2eproto();
-
-  void InitAsDefaultInstance();
-  static WorkQueueStatus* default_instance_;
+  friend struct ::protobuf_BitControl_2eproto::TableStruct;
 };
 // -------------------------------------------------------------------
 
-class FinishedReceiver : public ::google::protobuf::Message {
+class FinishedReceiver : public ::google::protobuf::Message /* @@protoc_insertion_point(class_definition:exec.bit.control.FinishedReceiver) */ {
  public:
   FinishedReceiver();
   virtual ~FinishedReceiver();
@@ -1169,177 +1558,239 @@ class FinishedReceiver : public ::google::protobuf::Message {
     CopyFrom(from);
     return *this;
   }
+  #if LANG_CXX11
+  FinishedReceiver(FinishedReceiver&& from) noexcept
+    : FinishedReceiver() {
+    *this = ::std::move(from);
+  }
 
+  inline FinishedReceiver& operator=(FinishedReceiver&& from) noexcept {
+    if (GetArenaNoVirtual() == from.GetArenaNoVirtual()) {
+      if (this != &from) InternalSwap(&from);
+    } else {
+      CopyFrom(from);
+    }
+    return *this;
+  }
+  #endif
   inline const ::google::protobuf::UnknownFieldSet& unknown_fields() const {
-    return _unknown_fields_;
+    return _internal_metadata_.unknown_fields();
   }
-
   inline ::google::protobuf::UnknownFieldSet* mutable_unknown_fields() {
-    return &_unknown_fields_;
+    return _internal_metadata_.mutable_unknown_fields();
   }
 
   static const ::google::protobuf::Descriptor* descriptor();
   static const FinishedReceiver& default_instance();
 
+  static void InitAsDefaultInstance();  // FOR INTERNAL USE ONLY
+  static inline const FinishedReceiver* internal_default_instance() {
+    return reinterpret_cast<const FinishedReceiver*>(
+               &_FinishedReceiver_default_instance_);
+  }
+  static constexpr int kIndexInFileMessages =
+    9;
+
   void Swap(FinishedReceiver* other);
+  friend void swap(FinishedReceiver& a, FinishedReceiver& b) {
+    a.Swap(&b);
+  }
 
   // implements Message ----------------------------------------------
 
-  FinishedReceiver* New() const;
-  void CopyFrom(const ::google::protobuf::Message& from);
-  void MergeFrom(const ::google::protobuf::Message& from);
+  inline FinishedReceiver* New() const final {
+    return CreateMaybeMessage<FinishedReceiver>(NULL);
+  }
+
+  FinishedReceiver* New(::google::protobuf::Arena* arena) const final {
+    return CreateMaybeMessage<FinishedReceiver>(arena);
+  }
+  void CopyFrom(const ::google::protobuf::Message& from) final;
+  void MergeFrom(const ::google::protobuf::Message& from) final;
   void CopyFrom(const FinishedReceiver& from);
   void MergeFrom(const FinishedReceiver& from);
-  void Clear();
-  bool IsInitialized() const;
+  void Clear() final;
+  bool IsInitialized() const final;
 
-  int ByteSize() const;
+  size_t ByteSizeLong() const final;
   bool MergePartialFromCodedStream(
-      ::google::protobuf::io::CodedInputStream* input);
+      ::google::protobuf::io::CodedInputStream* input) final;
   void SerializeWithCachedSizes(
-      ::google::protobuf::io::CodedOutputStream* output) const;
-  ::google::protobuf::uint8* SerializeWithCachedSizesToArray(::google::protobuf::uint8* output) const;
-  int GetCachedSize() const { return _cached_size_; }
+      ::google::protobuf::io::CodedOutputStream* output) const final;
+  ::google::protobuf::uint8* InternalSerializeWithCachedSizesToArray(
+      bool deterministic, ::google::protobuf::uint8* target) const final;
+  int GetCachedSize() const final { return _cached_size_.Get(); }
+
   private:
   void SharedCtor();
   void SharedDtor();
-  void SetCachedSize(int size) const;
+  void SetCachedSize(int size) const final;
+  void InternalSwap(FinishedReceiver* other);
+  private:
+  inline ::google::protobuf::Arena* GetArenaNoVirtual() const {
+    return NULL;
+  }
+  inline void* MaybeArenaPtr() const {
+    return NULL;
+  }
   public:
 
-  ::google::protobuf::Metadata GetMetadata() const;
+  ::google::protobuf::Metadata GetMetadata() const final;
 
   // nested types ----------------------------------------------------
 
   // accessors -------------------------------------------------------
 
   // optional .exec.bit.FragmentHandle receiver = 1;
-  inline bool has_receiver() const;
-  inline void clear_receiver();
+  bool has_receiver() const;
+  void clear_receiver();
   static const int kReceiverFieldNumber = 1;
-  inline const ::exec::bit::FragmentHandle& receiver() const;
-  inline ::exec::bit::FragmentHandle* mutable_receiver();
-  inline ::exec::bit::FragmentHandle* release_receiver();
-  inline void set_allocated_receiver(::exec::bit::FragmentHandle* receiver);
+  private:
+  const ::exec::bit::FragmentHandle& _internal_receiver() const;
+  public:
+  const ::exec::bit::FragmentHandle& receiver() const;
+  ::exec::bit::FragmentHandle* release_receiver();
+  ::exec::bit::FragmentHandle* mutable_receiver();
+  void set_allocated_receiver(::exec::bit::FragmentHandle* receiver);
 
   // optional .exec.bit.FragmentHandle sender = 2;
-  inline bool has_sender() const;
-  inline void clear_sender();
+  bool has_sender() const;
+  void clear_sender();
   static const int kSenderFieldNumber = 2;
-  inline const ::exec::bit::FragmentHandle& sender() const;
-  inline ::exec::bit::FragmentHandle* mutable_sender();
-  inline ::exec::bit::FragmentHandle* release_sender();
-  inline void set_allocated_sender(::exec::bit::FragmentHandle* sender);
+  private:
+  const ::exec::bit::FragmentHandle& _internal_sender() const;
+  public:
+  const ::exec::bit::FragmentHandle& sender() const;
+  ::exec::bit::FragmentHandle* release_sender();
+  ::exec::bit::FragmentHandle* mutable_sender();
+  void set_allocated_sender(::exec::bit::FragmentHandle* sender);
 
   // @@protoc_insertion_point(class_scope:exec.bit.control.FinishedReceiver)
  private:
-  inline void set_has_receiver();
-  inline void clear_has_receiver();
-  inline void set_has_sender();
-  inline void clear_has_sender();
-
-  ::google::protobuf::UnknownFieldSet _unknown_fields_;
-
+  void set_has_receiver();
+  void clear_has_receiver();
+  void set_has_sender();
+  void clear_has_sender();
+
+  ::google::protobuf::internal::InternalMetadataWithArena _internal_metadata_;
+  ::google::protobuf::internal::HasBits<1> _has_bits_;
+  mutable ::google::protobuf::internal::CachedSize _cached_size_;
   ::exec::bit::FragmentHandle* receiver_;
   ::exec::bit::FragmentHandle* sender_;
-
-  mutable int _cached_size_;
-  ::google::protobuf::uint32 _has_bits_[(2 + 31) / 32];
-
-  friend void  protobuf_AddDesc_BitControl_2eproto();
-  friend void protobuf_AssignDesc_BitControl_2eproto();
-  friend void protobuf_ShutdownFile_BitControl_2eproto();
-
-  void InitAsDefaultInstance();
-  static FinishedReceiver* default_instance_;
+  friend struct ::protobuf_BitControl_2eproto::TableStruct;
 };
 // ===================================================================
 
 
 // ===================================================================
 
+#ifdef __GNUC__
+  #pragma GCC diagnostic push
+  #pragma GCC diagnostic ignored "-Wstrict-aliasing"
+#endif  // __GNUC__
 // BitControlHandshake
 
 // optional int32 rpc_version = 1;
 inline bool BitControlHandshake::has_rpc_version() const {
-  return (_has_bits_[0] & 0x00000001u) != 0;
+  return (_has_bits_[0] & 0x00000002u) != 0;
 }
 inline void BitControlHandshake::set_has_rpc_version() {
-  _has_bits_[0] |= 0x00000001u;
+  _has_bits_[0] |= 0x00000002u;
 }
 inline void BitControlHandshake::clear_has_rpc_version() {
-  _has_bits_[0] &= ~0x00000001u;
+  _has_bits_[0] &= ~0x00000002u;
 }
 inline void BitControlHandshake::clear_rpc_version() {
   rpc_version_ = 0;
   clear_has_rpc_version();
 }
 inline ::google::protobuf::int32 BitControlHandshake::rpc_version() const {
+  // @@protoc_insertion_point(field_get:exec.bit.control.BitControlHandshake.rpc_version)
   return rpc_version_;
 }
 inline void BitControlHandshake::set_rpc_version(::google::protobuf::int32 value) {
   set_has_rpc_version();
   rpc_version_ = value;
+  // @@protoc_insertion_point(field_set:exec.bit.control.BitControlHandshake.rpc_version)
 }
 
 // optional .exec.shared.RpcChannel channel = 2 [default = BIT_CONTROL];
 inline bool BitControlHandshake::has_channel() const {
-  return (_has_bits_[0] & 0x00000002u) != 0;
+  return (_has_bits_[0] & 0x00000004u) != 0;
 }
 inline void BitControlHandshake::set_has_channel() {
-  _has_bits_[0] |= 0x00000002u;
+  _has_bits_[0] |= 0x00000004u;
 }
 inline void BitControlHandshake::clear_has_channel() {
-  _has_bits_[0] &= ~0x00000002u;
+  _has_bits_[0] &= ~0x00000004u;
 }
 inline void BitControlHandshake::clear_channel() {
   channel_ = 0;
   clear_has_channel();
 }
 inline ::exec::shared::RpcChannel BitControlHandshake::channel() const {
+  // @@protoc_insertion_point(field_get:exec.bit.control.BitControlHandshake.channel)
   return static_cast< ::exec::shared::RpcChannel >(channel_);
 }
 inline void BitControlHandshake::set_channel(::exec::shared::RpcChannel value) {
   assert(::exec::shared::RpcChannel_IsValid(value));
   set_has_channel();
   channel_ = value;
+  // @@protoc_insertion_point(field_set:exec.bit.control.BitControlHandshake.channel)
 }
 
 // optional .exec.DrillbitEndpoint endpoint = 3;
 inline bool BitControlHandshake::has_endpoint() const {
-  return (_has_bits_[0] & 0x00000004u) != 0;
+  return (_has_bits_[0] & 0x00000001u) != 0;
 }
 inline void BitControlHandshake::set_has_endpoint() {
-  _has_bits_[0] |= 0x00000004u;
+  _has_bits_[0] |= 0x00000001u;
 }
 inline void BitControlHandshake::clear_has_endpoint() {
-  _has_bits_[0] &= ~0x00000004u;
+  _has_bits_[0] &= ~0x00000001u;
 }
-inline void BitControlHandshake::clear_endpoint() {
-  if (endpoint_ != NULL) endpoint_->::exec::DrillbitEndpoint::Clear();
-  clear_has_endpoint();
+inline const ::exec::DrillbitEndpoint& BitControlHandshake::_internal_endpoint() const {
+  return *endpoint_;
 }
 inline const ::exec::DrillbitEndpoint& BitControlHandshake::endpoint() const {
-  return endpoint_ != NULL ? *endpoint_ : *default_instance_->endpoint_;
-}
-inline ::exec::DrillbitEndpoint* BitControlHandshake::mutable_endpoint() {
-  set_has_endpoint();
-  if (endpoint_ == NULL) endpoint_ = new ::exec::DrillbitEndpoint;
-  return endpoint_;
+  const ::exec::DrillbitEndpoint* p = endpoint_;
+  // @@protoc_insertion_point(field_get:exec.bit.control.BitControlHandshake.endpoint)
+  return p != NULL ? *p : *reinterpret_cast<const ::exec::DrillbitEndpoint*>(
+      &::exec::_DrillbitEndpoint_default_instance_);
 }
 inline ::exec::DrillbitEndpoint* BitControlHandshake::release_endpoint() {
+  // @@protoc_insertion_point(field_release:exec.bit.control.BitControlHandshake.endpoint)
   clear_has_endpoint();
   ::exec::DrillbitEndpoint* temp = endpoint_;
   endpoint_ = NULL;
   return temp;
 }
+inline ::exec::DrillbitEndpoint* BitControlHandshake::mutable_endpoint() {
+  set_has_endpoint();
+  if (endpoint_ == NULL) {
+    auto* p = CreateMaybeMessage<::exec::DrillbitEndpoint>(GetArenaNoVirtual());
+    endpoint_ = p;
+  }
+  // @@protoc_insertion_point(field_mutable:exec.bit.control.BitControlHandshake.endpoint)
+  return endpoint_;
+}
 inline void BitControlHandshake::set_allocated_endpoint(::exec::DrillbitEndpoint* endpoint) {
-  delete endpoint_;
-  endpoint_ = endpoint;
+  ::google::protobuf::Arena* message_arena = GetArenaNoVirtual();
+  if (message_arena == NULL) {
+    delete reinterpret_cast< ::google::protobuf::MessageLite*>(endpoint_);
+  }
   if (endpoint) {
+    ::google::protobuf::Arena* submessage_arena = NULL;
+    if (message_arena != submessage_arena) {
+      endpoint = ::google::protobuf::internal::GetOwnedMessage(
+          message_arena, endpoint, submessage_arena);
+    }
     set_has_endpoint();
   } else {
     clear_has_endpoint();
   }
+  endpoint_ = endpoint;
+  // @@protoc_insertion_point(field_set_allocated:exec.bit.control.BitControlHandshake.endpoint)
 }
 
 // repeated string authenticationMechanisms = 4;
@@ -1350,39 +1801,64 @@ inline void BitControlHandshake::clear_authenticationmechanisms() {
   authenticationmechanisms_.Clear();
 }
 inline const ::std::string& BitControlHandshake::authenticationmechanisms(int index) const {
+  // @@protoc_insertion_point(field_get:exec.bit.control.BitControlHandshake.authenticationMechanisms)
   return authenticationmechanisms_.Get(index);
 }
 inline ::std::string* BitControlHandshake::mutable_authenticationmechanisms(int index) {
+  // @@protoc_insertion_point(field_mutable:exec.bit.control.BitControlHandshake.authenticationMechanisms)
   return authenticationmechanisms_.Mutable(index);
 }
 inline void BitControlHandshake::set_authenticationmechanisms(int index, const ::std::string& value) {
+  // @@protoc_insertion_point(field_set:exec.bit.control.BitControlHandshake.authenticationMechanisms)
   authenticationmechanisms_.Mutable(index)->assign(value);
 }
+#if LANG_CXX11
+inline void BitControlHandshake::set_authenticationmechanisms(int index, ::std::string&& value) {
+  // @@protoc_insertion_point(field_set:exec.bit.control.BitControlHandshake.authenticationMechanisms)
+  authenticationmechanisms_.Mutable(index)->assign(std::move(value));
+}
+#endif
 inline void BitControlHandshake::set_authenticationmechanisms(int index, const char* value) {
+  GOOGLE_DCHECK(value != NULL);
   authenticationmechanisms_.Mutable(index)->assign(value);
+  // @@protoc_insertion_point(field_set_char:exec.bit.control.BitControlHandshake.authenticationMechanisms)
 }
 inline void BitControlHandshake::set_authenticationmechanisms(int index, const char* value, size_t size) {
   authenticationmechanisms_.Mutable(index)->assign(
     reinterpret_cast<const char*>(value), size);
+  // @@protoc_insertion_point(field_set_pointer:exec.bit.control.BitControlHandshake.authenticationMechanisms)
 }
 inline ::std::string* BitControlHandshake::add_authenticationmechanisms() {
+  // @@protoc_insertion_point(field_add_mutable:exec.bit.control.BitControlHandshake.authenticationMechanisms)
   return authenticationmechanisms_.Add();
 }
 inline void BitControlHandshake::add_authenticationmechanisms(const ::std::string& value) {
   authenticationmechanisms_.Add()->assign(value);
+  // @@protoc_insertion_point(field_add:exec.bit.control.BitControlHandshake.authenticationMechanisms)
 }
+#if LANG_CXX11
+inline void BitControlHandshake::add_authenticationmechanisms(::std::string&& value) {
+  authenticationmechanisms_.Add(std::move(value));
+  // @@protoc_insertion_point(field_add:exec.bit.control.BitControlHandshake.authenticationMechanisms)
+}
+#endif
 inline void BitControlHandshake::add_authenticationmechanisms(const char* value) {
+  GOOGLE_DCHECK(value != NULL);
   authenticationmechanisms_.Add()->assign(value);
+  // @@protoc_insertion_point(field_add_char:exec.bit.control.BitControlHandshake.authenticationMechanisms)
 }
 inline void BitControlHandshake::add_authenticationmechanisms(const char* value, size_t size) {
   authenticationmechanisms_.Add()->assign(reinterpret_cast<const char*>(value), size);
+  // @@protoc_insertion_point(field_add_pointer:exec.bit.control.BitControlHandshake.authenticationMechanisms)
 }
 inline const ::google::protobuf::RepeatedPtrField< ::std::string>&
 BitControlHandshake::authenticationmechanisms() const {
+  // @@protoc_insertion_point(field_list:exec.bit.control.BitControlHandshake.authenticationMechanisms)
   return authenticationmechanisms_;
 }
 inline ::google::protobuf::RepeatedPtrField< ::std::string>*
 BitControlHandshake::mutable_authenticationmechanisms() {
+  // @@protoc_insertion_point(field_mutable_list:exec.bit.control.BitControlHandshake.authenticationMechanisms)
   return &authenticationmechanisms_;
 }
 
@@ -1397,23 +1873,28 @@ inline int BitStatus::fragment_status_size() const {
 inline void BitStatus::clear_fragment_status() {
   fragment_status_.Clear();
 }
-inline const ::exec::bit::control::FragmentStatus& BitStatus::fragment_status(int index) const {
-  return fragment_status_.Get(index);
-}
 inline ::exec::bit::control::FragmentStatus* BitStatus::mutable_fragment_status(int index) {
+  // @@protoc_insertion_point(field_mutable:exec.bit.control.BitStatus.fragment_status)
   return fragment_status_.Mutable(index);
 }
+inline ::google::protobuf::RepeatedPtrField< ::exec::bit::control::FragmentStatus >*
+BitStatus::mutable_fragment_status() {
+  // @@protoc_insertion_point(field_mutable_list:exec.bit.control.BitStatus.fragment_status)
+  return &fragment_status_;
+}
+inline const ::exec::bit::control::FragmentStatus& BitStatus::fragment_status(int index) const {
+  // @@protoc_insertion_point(field_get:exec.bit.control.BitStatus.fragment_status)
+  return fragment_status_.Get(index);
+}
 inline ::exec::bit::control::FragmentStatus* BitStatus::add_fragment_status() {
+  // @@protoc_insertion_point(field_add:exec.bit.control.BitStatus.fragment_status)
   return fragment_status_.Add();
 }
 inline const ::google::protobuf::RepeatedPtrField< ::exec::bit::control::FragmentStatus >&
 BitStatus::fragment_status() const {
+  // @@protoc_insertion_point(field_list:exec.bit.control.BitStatus.fragment_status)
   return fragment_status_;
 }
-inline ::google::protobuf::RepeatedPtrField< ::exec::bit::control::FragmentStatus >*
-BitStatus::mutable_fragment_status() {
-  return &fragment_status_;
-}
 
 // -------------------------------------------------------------------
 
@@ -1429,32 +1910,48 @@ inline void FragmentStatus::set_has_profile() {
 inline void FragmentStatus::clear_has_profile() {
   _has_bits_[0] &= ~0x00000001u;
 }
-inline void FragmentStatus::clear_profile() {
-  if (profile_ != NULL) profile_->::exec::shared::MinorFragmentProfile::Clear();
-  clear_has_profile();
+inline const ::exec::shared::MinorFragmentProfile& FragmentStatus::_internal_profile() const {
+  return *profile_;
 }
 inline const ::exec::shared::MinorFragmentProfile& FragmentStatus::profile() const {
-  return profile_ != NULL ? *profile_ : *default_instance_->profile_;
-}
-inline ::exec::shared::MinorFragmentProfile* FragmentStatus::mutable_profile() {
-  set_has_profile();
-  if (profile_ == NULL) profile_ = new ::exec::shared::MinorFragmentProfile;
-  return profile_;
+  const ::exec::shared::MinorFragmentProfile* p = profile_;
+  // @@protoc_insertion_point(field_get:exec.bit.control.FragmentStatus.profile)
+  return p != NULL ? *p : *reinterpret_cast<const ::exec::shared::MinorFragmentProfile*>(
+      &::exec::shared::_MinorFragmentProfile_default_instance_);
 }
 inline ::exec::shared::MinorFragmentProfile* FragmentStatus::release_profile() {
+  // @@protoc_insertion_point(field_release:exec.bit.control.FragmentStatus.profile)
   clear_has_profile();
   ::exec::shared::MinorFragmentProfile* temp = profile_;
   profile_ = NULL;
   return temp;
 }
+inline ::exec::shared::MinorFragmentProfile* FragmentStatus::mutable_profile() {
+  set_has_profile();
+  if (profile_ == NULL) {
+    auto* p = CreateMaybeMessage<::exec::shared::MinorFragmentProfile>(GetArenaNoVirtual());
+    profile_ = p;
+  }
+  // @@protoc_insertion_point(field_mutable:exec.bit.control.FragmentStatus.profile)
+  return profile_;
+}
 inline void FragmentStatus::set_allocated_profile(::exec::shared::MinorFragmentProfile* profile) {
-  delete profile_;
-  profile_ = profile;
+  ::google::protobuf::Arena* message_arena = GetArenaNoVirtual();
+  if (message_arena == NULL) {
+    delete reinterpret_cast< ::google::protobuf::MessageLite*>(profile_);
+  }
   if (profile) {
+    ::google::protobuf::Arena* submessage_arena = NULL;
+    if (message_arena != submessage_arena) {
+      profile = ::google::protobuf::internal::GetOwnedMessage(
+          message_arena, profile, submessage_arena);
+    }
     set_has_profile();
   } else {
     clear_has_profile();
   }
+  profile_ = profile;
+  // @@protoc_insertion_point(field_set_allocated:exec.bit.control.FragmentStatus.profile)
 }
 
 // optional .exec.bit.FragmentHandle handle = 2;
@@ -1467,32 +1964,48 @@ inline void FragmentStatus::set_has_handle() {
 inline void FragmentStatus::clear_has_handle() {
   _has_bits_[0] &= ~0x00000002u;
 }
-inline void FragmentStatus::clear_handle() {
-  if (handle_ != NULL) handle_->::exec::bit::FragmentHandle::Clear();
-  clear_has_handle();
+inline const ::exec::bit::FragmentHandle& FragmentStatus::_internal_handle() const {
+  return *handle_;
 }
 inline const ::exec::bit::FragmentHandle& FragmentStatus::handle() const {
-  return handle_ != NULL ? *handle_ : *default_instance_->handle_;
-}
-inline ::exec::bit::FragmentHandle* FragmentStatus::mutable_handle() {
-  set_has_handle();
-  if (handle_ == NULL) handle_ = new ::exec::bit::FragmentHandle;
-  return handle_;
+  const ::exec::bit::FragmentHandle* p = handle_;
+  // @@protoc_insertion_point(field_get:exec.bit.control.FragmentStatus.handle)
+  return p != NULL ? *p : *reinterpret_cast<const ::exec::bit::FragmentHandle*>(
+      &::exec::bit::_FragmentHandle_default_instance_);
 }
 inline ::exec::bit::FragmentHandle* FragmentStatus::release_handle() {
+  // @@protoc_insertion_point(field_release:exec.bit.control.FragmentStatus.handle)
   clear_has_handle();
   ::exec::bit::FragmentHandle* temp = handle_;
   handle_ = NULL;
   return temp;
 }
+inline ::exec::bit::FragmentHandle* FragmentStatus::mutable_handle() {
+  set_has_handle();
+  if (handle_ == NULL) {
+    auto* p = CreateMaybeMessage<::exec::bit::FragmentHandle>(GetArenaNoVirtual());
+    handle_ = p;
+  }
+  // @@protoc_insertion_point(field_mutable:exec.bit.control.FragmentStatus.handle)
+  return handle_;
+}
 inline void FragmentStatus::set_allocated_handle(::exec::bit::FragmentHandle* handle) {
-  delete handle_;
-  handle_ = handle;
+  ::google::protobuf::Arena* message_arena = GetArenaNoVirtual();
+  if (message_arena == NULL) {
+    delete reinterpret_cast< ::google::protobuf::MessageLite*>(handle_);
+  }
   if (handle) {
+    ::google::protobuf::Arena* submessage_arena = NULL;
+    if (message_arena != submessage_arena) {
+      handle = ::google::protobuf::internal::GetOwnedMessage(
+          message_arena, handle, submessage_arena);
+    }
     set_has_handle();
   } else {
     clear_has_handle();
   }
+  handle_ = handle;
+  // @@protoc_insertion_point(field_set_allocated:exec.bit.control.FragmentStatus.handle)
 }
 
 // -------------------------------------------------------------------
@@ -1506,23 +2019,28 @@ inline int InitializeFragments::fragment_size() const {
 inline void InitializeFragments::clear_fragment() {
   fragment_.Clear();
 }
-inline const ::exec::bit::control::PlanFragment& InitializeFragments::fragment(int index) const {
-  return fragment_.Get(index);
-}
 inline ::exec::bit::control::PlanFragment* InitializeFragments::mutable_fragment(int index) {
+  // @@protoc_insertion_point(field_mutable:exec.bit.control.InitializeFragments.fragment)
   return fragment_.Mutable(index);
 }
+inline ::google::protobuf::RepeatedPtrField< ::exec::bit::control::PlanFragment >*
+InitializeFragments::mutable_fragment() {
+  // @@protoc_insertion_point(field_mutable_list:exec.bit.control.InitializeFragments.fragment)
+  return &fragment_;
+}
+inline const ::exec::bit::control::PlanFragment& InitializeFragments::fragment(int index) const {
+  // @@protoc_insertion_point(field_get:exec.bit.control.InitializeFragments.fragment)
+  return fragment_.Get(index);
+}
 inline ::exec::bit::control::PlanFragment* InitializeFragments::add_fragment() {
+  // @@protoc_insertion_point(field_add:exec.bit.control.InitializeFragments.fragment)
   return fragment_.Add();
 }
 inline const ::google::protobuf::RepeatedPtrField< ::exec::bit::control::PlanFragment >&
 InitializeFragments::fragment() const {
+  // @@protoc_insertion_point(field_list:exec.bit.control.InitializeFragments.fragment)
   return fragment_;
 }
-inline ::google::protobuf::RepeatedPtrField< ::exec::bit::control::PlanFragment >*
-InitializeFragments::mutable_fragment() {
-  return &fragment_;
-}
 
 // -------------------------------------------------------------------
 
@@ -1530,94 +2048,92 @@ InitializeFragments::mutable_fragment() {
 
 // optional int32 type = 1;
 inline bool CustomMessage::has_type() const {
-  return (_has_bits_[0] & 0x00000001u) != 0;
+  return (_has_bits_[0] & 0x00000002u) != 0;
 }
 inline void CustomMessage::set_has_type() {
-  _has_bits_[0] |= 0x00000001u;
+  _has_bits_[0] |= 0x00000002u;
 }
 inline void CustomMessage::clear_has_type() {
-  _has_bits_[0] &= ~0x00000001u;
+  _has_bits_[0] &= ~0x00000002u;
 }
 inline void CustomMessage::clear_type() {
   type_ = 0;
   clear_has_type();
 }
 inline ::google::protobuf::int32 CustomMessage::type() const {
+  // @@protoc_insertion_point(field_get:exec.bit.control.CustomMessage.type)
   return type_;
 }
 inline void CustomMessage::set_type(::google::protobuf::int32 value) {
   set_has_type();
   type_ = value;
+  // @@protoc_insertion_point(field_set:exec.bit.control.CustomMessage.type)
 }
 
 // optional bytes message = 2;
 inline bool CustomMessage::has_message() const {
-  return (_has_bits_[0] & 0x00000002u) != 0;
+  return (_has_bits_[0] & 0x00000001u) != 0;
 }
 inline void CustomMessage::set_has_message() {
-  _has_bits_[0] |= 0x00000002u;
+  _has_bits_[0] |= 0x00000001u;
 }
 inline void CustomMessage::clear_has_message() {
-  _has_bits_[0] &= ~0x00000002u;
+  _has_bits_[0] &= ~0x00000001u;
 }
 inline void CustomMessage::clear_message() {
-  if (message_ != &::google::protobuf::internal::kEmptyString) {
-    message_->clear();
-  }
+  message_.ClearToEmptyNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
   clear_has_message();
 }
 inline const ::std::string& CustomMessage::message() const {
-  return *message_;
+  // @@protoc_insertion_point(field_get:exec.bit.control.CustomMessage.message)
+  return message_.GetNoArena();
 }
 inline void CustomMessage::set_message(const ::std::string& value) {
   set_has_message();
-  if (message_ == &::google::protobuf::internal::kEmptyString) {
-    message_ = new ::std::string;
-  }
-  message_->assign(value);
+  message_.SetNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), value);
+  // @@protoc_insertion_point(field_set:exec.bit.control.CustomMessage.message)
 }
+#if LANG_CXX11
+inline void CustomMessage::set_message(::std::string&& value) {
+  set_has_message();
+  message_.SetNoArena(
+    &::google::protobuf::internal::GetEmptyStringAlreadyInited(), ::std::move(value));
+  // @@protoc_insertion_point(field_set_rvalue:exec.bit.control.CustomMessage.message)
+}
+#endif
 inline void CustomMessage::set_message(const char* value) {
+  GOOGLE_DCHECK(value != NULL);
   set_has_message();
-  if (message_ == &::google::protobuf::internal::kEmptyString) {
-    message_ = new ::std::string;
-  }
-  message_->assign(value);
+  message_.SetNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), ::std::string(value));
+  // @@protoc_insertion_point(field_set_char:exec.bit.control.CustomMessage.message)
 }
 inline void CustomMessage::set_message(const void* value, size_t size) {
   set_has_message();
-  if (message_ == &::google::protobuf::internal::kEmptyString) {
-    message_ = new ::std::string;
-  }
-  message_->assign(reinterpret_cast<const char*>(value), size);
+  message_.SetNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(),
+      ::std::string(reinterpret_cast<const char*>(value), size));
+  // @@protoc_insertion_point(field_set_pointer:exec.bit.control.CustomMessage.message)
 }
 inline ::std::string* CustomMessage::mutable_message() {
   set_has_message();
-  if (message_ == &::google::protobuf::internal::kEmptyString) {
-    message_ = new ::std::string;
-  }
-  return message_;
+  // @@protoc_insertion_point(field_mutable:exec.bit.control.CustomMessage.message)
+  return message_.MutableNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
 }
 inline ::std::string* CustomMessage::release_message() {
-  clear_has_message();
-  if (message_ == &::google::protobuf::internal::kEmptyString) {
+  // @@protoc_insertion_point(field_release:exec.bit.control.CustomMessage.message)
+  if (!has_message()) {
     return NULL;
-  } else {
-    ::std::string* temp = message_;
-    message_ = const_cast< ::std::string*>(&::google::protobuf::internal::kEmptyString);
-    return temp;
   }
+  clear_has_message();
+  return message_.ReleaseNonDefaultNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
 }
 inline void CustomMessage::set_allocated_message(::std::string* message) {
-  if (message_ != &::google::protobuf::internal::kEmptyString) {
-    delete message_;
-  }
-  if (message) {
+  if (message != NULL) {
     set_has_message();
-    message_ = message;
   } else {
     clear_has_message();
-    message_ = const_cast< ::std::string*>(&::google::protobuf::internal::kEmptyString);
   }
+  message_.SetAllocatedNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), message);
+  // @@protoc_insertion_point(field_set_allocated:exec.bit.control.CustomMessage.message)
 }
 
 // -------------------------------------------------------------------
@@ -1626,486 +2142,576 @@ inline void CustomMessage::set_allocated_message(::std::string* message) {
 
 // optional .exec.bit.FragmentHandle handle = 1;
 inline bool PlanFragment::has_handle() const {
-  return (_has_bits_[0] & 0x00000001u) != 0;
+  return (_has_bits_[0] & 0x00000004u) != 0;
 }
 inline void PlanFragment::set_has_handle() {
-  _has_bits_[0] |= 0x00000001u;
+  _has_bits_[0] |= 0x00000004u;
 }
 inline void PlanFragment::clear_has_handle() {
-  _has_bits_[0] &= ~0x00000001u;
+  _has_bits_[0] &= ~0x00000004u;
 }
-inline void PlanFragment::clear_handle() {
-  if (handle_ != NULL) handle_->::exec::bit::FragmentHandle::Clear();
-  clear_has_handle();
+inline const ::exec::bit::FragmentHandle& PlanFragment::_internal_handle() const {
+  return *handle_;
 }
 inline const ::exec::bit::FragmentHandle& PlanFragment::handle() const {
-  return handle_ != NULL ? *handle_ : *default_instance_->handle_;
-}
-inline ::exec::bit::FragmentHandle* PlanFragment::mutable_handle() {
-  set_has_handle();
-  if (handle_ == NULL) handle_ = new ::exec::bit::FragmentHandle;
-  return handle_;
+  const ::exec::bit::FragmentHandle* p = handle_;
+  // @@protoc_insertion_point(field_get:exec.bit.control.PlanFragment.handle)
+  return p != NULL ? *p : *reinterpret_cast<const ::exec::bit::FragmentHandle*>(
+      &::exec::bit::_FragmentHandle_default_instance_);
 }
 inline ::exec::bit::FragmentHandle* PlanFragment::release_handle() {
+  // @@protoc_insertion_point(field_release:exec.bit.control.PlanFragment.handle)
   clear_has_handle();
   ::exec::bit::FragmentHandle* temp = handle_;
   handle_ = NULL;
   return temp;
 }
+inline ::exec::bit::FragmentHandle* PlanFragment::mutable_handle() {
+  set_has_handle();
+  if (handle_ == NULL) {
+    auto* p = CreateMaybeMessage<::exec::bit::FragmentHandle>(GetArenaNoVirtual());
+    handle_ = p;
+  }
+  // @@protoc_insertion_point(field_mutable:exec.bit.control.PlanFragment.handle)
+  return handle_;
+}
 inline void PlanFragment::set_allocated_handle(::exec::bit::FragmentHandle* handle) {
-  delete handle_;
-  handle_ = handle;
+  ::google::protobuf::Arena* message_arena = GetArenaNoVirtual();
+  if (message_arena == NULL) {
+    delete reinterpret_cast< ::google::protobuf::MessageLite*>(handle_);
+  }
   if (handle) {
+    ::google::protobuf::Arena* submessage_arena = NULL;
+    if (message_arena != submessage_arena) {
+      handle = ::google::protobuf::internal::GetOwnedMessage(
+          message_arena, handle, submessage_arena);
+    }
     set_has_handle();
   } else {
     clear_has_handle();
   }
+  handle_ = handle;
+  // @@protoc_insertion_point(field_set_allocated:exec.bit.control.PlanFragment.handle)
 }
 
 // optional float network_cost = 4;
 inline bool PlanFragment::has_network_cost() const {
-  return (_has_bits_[0] & 0x00000002u) != 0;
+  return (_has_bits_[0] & 0x00000080u) != 0;
 }
 inline void PlanFragment::set_has_network_cost() {
-  _has_bits_[0] |= 0x00000002u;
+  _has_bits_[0] |= 0x00000080u;
 }
 inline void PlanFragment::clear_has_network_cost() {
-  _has_bits_[0] &= ~0x00000002u;
+  _has_bits_[0] &= ~0x00000080u;
 }
 inline void PlanFragment::clear_network_cost() {
   network_cost_ = 0;
   clear_has_network_cost();
 }
 inline float PlanFragment::network_cost() const {
+  // @@protoc_insertion_point(field_get:exec.bit.control.PlanFragment.network_cost)
   return network_cost_;
 }
 inline void PlanFragment::set_network_cost(float value) {
   set_has_network_cost();
   network_cost_ = value;
+  // @@protoc_insertion_point(field_set:exec.bit.control.PlanFragment.network_cost)
 }
 
 // optional float cpu_cost = 5;
 inline bool PlanFragment::has_cpu_cost() const {
-  return (_has_bits_[0] & 0x00000004u) != 0;
+  return (_has_bits_[0] & 0x00000100u) != 0;
 }
 inline void PlanFragment::set_has_cpu_cost() {
-  _has_bits_[0] |= 0x00000004u;
+  _has_bits_[0] |= 0x00000100u;
 }
 inline void PlanFragment::clear_has_cpu_cost() {
-  _has_bits_[0] &= ~0x00000004u;
+  _has_bits_[0] &= ~0x00000100u;
 }
 inline void PlanFragment::clear_cpu_cost() {
   cpu_cost_ = 0;
   clear_has_cpu_cost();
 }
 inline float PlanFragment::cpu_cost() const {
+  // @@protoc_insertion_point(field_get:exec.bit.control.PlanFragment.cpu_cost)
   return cpu_cost_;
 }
 inline void PlanFragment::set_cpu_cost(float value) {
   set_has_cpu_cost();
   cpu_cost_ = value;
+  // @@protoc_insertion_point(field_set:exec.bit.control.PlanFragment.cpu_cost)
 }
 
 // optional float disk_cost = 6;
 inline bool PlanFragment::has_disk_cost() const {
-  return (_has_bits_[0] & 0x00000008u) != 0;
+  return (_has_bits_[0] & 0x00000200u) != 0;
 }
 inline void PlanFragment::set_has_disk_cost() {
-  _has_bits_[0] |= 0x00000008u;
+  _has_bits_[0] |= 0x00000200u;
 }
 inline void PlanFragment::clear_has_disk_cost() {
-  _has_bits_[0] &= ~0x00000008u;
+  _has_bits_[0] &= ~0x00000200u;
 }
 inline void PlanFragment::clear_disk_cost() {
   disk_cost_ = 0;
   clear_has_disk_cost();
 }
 inline float PlanFragment::disk_cost() const {
+  // @@protoc_insertion_point(field_get:exec.bit.control.PlanFragment.disk_cost)
   return disk_cost_;
 }
 inline void PlanFragment::set_disk_cost(float value) {
   set_has_disk_cost();
   disk_cost_ = value;
+  // @@protoc_insertion_point(field_set:exec.bit.control.PlanFragment.disk_cost)
 }
 
 // optional float memory_cost = 7;
 inline bool PlanFragment::has_memory_cost() const {
-  return (_has_bits_[0] & 0x00000010u) != 0;
+  return (_has_bits_[0] & 0x00000400u) != 0;
 }
 inline void PlanFragment::set_has_memory_cost() {
-  _has_bits_[0] |= 0x00000010u;
+  _has_bits_[0] |= 0x00000400u;
 }
 inline void PlanFragment::clear_has_memory_cost() {
-  _has_bits_[0] &= ~0x00000010u;
+  _has_bits_[0] &= ~0x00000400u;
 }
 inline void PlanFragment::clear_memory_cost() {
   memory_cost_ = 0;
   clear_has_memory_cost();
 }
 inline float PlanFragment::memory_cost() const {
+  // @@protoc_insertion_point(field_get:exec.bit.control.PlanFragment.memory_cost)
   return memory_cost_;
 }
 inline void PlanFragment::set_memory_cost(float value) {
   set_has_memory_cost();
   memory_cost_ = value;
+  // @@protoc_insertion_point(field_set:exec.bit.control.PlanFragment.memory_cost)
 }
 
 // optional string fragment_json = 8;
 inline bool PlanFragment::has_fragment_json() const {
-  return (_has_bits_[0] & 0x00000020u) != 0;
+  return (_has_bits_[0] & 0x00000001u) != 0;
 }
 inline void PlanFragment::set_has_fragment_json() {
-  _has_bits_[0] |= 0x00000020u;
+  _has_bits_[0] |= 0x00000001u;
 }
 inline void PlanFragment::clear_has_fragment_json() {
-  _has_bits_[0] &= ~0x00000020u;
+  _has_bits_[0] &= ~0x00000001u;
 }
 inline void PlanFragment::clear_fragment_json() {
-  if (fragment_json_ != &::google::protobuf::internal::kEmptyString) {
-    fragment_json_->clear();
-  }
+  fragment_json_.ClearToEmptyNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
   clear_has_fragment_json();
 }
 inline const ::std::string& PlanFragment::fragment_json() const {
-  return *fragment_json_;
+  // @@protoc_insertion_point(field_get:exec.bit.control.PlanFragment.fragment_json)
+  return fragment_json_.GetNoArena();
 }
 inline void PlanFragment::set_fragment_json(const ::std::string& value) {
   set_has_fragment_json();
-  if (fragment_json_ == &::google::protobuf::internal::kEmptyString) {
-    fragment_json_ = new ::std::string;
-  }
-  fragment_json_->assign(value);
+  fragment_json_.SetNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), value);
+  // @@protoc_insertion_point(field_set:exec.bit.control.PlanFragment.fragment_json)
+}
+#if LANG_CXX11
+inline void PlanFragment::set_fragment_json(::std::string&& value) {
+  set_has_fragment_json();
+  fragment_json_.SetNoArena(
+    &::google::protobuf::internal::GetEmptyStringAlreadyInited(), ::std::move(value));
+  // @@protoc_insertion_point(field_set_rvalue:exec.bit.control.PlanFragment.fragment_json)
 }
+#endif
 inline void PlanFragment::set_fragment_json(const char* value) {
+  GOOGLE_DCHECK(value != NULL);
   set_has_fragment_json();
-  if (fragment_json_ == &::google::protobuf::internal::kEmptyString) {
-    fragment_json_ = new ::std::string;
-  }
-  fragment_json_->assign(value);
+  fragment_json_.SetNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), ::std::string(value));
+  // @@protoc_insertion_point(field_set_char:exec.bit.control.PlanFragment.fragment_json)
 }
 inline void PlanFragment::set_fragment_json(const char* value, size_t size) {
   set_has_fragment_json();
-  if (fragment_json_ == &::google::protobuf::internal::kEmptyString) {
-    fragment_json_ = new ::std::string;
-  }
-  fragment_json_->assign(reinterpret_cast<const char*>(value), size);
+  fragment_json_.SetNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(),
+      ::std::string(reinterpret_cast<const char*>(value), size));
+  // @@protoc_insertion_point(field_set_pointer:exec.bit.control.PlanFragment.fragment_json)
 }
 inline ::std::string* PlanFragment::mutable_fragment_json() {
   set_has_fragment_json();
-  if (fragment_json_ == &::google::protobuf::internal::kEmptyString) {
-    fragment_json_ = new ::std::string;
-  }
-  return fragment_json_;
+  // @@protoc_insertion_point(field_mutable:exec.bit.control.PlanFragment.fragment_json)
+  return fragment_json_.MutableNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
 }
 inline ::std::string* PlanFragment::release_fragment_json() {
-  clear_has_fragment_json();
-  if (fragment_json_ == &::google::protobuf::internal::kEmptyString) {
+  // @@protoc_insertion_point(field_release:exec.bit.control.PlanFragment.fragment_json)
+  if (!has_fragment_json()) {
     return NULL;
-  } else {
-    ::std::string* temp = fragment_json_;
-    fragment_json_ = const_cast< ::std::string*>(&::google::protobuf::internal::kEmptyString);
-    return temp;
   }
+  clear_has_fragment_json();
+  return fragment_json_.ReleaseNonDefaultNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
 }
 inline void PlanFragment::set_allocated_fragment_json(::std::string* fragment_json) {
-  if (fragment_json_ != &::google::protobuf::internal::kEmptyString) {
-    delete fragment_json_;
-  }
-  if (fragment_json) {
+  if (fragment_json != NULL) {
     set_has_fragment_json();
-    fragment_json_ = fragment_json;
   } else {
     clear_has_fragment_json();
-    fragment_json_ = const_cast< ::std::string*>(&::google::protobuf::internal::kEmptyString);
   }
+  fragment_json_.SetAllocatedNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), fragment_json);
+  // @@protoc_insertion_point(field_set_allocated:exec.bit.control.PlanFragment.fragment_json)
 }
 
 // optional bool leaf_fragment = 9;
 inline bool PlanFragment::has_leaf_fragment() const {
-  return (_has_bits_[0] & 0x00000040u) != 0;
+  return (_has_bits_[0] & 0x00000800u) != 0;
 }
 inline void PlanFragment::set_has_leaf_fragment() {
-  _has_bits_[0] |= 0x00000040u;
+  _has_bits_[0] |= 0x00000800u;
 }
 inline void PlanFragment::clear_has_leaf_fragment() {
-  _has_bits_[0] &= ~0x00000040u;
+  _has_bits_[0] &= ~0x00000800u;
 }
 inline void PlanFragment::clear_leaf_fragment() {
   leaf_fragment_ = false;
   clear_has_leaf_fragment();
 }
 inline bool PlanFragment::leaf_fragment() const {
+  // @@protoc_insertion_point(field_get:exec.bit.control.PlanFragment.leaf_fragment)
   return leaf_fragment_;
 }
 inline void PlanFragment::set_leaf_fragment(bool value) {
   set_has_leaf_fragment();
   leaf_fragment_ = value;
+  // @@protoc_insertion_point(field_set:exec.bit.control.PlanFragment.leaf_fragment)
 }
 
 // optional .exec.DrillbitEndpoint assignment = 10;
 inline bool PlanFragment::has_assignment() const {
-  return (_has_bits_[0] & 0x00000080u) != 0;
+  return (_has_bits_[0] & 0x00000008u) != 0;
 }
 inline void PlanFragment::set_has_assignment() {
-  _has_bits_[0] |= 0x00000080u;
+  _has_bits_[0] |= 0x00000008u;
 }
 inline void PlanFragment::clear_has_assignment() {
-  _has_bits_[0] &= ~0x00000080u;
+  _has_bits_[0] &= ~0x00000008u;
 }
-inline void PlanFragment::clear_assignment() {
-  if (assignment_ != NULL) assignment_->::exec::DrillbitEndpoint::Clear();
-  clear_has_assignment();
+inline const ::exec::DrillbitEndpoint& PlanFragment::_internal_assignment() const {
+  return *assignment_;
 }
 inline const ::exec::DrillbitEndpoint& PlanFragment::assignment() const {
-  return assignment_ != NULL ? *assignment_ : *default_instance_->assignment_;
-}
-inline ::exec::DrillbitEndpoint* PlanFragment::mutable_assignment() {
-  set_has_assignment();
-  if (assignment_ == NULL) assignment_ = new ::exec::DrillbitEndpoint;
-  return assignment_;
+  const ::exec::DrillbitEndpoint* p = assignment_;
+  // @@protoc_insertion_point(field_get:exec.bit.control.PlanFragment.assignment)
+  return p != NULL ? *p : *reinterpret_cast<const ::exec::DrillbitEndpoint*>(
+      &::exec::_DrillbitEndpoint_default_instance_);
 }
 inline ::exec::DrillbitEndpoint* PlanFragment::release_assignment() {
+  // @@protoc_insertion_point(field_release:exec.bit.control.PlanFragment.assignment)
   clear_has_assignment();
   ::exec::DrillbitEndpoint* temp = assignment_;
   assignment_ = NULL;
   return temp;
 }
+inline ::exec::DrillbitEndpoint* PlanFragment::mutable_assignment() {
+  set_has_assignment();
+  if (assignment_ == NULL) {
+    auto* p = CreateMaybeMessage<::exec::DrillbitEndpoint>(GetArenaNoVirtual());
+    assignment_ = p;
+  }
+  // @@protoc_insertion_point(field_mutable:exec.bit.control.PlanFragment.assignment)
+  return assignment_;
+}
 inline void PlanFragment::set_allocated_assignment(::exec::DrillbitEndpoint* assignment) {
-  delete assignment_;
-  assignment_ = assignment;
+  ::google::protobuf::Arena* message_arena = GetArenaNoVirtual();
+  if (message_arena == NULL) {
+    delete reinterpret_cast< ::google::protobuf::MessageLite*>(assignment_);
+  }
   if (assignment) {
+    ::google::protobuf::Arena* submessage_arena = NULL;
+    if (message_arena != submessage_arena) {
+      assignment = ::google::protobuf::internal::GetOwnedMessage(
+          message_arena, assignment, submessage_arena);
+    }
     set_has_assignment();
   } else {
     clear_has_assignment();
   }
+  assignment_ = assignment;
+  // @@protoc_insertion_point(field_set_allocated:exec.bit.control.PlanFragment.assignment)
 }
 
 // optional .exec.DrillbitEndpoint foreman = 11;
 inline bool PlanFragment::has_foreman() const {
-  return (_has_bits_[0] & 0x00000100u) != 0;
+  return (_has_bits_[0] & 0x00000010u) != 0;
 }
 inline void PlanFragment::set_has_foreman() {
-  _has_bits_[0] |= 0x00000100u;
+  _has_bits_[0] |= 0x00000010u;
 }
 inline void PlanFragment::clear_has_foreman() {
-  _has_bits_[0] &= ~0x00000100u;
+  _has_bits_[0] &= ~0x00000010u;
 }
-inline void PlanFragment::clear_foreman() {
-  if (foreman_ != NULL) foreman_->::exec::DrillbitEndpoint::Clear();
-  clear_has_foreman();
+inline const ::exec::DrillbitEndpoint& PlanFragment::_internal_foreman() const {
+  return *foreman_;
 }
 inline const ::exec::DrillbitEndpoint& PlanFragment::foreman() const {
-  return foreman_ != NULL ? *foreman_ : *default_instance_->foreman_;
-}
-inline ::exec::DrillbitEndpoint* PlanFragment::mutable_foreman() {
-  set_has_foreman();
-  if (foreman_ == NULL) foreman_ = new ::exec::DrillbitEndpoint;
-  return foreman_;
+  const ::exec::DrillbitEndpoint* p = foreman_;
+  // @@protoc_insertion_point(field_get:exec.bit.control.PlanFragment.foreman)
+  return p != NULL ? *p : *reinterpret_cast<const ::exec::DrillbitEndpoint*>(
+      &::exec::_DrillbitEndpoint_default_instance_);
 }
 inline ::exec::DrillbitEndpoint* PlanFragment::release_foreman() {
+  // @@protoc_insertion_point(field_release:exec.bit.control.PlanFragment.foreman)
   clear_has_foreman();
   ::exec::DrillbitEndpoint* temp = foreman_;
   foreman_ = NULL;
   return temp;
 }
+inline ::exec::DrillbitEndpoint* PlanFragment::mutable_foreman() {
+  set_has_foreman();
+  if (foreman_ == NULL) {
+    auto* p = CreateMaybeMessage<::exec::DrillbitEndpoint>(GetArenaNoVirtual());
+    foreman_ = p;
+  }
+  // @@protoc_insertion_point(field_mutable:exec.bit.control.PlanFragment.foreman)
+  return foreman_;
+}
 inline void PlanFragment::set_allocated_foreman(::exec::DrillbitEndpoint* foreman) {
-  delete foreman_;
-  foreman_ = foreman;
+  ::google::protobuf::Arena* message_arena = GetArenaNoVirtual();
+  if (message_arena == NULL) {
+    delete reinterpret_cast< ::google::protobuf::MessageLite*>(foreman_);
+  }
   if (foreman) {
+    ::google::protobuf::Arena* submessage_arena = NULL;
+    if (message_arena != submessage_arena) {
+      foreman = ::google::protobuf::internal::GetOwnedMessage(
+          message_arena, foreman, submessage_arena);
+    }
     set_has_foreman();
   } else {
     clear_has_foreman();
   }
+  foreman_ = foreman;
+  // @@protoc_insertion_point(field_set_allocated:exec.bit.control.PlanFragment.foreman)
 }
 
 // optional int64 mem_initial = 12 [default = 20000000];
 inline bool PlanFragment::has_mem_initial() const {
-  return (_has_bits_[0] & 0x00000200u) != 0;
+  return (_has_bits_[0] & 0x00001000u) != 0;
 }
 inline void PlanFragment::set_has_mem_initial() {
-  _has_bits_[0] |= 0x00000200u;
+  _has_bits_[0] |= 0x00001000u;
 }
 inline void PlanFragment::clear_has_mem_initial() {
-  _has_bits_[0] &= ~0x00000200u;
+  _has_bits_[0] &= ~0x00001000u;
 }
 inline void PlanFragment::clear_mem_initial() {
   mem_initial_ = GOOGLE_LONGLONG(20000000);
   clear_has_mem_initial();
 }
 inline ::google::protobuf::int64 PlanFragment::mem_initial() const {
+  // @@protoc_insertion_point(field_get:exec.bit.control.PlanFragment.mem_initial)
   return mem_initial_;
 }
 inline void PlanFragment::set_mem_initial(::google::protobuf::int64 value) {
   set_has_mem_initial();
   mem_initial_ = value;
+  // @@protoc_insertion_point(field_set:exec.bit.control.PlanFragment.mem_initial)
 }
 
 // optional int64 mem_max = 13 [default = 2000000000];
 inline bool PlanFragment::has_mem_max() const {
-  return (_has_bits_[0] & 0x00000400u) != 0;
+  return (_has_bits_[0] & 0x00002000u) != 0;
 }
 inline void PlanFragment::set_has_mem_max() {
-  _has_bits_[0] |= 0x00000400u;
+  _has_bits_[0] |= 0x00002000u;
 }
 inline void PlanFragment::clear_has_mem_max() {
-  _has_bits_[0] &= ~0x00000400u;
+  _has_bits_[0] &= ~0x00002000u;
 }
 inline void PlanFragment::clear_mem_max() {
   mem_max_ = GOOGLE_LONGLONG(2000000000);
   clear_has_mem_max();
 }
... 165883 lines suppressed ...