You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@drill.apache.org by pa...@apache.org on 2016/11/01 20:29:53 UTC

[08/15] drill git commit: DRILL-4853: Update C++ protobuf source files

http://git-wip-us.apache.org/repos/asf/drill/blob/2558803e/contrib/native/client/src/protobuf/User.pb.cc
----------------------------------------------------------------------
diff --git a/contrib/native/client/src/protobuf/User.pb.cc b/contrib/native/client/src/protobuf/User.pb.cc
index 212ad6a..4b0bf10 100644
--- a/contrib/native/client/src/protobuf/User.pb.cc
+++ b/contrib/native/client/src/protobuf/User.pb.cc
@@ -27,21 +27,87 @@ const ::google::protobuf::internal::GeneratedMessageReflection*
 const ::google::protobuf::Descriptor* UserProperties_descriptor_ = NULL;
 const ::google::protobuf::internal::GeneratedMessageReflection*
   UserProperties_reflection_ = NULL;
+const ::google::protobuf::Descriptor* RpcEndpointInfos_descriptor_ = NULL;
+const ::google::protobuf::internal::GeneratedMessageReflection*
+  RpcEndpointInfos_reflection_ = NULL;
 const ::google::protobuf::Descriptor* UserToBitHandshake_descriptor_ = NULL;
 const ::google::protobuf::internal::GeneratedMessageReflection*
   UserToBitHandshake_reflection_ = NULL;
 const ::google::protobuf::Descriptor* RequestResults_descriptor_ = NULL;
 const ::google::protobuf::internal::GeneratedMessageReflection*
   RequestResults_reflection_ = NULL;
-const ::google::protobuf::Descriptor* RunQuery_descriptor_ = NULL;
+const ::google::protobuf::Descriptor* GetQueryPlanFragments_descriptor_ = NULL;
 const ::google::protobuf::internal::GeneratedMessageReflection*
-  RunQuery_reflection_ = NULL;
+  GetQueryPlanFragments_reflection_ = NULL;
+const ::google::protobuf::Descriptor* QueryPlanFragments_descriptor_ = NULL;
+const ::google::protobuf::internal::GeneratedMessageReflection*
+  QueryPlanFragments_reflection_ = NULL;
 const ::google::protobuf::Descriptor* BitToUserHandshake_descriptor_ = NULL;
 const ::google::protobuf::internal::GeneratedMessageReflection*
   BitToUserHandshake_reflection_ = NULL;
+const ::google::protobuf::Descriptor* LikeFilter_descriptor_ = NULL;
+const ::google::protobuf::internal::GeneratedMessageReflection*
+  LikeFilter_reflection_ = NULL;
+const ::google::protobuf::Descriptor* GetCatalogsReq_descriptor_ = NULL;
+const ::google::protobuf::internal::GeneratedMessageReflection*
+  GetCatalogsReq_reflection_ = NULL;
+const ::google::protobuf::Descriptor* CatalogMetadata_descriptor_ = NULL;
+const ::google::protobuf::internal::GeneratedMessageReflection*
+  CatalogMetadata_reflection_ = NULL;
+const ::google::protobuf::Descriptor* GetCatalogsResp_descriptor_ = NULL;
+const ::google::protobuf::internal::GeneratedMessageReflection*
+  GetCatalogsResp_reflection_ = NULL;
+const ::google::protobuf::Descriptor* GetSchemasReq_descriptor_ = NULL;
+const ::google::protobuf::internal::GeneratedMessageReflection*
+  GetSchemasReq_reflection_ = NULL;
+const ::google::protobuf::Descriptor* SchemaMetadata_descriptor_ = NULL;
+const ::google::protobuf::internal::GeneratedMessageReflection*
+  SchemaMetadata_reflection_ = NULL;
+const ::google::protobuf::Descriptor* GetSchemasResp_descriptor_ = NULL;
+const ::google::protobuf::internal::GeneratedMessageReflection*
+  GetSchemasResp_reflection_ = NULL;
+const ::google::protobuf::Descriptor* GetTablesReq_descriptor_ = NULL;
+const ::google::protobuf::internal::GeneratedMessageReflection*
+  GetTablesReq_reflection_ = NULL;
+const ::google::protobuf::Descriptor* TableMetadata_descriptor_ = NULL;
+const ::google::protobuf::internal::GeneratedMessageReflection*
+  TableMetadata_reflection_ = NULL;
+const ::google::protobuf::Descriptor* GetTablesResp_descriptor_ = NULL;
+const ::google::protobuf::internal::GeneratedMessageReflection*
+  GetTablesResp_reflection_ = NULL;
+const ::google::protobuf::Descriptor* GetColumnsReq_descriptor_ = NULL;
+const ::google::protobuf::internal::GeneratedMessageReflection*
+  GetColumnsReq_reflection_ = NULL;
+const ::google::protobuf::Descriptor* ColumnMetadata_descriptor_ = NULL;
+const ::google::protobuf::internal::GeneratedMessageReflection*
+  ColumnMetadata_reflection_ = NULL;
+const ::google::protobuf::Descriptor* GetColumnsResp_descriptor_ = NULL;
+const ::google::protobuf::internal::GeneratedMessageReflection*
+  GetColumnsResp_reflection_ = NULL;
+const ::google::protobuf::Descriptor* CreatePreparedStatementReq_descriptor_ = NULL;
+const ::google::protobuf::internal::GeneratedMessageReflection*
+  CreatePreparedStatementReq_reflection_ = NULL;
+const ::google::protobuf::Descriptor* ResultColumnMetadata_descriptor_ = NULL;
+const ::google::protobuf::internal::GeneratedMessageReflection*
+  ResultColumnMetadata_reflection_ = NULL;
+const ::google::protobuf::Descriptor* PreparedStatementHandle_descriptor_ = NULL;
+const ::google::protobuf::internal::GeneratedMessageReflection*
+  PreparedStatementHandle_reflection_ = NULL;
+const ::google::protobuf::Descriptor* PreparedStatement_descriptor_ = NULL;
+const ::google::protobuf::internal::GeneratedMessageReflection*
+  PreparedStatement_reflection_ = NULL;
+const ::google::protobuf::Descriptor* CreatePreparedStatementResp_descriptor_ = NULL;
+const ::google::protobuf::internal::GeneratedMessageReflection*
+  CreatePreparedStatementResp_reflection_ = NULL;
+const ::google::protobuf::Descriptor* RunQuery_descriptor_ = NULL;
+const ::google::protobuf::internal::GeneratedMessageReflection*
+  RunQuery_reflection_ = NULL;
 const ::google::protobuf::EnumDescriptor* RpcType_descriptor_ = NULL;
 const ::google::protobuf::EnumDescriptor* QueryResultsMode_descriptor_ = NULL;
 const ::google::protobuf::EnumDescriptor* HandshakeStatus_descriptor_ = NULL;
+const ::google::protobuf::EnumDescriptor* RequestStatus_descriptor_ = NULL;
+const ::google::protobuf::EnumDescriptor* ColumnSearchability_descriptor_ = NULL;
+const ::google::protobuf::EnumDescriptor* ColumnUpdatability_descriptor_ = NULL;
 
 }  // namespace
 
@@ -83,8 +149,28 @@ void protobuf_AssignDesc_User_2eproto() {
       ::google::protobuf::DescriptorPool::generated_pool(),
       ::google::protobuf::MessageFactory::generated_factory(),
       sizeof(UserProperties));
-  UserToBitHandshake_descriptor_ = file->message_type(2);
-  static const int UserToBitHandshake_offsets_[7] = {
+  RpcEndpointInfos_descriptor_ = file->message_type(2);
+  static const int RpcEndpointInfos_offsets_[6] = {
+    GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(RpcEndpointInfos, name_),
+    GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(RpcEndpointInfos, version_),
+    GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(RpcEndpointInfos, majorversion_),
+    GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(RpcEndpointInfos, minorversion_),
+    GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(RpcEndpointInfos, patchversion_),
+    GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(RpcEndpointInfos, application_),
+  };
+  RpcEndpointInfos_reflection_ =
+    new ::google::protobuf::internal::GeneratedMessageReflection(
+      RpcEndpointInfos_descriptor_,
+      RpcEndpointInfos::default_instance_,
+      RpcEndpointInfos_offsets_,
+      GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(RpcEndpointInfos, _has_bits_[0]),
+      GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(RpcEndpointInfos, _unknown_fields_),
+      -1,
+      ::google::protobuf::DescriptorPool::generated_pool(),
+      ::google::protobuf::MessageFactory::generated_factory(),
+      sizeof(RpcEndpointInfos));
+  UserToBitHandshake_descriptor_ = file->message_type(3);
+  static const int UserToBitHandshake_offsets_[8] = {
     GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(UserToBitHandshake, channel_),
     GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(UserToBitHandshake, support_listening_),
     GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(UserToBitHandshake, rpc_version_),
@@ -92,6 +178,7 @@ void protobuf_AssignDesc_User_2eproto() {
     GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(UserToBitHandshake, properties_),
     GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(UserToBitHandshake, support_complex_types_),
     GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(UserToBitHandshake, support_timeout_),
+    GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(UserToBitHandshake, client_infos_),
   };
   UserToBitHandshake_reflection_ =
     new ::google::protobuf::internal::GeneratedMessageReflection(
@@ -104,7 +191,7 @@ void protobuf_AssignDesc_User_2eproto() {
       ::google::protobuf::DescriptorPool::generated_pool(),
       ::google::protobuf::MessageFactory::generated_factory(),
       sizeof(UserToBitHandshake));
-  RequestResults_descriptor_ = file->message_type(3);
+  RequestResults_descriptor_ = file->message_type(4);
   static const int RequestResults_offsets_[2] = {
     GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(RequestResults, query_id_),
     GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(RequestResults, maximum_responses_),
@@ -120,29 +207,48 @@ void protobuf_AssignDesc_User_2eproto() {
       ::google::protobuf::DescriptorPool::generated_pool(),
       ::google::protobuf::MessageFactory::generated_factory(),
       sizeof(RequestResults));
-  RunQuery_descriptor_ = file->message_type(4);
-  static const int RunQuery_offsets_[3] = {
-    GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(RunQuery, results_mode_),
-    GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(RunQuery, type_),
-    GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(RunQuery, plan_),
+  GetQueryPlanFragments_descriptor_ = file->message_type(5);
+  static const int GetQueryPlanFragments_offsets_[3] = {
+    GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(GetQueryPlanFragments, query_),
+    GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(GetQueryPlanFragments, type_),
+    GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(GetQueryPlanFragments, split_plan_),
   };
-  RunQuery_reflection_ =
+  GetQueryPlanFragments_reflection_ =
     new ::google::protobuf::internal::GeneratedMessageReflection(
-      RunQuery_descriptor_,
-      RunQuery::default_instance_,
-      RunQuery_offsets_,
-      GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(RunQuery, _has_bits_[0]),
-      GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(RunQuery, _unknown_fields_),
+      GetQueryPlanFragments_descriptor_,
+      GetQueryPlanFragments::default_instance_,
+      GetQueryPlanFragments_offsets_,
+      GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(GetQueryPlanFragments, _has_bits_[0]),
+      GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(GetQueryPlanFragments, _unknown_fields_),
       -1,
       ::google::protobuf::DescriptorPool::generated_pool(),
       ::google::protobuf::MessageFactory::generated_factory(),
-      sizeof(RunQuery));
-  BitToUserHandshake_descriptor_ = file->message_type(5);
-  static const int BitToUserHandshake_offsets_[4] = {
+      sizeof(GetQueryPlanFragments));
+  QueryPlanFragments_descriptor_ = file->message_type(6);
+  static const int QueryPlanFragments_offsets_[4] = {
+    GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(QueryPlanFragments, status_),
+    GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(QueryPlanFragments, query_id_),
+    GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(QueryPlanFragments, fragments_),
+    GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(QueryPlanFragments, error_),
+  };
+  QueryPlanFragments_reflection_ =
+    new ::google::protobuf::internal::GeneratedMessageReflection(
+      QueryPlanFragments_descriptor_,
+      QueryPlanFragments::default_instance_,
+      QueryPlanFragments_offsets_,
+      GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(QueryPlanFragments, _has_bits_[0]),
+      GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(QueryPlanFragments, _unknown_fields_),
+      -1,
+      ::google::protobuf::DescriptorPool::generated_pool(),
+      ::google::protobuf::MessageFactory::generated_factory(),
+      sizeof(QueryPlanFragments));
+  BitToUserHandshake_descriptor_ = file->message_type(7);
+  static const int BitToUserHandshake_offsets_[5] = {
     GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(BitToUserHandshake, rpc_version_),
     GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(BitToUserHandshake, status_),
     GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(BitToUserHandshake, errorid_),
     GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(BitToUserHandshake, errormessage_),
+    GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(BitToUserHandshake, server_infos_),
   };
   BitToUserHandshake_reflection_ =
     new ::google::protobuf::internal::GeneratedMessageReflection(
@@ -155,9 +261,363 @@ void protobuf_AssignDesc_User_2eproto() {
       ::google::protobuf::DescriptorPool::generated_pool(),
       ::google::protobuf::MessageFactory::generated_factory(),
       sizeof(BitToUserHandshake));
+  LikeFilter_descriptor_ = file->message_type(8);
+  static const int LikeFilter_offsets_[2] = {
+    GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(LikeFilter, pattern_),
+    GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(LikeFilter, escape_),
+  };
+  LikeFilter_reflection_ =
+    new ::google::protobuf::internal::GeneratedMessageReflection(
+      LikeFilter_descriptor_,
+      LikeFilter::default_instance_,
+      LikeFilter_offsets_,
+      GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(LikeFilter, _has_bits_[0]),
+      GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(LikeFilter, _unknown_fields_),
+      -1,
+      ::google::protobuf::DescriptorPool::generated_pool(),
+      ::google::protobuf::MessageFactory::generated_factory(),
+      sizeof(LikeFilter));
+  GetCatalogsReq_descriptor_ = file->message_type(9);
+  static const int GetCatalogsReq_offsets_[1] = {
+    GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(GetCatalogsReq, catalog_name_filter_),
+  };
+  GetCatalogsReq_reflection_ =
+    new ::google::protobuf::internal::GeneratedMessageReflection(
+      GetCatalogsReq_descriptor_,
+      GetCatalogsReq::default_instance_,
+      GetCatalogsReq_offsets_,
+      GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(GetCatalogsReq, _has_bits_[0]),
+      GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(GetCatalogsReq, _unknown_fields_),
+      -1,
+      ::google::protobuf::DescriptorPool::generated_pool(),
+      ::google::protobuf::MessageFactory::generated_factory(),
+      sizeof(GetCatalogsReq));
+  CatalogMetadata_descriptor_ = file->message_type(10);
+  static const int CatalogMetadata_offsets_[3] = {
+    GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(CatalogMetadata, catalog_name_),
+    GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(CatalogMetadata, description_),
+    GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(CatalogMetadata, connect_),
+  };
+  CatalogMetadata_reflection_ =
+    new ::google::protobuf::internal::GeneratedMessageReflection(
+      CatalogMetadata_descriptor_,
+      CatalogMetadata::default_instance_,
+      CatalogMetadata_offsets_,
+      GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(CatalogMetadata, _has_bits_[0]),
+      GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(CatalogMetadata, _unknown_fields_),
+      -1,
+      ::google::protobuf::DescriptorPool::generated_pool(),
+      ::google::protobuf::MessageFactory::generated_factory(),
+      sizeof(CatalogMetadata));
+  GetCatalogsResp_descriptor_ = file->message_type(11);
+  static const int GetCatalogsResp_offsets_[3] = {
+    GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(GetCatalogsResp, status_),
+    GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(GetCatalogsResp, catalogs_),
+    GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(GetCatalogsResp, error_),
+  };
+  GetCatalogsResp_reflection_ =
+    new ::google::protobuf::internal::GeneratedMessageReflection(
+      GetCatalogsResp_descriptor_,
+      GetCatalogsResp::default_instance_,
+      GetCatalogsResp_offsets_,
+      GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(GetCatalogsResp, _has_bits_[0]),
+      GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(GetCatalogsResp, _unknown_fields_),
+      -1,
+      ::google::protobuf::DescriptorPool::generated_pool(),
+      ::google::protobuf::MessageFactory::generated_factory(),
+      sizeof(GetCatalogsResp));
+  GetSchemasReq_descriptor_ = file->message_type(12);
+  static const int GetSchemasReq_offsets_[2] = {
+    GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(GetSchemasReq, catalog_name_filter_),
+    GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(GetSchemasReq, schema_name_filter_),
+  };
+  GetSchemasReq_reflection_ =
+    new ::google::protobuf::internal::GeneratedMessageReflection(
+      GetSchemasReq_descriptor_,
+      GetSchemasReq::default_instance_,
+      GetSchemasReq_offsets_,
+      GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(GetSchemasReq, _has_bits_[0]),
+      GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(GetSchemasReq, _unknown_fields_),
+      -1,
+      ::google::protobuf::DescriptorPool::generated_pool(),
+      ::google::protobuf::MessageFactory::generated_factory(),
+      sizeof(GetSchemasReq));
+  SchemaMetadata_descriptor_ = file->message_type(13);
+  static const int SchemaMetadata_offsets_[5] = {
+    GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(SchemaMetadata, catalog_name_),
+    GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(SchemaMetadata, schema_name_),
+    GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(SchemaMetadata, owner_),
+    GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(SchemaMetadata, type_),
+    GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(SchemaMetadata, mutable__),
+  };
+  SchemaMetadata_reflection_ =
+    new ::google::protobuf::internal::GeneratedMessageReflection(
+      SchemaMetadata_descriptor_,
+      SchemaMetadata::default_instance_,
+      SchemaMetadata_offsets_,
+      GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(SchemaMetadata, _has_bits_[0]),
+      GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(SchemaMetadata, _unknown_fields_),
+      -1,
+      ::google::protobuf::DescriptorPool::generated_pool(),
+      ::google::protobuf::MessageFactory::generated_factory(),
+      sizeof(SchemaMetadata));
+  GetSchemasResp_descriptor_ = file->message_type(14);
+  static const int GetSchemasResp_offsets_[3] = {
+    GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(GetSchemasResp, status_),
+    GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(GetSchemasResp, schemas_),
+    GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(GetSchemasResp, error_),
+  };
+  GetSchemasResp_reflection_ =
+    new ::google::protobuf::internal::GeneratedMessageReflection(
+      GetSchemasResp_descriptor_,
+      GetSchemasResp::default_instance_,
+      GetSchemasResp_offsets_,
+      GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(GetSchemasResp, _has_bits_[0]),
+      GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(GetSchemasResp, _unknown_fields_),
+      -1,
+      ::google::protobuf::DescriptorPool::generated_pool(),
+      ::google::protobuf::MessageFactory::generated_factory(),
+      sizeof(GetSchemasResp));
+  GetTablesReq_descriptor_ = file->message_type(15);
+  static const int GetTablesReq_offsets_[4] = {
+    GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(GetTablesReq, catalog_name_filter_),
+    GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(GetTablesReq, schema_name_filter_),
+    GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(GetTablesReq, table_name_filter_),
+    GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(GetTablesReq, table_type_filter_),
+  };
+  GetTablesReq_reflection_ =
+    new ::google::protobuf::internal::GeneratedMessageReflection(
+      GetTablesReq_descriptor_,
+      GetTablesReq::default_instance_,
+      GetTablesReq_offsets_,
+      GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(GetTablesReq, _has_bits_[0]),
+      GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(GetTablesReq, _unknown_fields_),
+      -1,
+      ::google::protobuf::DescriptorPool::generated_pool(),
+      ::google::protobuf::MessageFactory::generated_factory(),
+      sizeof(GetTablesReq));
+  TableMetadata_descriptor_ = file->message_type(16);
+  static const int TableMetadata_offsets_[4] = {
+    GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(TableMetadata, catalog_name_),
+    GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(TableMetadata, schema_name_),
+    GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(TableMetadata, table_name_),
+    GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(TableMetadata, type_),
+  };
+  TableMetadata_reflection_ =
+    new ::google::protobuf::internal::GeneratedMessageReflection(
+      TableMetadata_descriptor_,
+      TableMetadata::default_instance_,
+      TableMetadata_offsets_,
+      GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(TableMetadata, _has_bits_[0]),
+      GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(TableMetadata, _unknown_fields_),
+      -1,
+      ::google::protobuf::DescriptorPool::generated_pool(),
+      ::google::protobuf::MessageFactory::generated_factory(),
+      sizeof(TableMetadata));
+  GetTablesResp_descriptor_ = file->message_type(17);
+  static const int GetTablesResp_offsets_[3] = {
+    GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(GetTablesResp, status_),
+    GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(GetTablesResp, tables_),
+    GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(GetTablesResp, error_),
+  };
+  GetTablesResp_reflection_ =
+    new ::google::protobuf::internal::GeneratedMessageReflection(
+      GetTablesResp_descriptor_,
+      GetTablesResp::default_instance_,
+      GetTablesResp_offsets_,
+      GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(GetTablesResp, _has_bits_[0]),
+      GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(GetTablesResp, _unknown_fields_),
+      -1,
+      ::google::protobuf::DescriptorPool::generated_pool(),
+      ::google::protobuf::MessageFactory::generated_factory(),
+      sizeof(GetTablesResp));
+  GetColumnsReq_descriptor_ = file->message_type(18);
+  static const int GetColumnsReq_offsets_[4] = {
+    GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(GetColumnsReq, catalog_name_filter_),
+    GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(GetColumnsReq, schema_name_filter_),
+    GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(GetColumnsReq, table_name_filter_),
+    GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(GetColumnsReq, column_name_filter_),
+  };
+  GetColumnsReq_reflection_ =
+    new ::google::protobuf::internal::GeneratedMessageReflection(
+      GetColumnsReq_descriptor_,
+      GetColumnsReq::default_instance_,
+      GetColumnsReq_offsets_,
+      GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(GetColumnsReq, _has_bits_[0]),
+      GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(GetColumnsReq, _unknown_fields_),
+      -1,
+      ::google::protobuf::DescriptorPool::generated_pool(),
+      ::google::protobuf::MessageFactory::generated_factory(),
+      sizeof(GetColumnsReq));
+  ColumnMetadata_descriptor_ = file->message_type(19);
+  static const int ColumnMetadata_offsets_[17] = {
+    GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(ColumnMetadata, catalog_name_),
+    GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(ColumnMetadata, schema_name_),
+    GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(ColumnMetadata, table_name_),
+    GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(ColumnMetadata, column_name_),
+    GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(ColumnMetadata, ordinal_position_),
+    GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(ColumnMetadata, default_value_),
+    GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(ColumnMetadata, is_nullable_),
+    GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(ColumnMetadata, data_type_),
+    GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(ColumnMetadata, char_max_length_),
+    GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(ColumnMetadata, char_octet_length_),
+    GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(ColumnMetadata, numeric_precision_),
+    GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(ColumnMetadata, numeric_precision_radix_),
+    GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(ColumnMetadata, numeric_scale_),
+    GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(ColumnMetadata, date_time_precision_),
+    GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(ColumnMetadata, interval_type_),
+    GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(ColumnMetadata, interval_precision_),
+    GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(ColumnMetadata, column_size_),
+  };
+  ColumnMetadata_reflection_ =
+    new ::google::protobuf::internal::GeneratedMessageReflection(
+      ColumnMetadata_descriptor_,
+      ColumnMetadata::default_instance_,
+      ColumnMetadata_offsets_,
+      GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(ColumnMetadata, _has_bits_[0]),
+      GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(ColumnMetadata, _unknown_fields_),
+      -1,
+      ::google::protobuf::DescriptorPool::generated_pool(),
+      ::google::protobuf::MessageFactory::generated_factory(),
+      sizeof(ColumnMetadata));
+  GetColumnsResp_descriptor_ = file->message_type(20);
+  static const int GetColumnsResp_offsets_[3] = {
+    GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(GetColumnsResp, status_),
+    GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(GetColumnsResp, columns_),
+    GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(GetColumnsResp, error_),
+  };
+  GetColumnsResp_reflection_ =
+    new ::google::protobuf::internal::GeneratedMessageReflection(
+      GetColumnsResp_descriptor_,
+      GetColumnsResp::default_instance_,
+      GetColumnsResp_offsets_,
+      GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(GetColumnsResp, _has_bits_[0]),
+      GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(GetColumnsResp, _unknown_fields_),
+      -1,
+      ::google::protobuf::DescriptorPool::generated_pool(),
+      ::google::protobuf::MessageFactory::generated_factory(),
+      sizeof(GetColumnsResp));
+  CreatePreparedStatementReq_descriptor_ = file->message_type(21);
+  static const int CreatePreparedStatementReq_offsets_[1] = {
+    GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(CreatePreparedStatementReq, sql_query_),
+  };
+  CreatePreparedStatementReq_reflection_ =
+    new ::google::protobuf::internal::GeneratedMessageReflection(
+      CreatePreparedStatementReq_descriptor_,
+      CreatePreparedStatementReq::default_instance_,
+      CreatePreparedStatementReq_offsets_,
+      GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(CreatePreparedStatementReq, _has_bits_[0]),
+      GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(CreatePreparedStatementReq, _unknown_fields_),
+      -1,
+      ::google::protobuf::DescriptorPool::generated_pool(),
+      ::google::protobuf::MessageFactory::generated_factory(),
+      sizeof(CreatePreparedStatementReq));
+  ResultColumnMetadata_descriptor_ = file->message_type(22);
+  static const int ResultColumnMetadata_offsets_[19] = {
+    GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(ResultColumnMetadata, catalog_name_),
+    GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(ResultColumnMetadata, schema_name_),
+    GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(ResultColumnMetadata, table_name_),
+    GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(ResultColumnMetadata, column_name_),
+    GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(ResultColumnMetadata, label_),
+    GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(ResultColumnMetadata, data_type_),
+    GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(ResultColumnMetadata, is_nullable_),
+    GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(ResultColumnMetadata, precision_),
+    GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(ResultColumnMetadata, scale_),
+    GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(ResultColumnMetadata, signed__),
+    GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(ResultColumnMetadata, display_size_),
+    GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(ResultColumnMetadata, is_aliased_),
+    GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(ResultColumnMetadata, searchability_),
+    GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(ResultColumnMetadata, updatability_),
+    GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(ResultColumnMetadata, auto_increment_),
+    GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(ResultColumnMetadata, case_sensitivity_),
+    GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(ResultColumnMetadata, sortable_),
+    GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(ResultColumnMetadata, class_name_),
+    GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(ResultColumnMetadata, is_currency_),
+  };
+  ResultColumnMetadata_reflection_ =
+    new ::google::protobuf::internal::GeneratedMessageReflection(
+      ResultColumnMetadata_descriptor_,
+      ResultColumnMetadata::default_instance_,
+      ResultColumnMetadata_offsets_,
+      GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(ResultColumnMetadata, _has_bits_[0]),
+      GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(ResultColumnMetadata, _unknown_fields_),
+      -1,
+      ::google::protobuf::DescriptorPool::generated_pool(),
+      ::google::protobuf::MessageFactory::generated_factory(),
+      sizeof(ResultColumnMetadata));
+  PreparedStatementHandle_descriptor_ = file->message_type(23);
+  static const int PreparedStatementHandle_offsets_[1] = {
+    GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(PreparedStatementHandle, server_info_),
+  };
+  PreparedStatementHandle_reflection_ =
+    new ::google::protobuf::internal::GeneratedMessageReflection(
+      PreparedStatementHandle_descriptor_,
+      PreparedStatementHandle::default_instance_,
+      PreparedStatementHandle_offsets_,
+      GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(PreparedStatementHandle, _has_bits_[0]),
+      GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(PreparedStatementHandle, _unknown_fields_),
+      -1,
+      ::google::protobuf::DescriptorPool::generated_pool(),
+      ::google::protobuf::MessageFactory::generated_factory(),
+      sizeof(PreparedStatementHandle));
+  PreparedStatement_descriptor_ = file->message_type(24);
+  static const int PreparedStatement_offsets_[2] = {
+    GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(PreparedStatement, columns_),
+    GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(PreparedStatement, server_handle_),
+  };
+  PreparedStatement_reflection_ =
+    new ::google::protobuf::internal::GeneratedMessageReflection(
+      PreparedStatement_descriptor_,
+      PreparedStatement::default_instance_,
+      PreparedStatement_offsets_,
+      GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(PreparedStatement, _has_bits_[0]),
+      GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(PreparedStatement, _unknown_fields_),
+      -1,
+      ::google::protobuf::DescriptorPool::generated_pool(),
+      ::google::protobuf::MessageFactory::generated_factory(),
+      sizeof(PreparedStatement));
+  CreatePreparedStatementResp_descriptor_ = file->message_type(25);
+  static const int CreatePreparedStatementResp_offsets_[3] = {
+    GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(CreatePreparedStatementResp, status_),
+    GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(CreatePreparedStatementResp, prepared_statement_),
+    GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(CreatePreparedStatementResp, error_),
+  };
+  CreatePreparedStatementResp_reflection_ =
+    new ::google::protobuf::internal::GeneratedMessageReflection(
+      CreatePreparedStatementResp_descriptor_,
+      CreatePreparedStatementResp::default_instance_,
+      CreatePreparedStatementResp_offsets_,
+      GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(CreatePreparedStatementResp, _has_bits_[0]),
+      GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(CreatePreparedStatementResp, _unknown_fields_),
+      -1,
+      ::google::protobuf::DescriptorPool::generated_pool(),
+      ::google::protobuf::MessageFactory::generated_factory(),
+      sizeof(CreatePreparedStatementResp));
+  RunQuery_descriptor_ = file->message_type(26);
+  static const int RunQuery_offsets_[5] = {
+    GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(RunQuery, results_mode_),
+    GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(RunQuery, type_),
+    GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(RunQuery, plan_),
+    GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(RunQuery, fragments_),
+    GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(RunQuery, prepared_statement_handle_),
+  };
+  RunQuery_reflection_ =
+    new ::google::protobuf::internal::GeneratedMessageReflection(
+      RunQuery_descriptor_,
+      RunQuery::default_instance_,
+      RunQuery_offsets_,
+      GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(RunQuery, _has_bits_[0]),
+      GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(RunQuery, _unknown_fields_),
+      -1,
+      ::google::protobuf::DescriptorPool::generated_pool(),
+      ::google::protobuf::MessageFactory::generated_factory(),
+      sizeof(RunQuery));
   RpcType_descriptor_ = file->enum_type(0);
   QueryResultsMode_descriptor_ = file->enum_type(1);
   HandshakeStatus_descriptor_ = file->enum_type(2);
+  RequestStatus_descriptor_ = file->enum_type(3);
+  ColumnSearchability_descriptor_ = file->enum_type(4);
+  ColumnUpdatability_descriptor_ = file->enum_type(5);
 }
 
 namespace {
@@ -175,13 +635,55 @@ void protobuf_RegisterTypes(const ::std::string&) {
   ::google::protobuf::MessageFactory::InternalRegisterGeneratedMessage(
     UserProperties_descriptor_, &UserProperties::default_instance());
   ::google::protobuf::MessageFactory::InternalRegisterGeneratedMessage(
+    RpcEndpointInfos_descriptor_, &RpcEndpointInfos::default_instance());
+  ::google::protobuf::MessageFactory::InternalRegisterGeneratedMessage(
     UserToBitHandshake_descriptor_, &UserToBitHandshake::default_instance());
   ::google::protobuf::MessageFactory::InternalRegisterGeneratedMessage(
     RequestResults_descriptor_, &RequestResults::default_instance());
   ::google::protobuf::MessageFactory::InternalRegisterGeneratedMessage(
-    RunQuery_descriptor_, &RunQuery::default_instance());
+    GetQueryPlanFragments_descriptor_, &GetQueryPlanFragments::default_instance());
+  ::google::protobuf::MessageFactory::InternalRegisterGeneratedMessage(
+    QueryPlanFragments_descriptor_, &QueryPlanFragments::default_instance());
   ::google::protobuf::MessageFactory::InternalRegisterGeneratedMessage(
     BitToUserHandshake_descriptor_, &BitToUserHandshake::default_instance());
+  ::google::protobuf::MessageFactory::InternalRegisterGeneratedMessage(
+    LikeFilter_descriptor_, &LikeFilter::default_instance());
+  ::google::protobuf::MessageFactory::InternalRegisterGeneratedMessage(
+    GetCatalogsReq_descriptor_, &GetCatalogsReq::default_instance());
+  ::google::protobuf::MessageFactory::InternalRegisterGeneratedMessage(
+    CatalogMetadata_descriptor_, &CatalogMetadata::default_instance());
+  ::google::protobuf::MessageFactory::InternalRegisterGeneratedMessage(
+    GetCatalogsResp_descriptor_, &GetCatalogsResp::default_instance());
+  ::google::protobuf::MessageFactory::InternalRegisterGeneratedMessage(
+    GetSchemasReq_descriptor_, &GetSchemasReq::default_instance());
+  ::google::protobuf::MessageFactory::InternalRegisterGeneratedMessage(
+    SchemaMetadata_descriptor_, &SchemaMetadata::default_instance());
+  ::google::protobuf::MessageFactory::InternalRegisterGeneratedMessage(
+    GetSchemasResp_descriptor_, &GetSchemasResp::default_instance());
+  ::google::protobuf::MessageFactory::InternalRegisterGeneratedMessage(
+    GetTablesReq_descriptor_, &GetTablesReq::default_instance());
+  ::google::protobuf::MessageFactory::InternalRegisterGeneratedMessage(
+    TableMetadata_descriptor_, &TableMetadata::default_instance());
+  ::google::protobuf::MessageFactory::InternalRegisterGeneratedMessage(
+    GetTablesResp_descriptor_, &GetTablesResp::default_instance());
+  ::google::protobuf::MessageFactory::InternalRegisterGeneratedMessage(
+    GetColumnsReq_descriptor_, &GetColumnsReq::default_instance());
+  ::google::protobuf::MessageFactory::InternalRegisterGeneratedMessage(
+    ColumnMetadata_descriptor_, &ColumnMetadata::default_instance());
+  ::google::protobuf::MessageFactory::InternalRegisterGeneratedMessage(
+    GetColumnsResp_descriptor_, &GetColumnsResp::default_instance());
+  ::google::protobuf::MessageFactory::InternalRegisterGeneratedMessage(
+    CreatePreparedStatementReq_descriptor_, &CreatePreparedStatementReq::default_instance());
+  ::google::protobuf::MessageFactory::InternalRegisterGeneratedMessage(
+    ResultColumnMetadata_descriptor_, &ResultColumnMetadata::default_instance());
+  ::google::protobuf::MessageFactory::InternalRegisterGeneratedMessage(
+    PreparedStatementHandle_descriptor_, &PreparedStatementHandle::default_instance());
+  ::google::protobuf::MessageFactory::InternalRegisterGeneratedMessage(
+    PreparedStatement_descriptor_, &PreparedStatement::default_instance());
+  ::google::protobuf::MessageFactory::InternalRegisterGeneratedMessage(
+    CreatePreparedStatementResp_descriptor_, &CreatePreparedStatementResp::default_instance());
+  ::google::protobuf::MessageFactory::InternalRegisterGeneratedMessage(
+    RunQuery_descriptor_, &RunQuery::default_instance());
 }
 
 }  // namespace
@@ -191,14 +693,56 @@ void protobuf_ShutdownFile_User_2eproto() {
   delete Property_reflection_;
   delete UserProperties::default_instance_;
   delete UserProperties_reflection_;
+  delete RpcEndpointInfos::default_instance_;
+  delete RpcEndpointInfos_reflection_;
   delete UserToBitHandshake::default_instance_;
   delete UserToBitHandshake_reflection_;
   delete RequestResults::default_instance_;
   delete RequestResults_reflection_;
-  delete RunQuery::default_instance_;
-  delete RunQuery_reflection_;
+  delete GetQueryPlanFragments::default_instance_;
+  delete GetQueryPlanFragments_reflection_;
+  delete QueryPlanFragments::default_instance_;
+  delete QueryPlanFragments_reflection_;
   delete BitToUserHandshake::default_instance_;
   delete BitToUserHandshake_reflection_;
+  delete LikeFilter::default_instance_;
+  delete LikeFilter_reflection_;
+  delete GetCatalogsReq::default_instance_;
+  delete GetCatalogsReq_reflection_;
+  delete CatalogMetadata::default_instance_;
+  delete CatalogMetadata_reflection_;
+  delete GetCatalogsResp::default_instance_;
+  delete GetCatalogsResp_reflection_;
+  delete GetSchemasReq::default_instance_;
+  delete GetSchemasReq_reflection_;
+  delete SchemaMetadata::default_instance_;
+  delete SchemaMetadata_reflection_;
+  delete GetSchemasResp::default_instance_;
+  delete GetSchemasResp_reflection_;
+  delete GetTablesReq::default_instance_;
+  delete GetTablesReq_reflection_;
+  delete TableMetadata::default_instance_;
+  delete TableMetadata_reflection_;
+  delete GetTablesResp::default_instance_;
+  delete GetTablesResp_reflection_;
+  delete GetColumnsReq::default_instance_;
+  delete GetColumnsReq_reflection_;
+  delete ColumnMetadata::default_instance_;
+  delete ColumnMetadata_reflection_;
+  delete GetColumnsResp::default_instance_;
+  delete GetColumnsResp_reflection_;
+  delete CreatePreparedStatementReq::default_instance_;
+  delete CreatePreparedStatementReq_reflection_;
+  delete ResultColumnMetadata::default_instance_;
+  delete ResultColumnMetadata_reflection_;
+  delete PreparedStatementHandle::default_instance_;
+  delete PreparedStatementHandle_reflection_;
+  delete PreparedStatement::default_instance_;
+  delete PreparedStatement_reflection_;
+  delete CreatePreparedStatementResp::default_instance_;
+  delete CreatePreparedStatementResp_reflection_;
+  delete RunQuery::default_instance_;
+  delete RunQuery_reflection_;
 }
 
 void protobuf_AddDesc_User_2eproto() {
@@ -209,51 +753,197 @@ void protobuf_AddDesc_User_2eproto() {
 
   ::exec::protobuf_AddDesc_SchemaDef_2eproto();
   ::exec::shared::protobuf_AddDesc_UserBitShared_2eproto();
+  ::exec::bit::data::protobuf_AddDesc_BitData_2eproto();
+  ::exec::bit::control::protobuf_AddDesc_BitControl_2eproto();
+  ::exec::bit::protobuf_AddDesc_ExecutionProtos_2eproto();
   ::google::protobuf::DescriptorPool::InternalAddGeneratedFile(
     "\n\nUser.proto\022\texec.user\032\017SchemaDef.proto"
-    "\032\023UserBitShared.proto\"&\n\010Property\022\013\n\003key"
-    "\030\001 \002(\t\022\r\n\005value\030\002 \002(\t\"9\n\016UserProperties\022"
-    "\'\n\nproperties\030\001 \003(\0132\023.exec.user.Property"
-    "\"\234\002\n\022UserToBitHandshake\022.\n\007channel\030\001 \001(\016"
-    "2\027.exec.shared.RpcChannel:\004USER\022\031\n\021suppo"
-    "rt_listening\030\002 \001(\010\022\023\n\013rpc_version\030\003 \001(\005\022"
-    "1\n\013credentials\030\004 \001(\0132\034.exec.shared.UserC"
-    "redentials\022-\n\nproperties\030\005 \001(\0132\031.exec.us"
-    "er.UserProperties\022$\n\025support_complex_typ"
-    "es\030\006 \001(\010:\005false\022\036\n\017support_timeout\030\007 \001(\010"
-    ":\005false\"S\n\016RequestResults\022&\n\010query_id\030\001 "
-    "\001(\0132\024.exec.shared.QueryId\022\031\n\021maximum_res"
-    "ponses\030\002 \001(\005\"q\n\010RunQuery\0221\n\014results_mode"
-    "\030\001 \001(\0162\033.exec.user.QueryResultsMode\022$\n\004t"
-    "ype\030\002 \001(\0162\026.exec.shared.QueryType\022\014\n\004pla"
-    "n\030\003 \001(\t\"|\n\022BitToUserHandshake\022\023\n\013rpc_ver"
-    "sion\030\002 \001(\005\022*\n\006status\030\003 \001(\0162\032.exec.user.H"
-    "andshakeStatus\022\017\n\007errorId\030\004 \001(\t\022\024\n\014error"
-    "Message\030\005 \001(\t*\341\001\n\007RpcType\022\r\n\tHANDSHAKE\020\000"
-    "\022\007\n\003ACK\020\001\022\013\n\007GOODBYE\020\002\022\r\n\tRUN_QUERY\020\003\022\020\n"
-    "\014CANCEL_QUERY\020\004\022\023\n\017REQUEST_RESULTS\020\005\022\027\n\023"
-    "RESUME_PAUSED_QUERY\020\013\022\016\n\nQUERY_DATA\020\006\022\020\n"
-    "\014QUERY_HANDLE\020\007\022\026\n\022REQ_META_FUNCTIONS\020\010\022"
-    "\026\n\022RESP_FUNCTION_LIST\020\t\022\020\n\014QUERY_RESULT\020"
-    "\n*#\n\020QueryResultsMode\022\017\n\013STREAM_FULL\020\001*^"
-    "\n\017HandshakeStatus\022\013\n\007SUCCESS\020\001\022\030\n\024RPC_VE"
-    "RSION_MISMATCH\020\002\022\017\n\013AUTH_FAILED\020\003\022\023\n\017UNK"
-    "NOWN_FAILURE\020\004B+\n\033org.apache.drill.exec."
-    "protoB\nUserProtosH\001", 1179);
+    "\032\023UserBitShared.proto\032\rBitData.proto\032\020Bi"
+    "tControl.proto\032\025ExecutionProtos.proto\"&\n"
+    "\010Property\022\013\n\003key\030\001 \002(\t\022\r\n\005value\030\002 \002(\t\"9\n"
+    "\016UserProperties\022\'\n\nproperties\030\001 \003(\0132\023.ex"
+    "ec.user.Property\"\210\001\n\020RpcEndpointInfos\022\014\n"
+    "\004name\030\001 \001(\t\022\017\n\007version\030\002 \001(\t\022\024\n\014majorVer"
+    "sion\030\003 \001(\r\022\024\n\014minorVersion\030\004 \001(\r\022\024\n\014patc"
+    "hVersion\030\005 \001(\r\022\023\n\013application\030\006 \001(\t\"\317\002\n\022"
+    "UserToBitHandshake\022.\n\007channel\030\001 \001(\0162\027.ex"
+    "ec.shared.RpcChannel:\004USER\022\031\n\021support_li"
+    "stening\030\002 \001(\010\022\023\n\013rpc_version\030\003 \001(\005\0221\n\013cr"
+    "edentials\030\004 \001(\0132\034.exec.shared.UserCreden"
+    "tials\022-\n\nproperties\030\005 \001(\0132\031.exec.user.Us"
+    "erProperties\022$\n\025support_complex_types\030\006 "
+    "\001(\010:\005false\022\036\n\017support_timeout\030\007 \001(\010:\005fal"
+    "se\0221\n\014client_infos\030\010 \001(\0132\033.exec.user.Rpc"
+    "EndpointInfos\"S\n\016RequestResults\022&\n\010query"
+    "_id\030\001 \001(\0132\024.exec.shared.QueryId\022\031\n\021maxim"
+    "um_responses\030\002 \001(\005\"g\n\025GetQueryPlanFragme"
+    "nts\022\r\n\005query\030\001 \002(\t\022$\n\004type\030\002 \001(\0162\026.exec."
+    "shared.QueryType\022\031\n\nsplit_plan\030\003 \001(\010:\005fa"
+    "lse\"\316\001\n\022QueryPlanFragments\0223\n\006status\030\001 \002"
+    "(\0162#.exec.shared.QueryResult.QueryState\022"
+    "&\n\010query_id\030\002 \001(\0132\024.exec.shared.QueryId\022"
+    "1\n\tfragments\030\003 \003(\0132\036.exec.bit.control.Pl"
+    "anFragment\022(\n\005error\030\004 \001(\0132\031.exec.shared."
+    "DrillPBError\"\257\001\n\022BitToUserHandshake\022\023\n\013r"
+    "pc_version\030\002 \001(\005\022*\n\006status\030\003 \001(\0162\032.exec."
+    "user.HandshakeStatus\022\017\n\007errorId\030\004 \001(\t\022\024\n"
+    "\014errorMessage\030\005 \001(\t\0221\n\014server_infos\030\006 \001("
+    "\0132\033.exec.user.RpcEndpointInfos\"-\n\nLikeFi"
+    "lter\022\017\n\007pattern\030\001 \001(\t\022\016\n\006escape\030\002 \001(\t\"D\n"
+    "\016GetCatalogsReq\0222\n\023catalog_name_filter\030\001"
+    " \001(\0132\025.exec.user.LikeFilter\"M\n\017CatalogMe"
+    "tadata\022\024\n\014catalog_name\030\001 \001(\t\022\023\n\013descript"
+    "ion\030\002 \001(\t\022\017\n\007connect\030\003 \001(\t\"\223\001\n\017GetCatalo"
+    "gsResp\022(\n\006status\030\001 \001(\0162\030.exec.user.Reque"
+    "stStatus\022,\n\010catalogs\030\002 \003(\0132\032.exec.user.C"
+    "atalogMetadata\022(\n\005error\030\003 \001(\0132\031.exec.sha"
+    "red.DrillPBError\"v\n\rGetSchemasReq\0222\n\023cat"
+    "alog_name_filter\030\001 \001(\0132\025.exec.user.LikeF"
+    "ilter\0221\n\022schema_name_filter\030\002 \001(\0132\025.exec"
+    ".user.LikeFilter\"i\n\016SchemaMetadata\022\024\n\014ca"
+    "talog_name\030\001 \001(\t\022\023\n\013schema_name\030\002 \001(\t\022\r\n"
+    "\005owner\030\003 \001(\t\022\014\n\004type\030\004 \001(\t\022\017\n\007mutable\030\005 "
+    "\001(\t\"\220\001\n\016GetSchemasResp\022(\n\006status\030\001 \001(\0162\030"
+    ".exec.user.RequestStatus\022*\n\007schemas\030\002 \003("
+    "\0132\031.exec.user.SchemaMetadata\022(\n\005error\030\003 "
+    "\001(\0132\031.exec.shared.DrillPBError\"\302\001\n\014GetTa"
+    "blesReq\0222\n\023catalog_name_filter\030\001 \001(\0132\025.e"
+    "xec.user.LikeFilter\0221\n\022schema_name_filte"
+    "r\030\002 \001(\0132\025.exec.user.LikeFilter\0220\n\021table_"
+    "name_filter\030\003 \001(\0132\025.exec.user.LikeFilter"
+    "\022\031\n\021table_type_filter\030\004 \003(\t\"\\\n\rTableMeta"
+    "data\022\024\n\014catalog_name\030\001 \001(\t\022\023\n\013schema_nam"
+    "e\030\002 \001(\t\022\022\n\ntable_name\030\003 \001(\t\022\014\n\004type\030\004 \001("
+    "\t\"\215\001\n\rGetTablesResp\022(\n\006status\030\001 \001(\0162\030.ex"
+    "ec.user.RequestStatus\022(\n\006tables\030\002 \003(\0132\030."
+    "exec.user.TableMetadata\022(\n\005error\030\003 \001(\0132\031"
+    ".exec.shared.DrillPBError\"\333\001\n\rGetColumns"
+    "Req\0222\n\023catalog_name_filter\030\001 \001(\0132\025.exec."
+    "user.LikeFilter\0221\n\022schema_name_filter\030\002 "
+    "\001(\0132\025.exec.user.LikeFilter\0220\n\021table_name"
+    "_filter\030\003 \001(\0132\025.exec.user.LikeFilter\0221\n\022"
+    "column_name_filter\030\004 \001(\0132\025.exec.user.Lik"
+    "eFilter\"\251\003\n\016ColumnMetadata\022\024\n\014catalog_na"
+    "me\030\001 \001(\t\022\023\n\013schema_name\030\002 \001(\t\022\022\n\ntable_n"
+    "ame\030\003 \001(\t\022\023\n\013column_name\030\004 \001(\t\022\030\n\020ordina"
+    "l_position\030\005 \001(\005\022\025\n\rdefault_value\030\006 \001(\t\022"
+    "\023\n\013is_nullable\030\007 \001(\010\022\021\n\tdata_type\030\010 \001(\t\022"
+    "\027\n\017char_max_length\030\t \001(\005\022\031\n\021char_octet_l"
+    "ength\030\n \001(\005\022\031\n\021numeric_precision\030\013 \001(\005\022\037"
+    "\n\027numeric_precision_radix\030\014 \001(\005\022\025\n\rnumer"
+    "ic_scale\030\r \001(\005\022\033\n\023date_time_precision\030\016 "
+    "\001(\005\022\025\n\rinterval_type\030\017 \001(\t\022\032\n\022interval_p"
+    "recision\030\020 \001(\005\022\023\n\013column_size\030\021 \001(\005\"\220\001\n\016"
+    "GetColumnsResp\022(\n\006status\030\001 \001(\0162\030.exec.us"
+    "er.RequestStatus\022*\n\007columns\030\002 \003(\0132\031.exec"
+    ".user.ColumnMetadata\022(\n\005error\030\003 \001(\0132\031.ex"
+    "ec.shared.DrillPBError\"/\n\032CreatePrepared"
+    "StatementReq\022\021\n\tsql_query\030\001 \001(\t\"\326\003\n\024Resu"
+    "ltColumnMetadata\022\024\n\014catalog_name\030\001 \001(\t\022\023"
+    "\n\013schema_name\030\002 \001(\t\022\022\n\ntable_name\030\003 \001(\t\022"
+    "\023\n\013column_name\030\004 \001(\t\022\r\n\005label\030\005 \001(\t\022\021\n\td"
+    "ata_type\030\006 \001(\t\022\023\n\013is_nullable\030\007 \001(\010\022\021\n\tp"
+    "recision\030\010 \001(\005\022\r\n\005scale\030\t \001(\005\022\016\n\006signed\030"
+    "\n \001(\010\022\024\n\014display_size\030\013 \001(\005\022\022\n\nis_aliase"
+    "d\030\014 \001(\010\0225\n\rsearchability\030\r \001(\0162\036.exec.us"
+    "er.ColumnSearchability\0223\n\014updatability\030\016"
+    " \001(\0162\035.exec.user.ColumnUpdatability\022\026\n\016a"
+    "uto_increment\030\017 \001(\010\022\030\n\020case_sensitivity\030"
+    "\020 \001(\010\022\020\n\010sortable\030\021 \001(\010\022\022\n\nclass_name\030\022 "
+    "\001(\t\022\023\n\013is_currency\030\024 \001(\010\".\n\027PreparedStat"
+    "ementHandle\022\023\n\013server_info\030\001 \001(\014\"\200\001\n\021Pre"
+    "paredStatement\0220\n\007columns\030\001 \003(\0132\037.exec.u"
+    "ser.ResultColumnMetadata\0229\n\rserver_handl"
+    "e\030\002 \001(\0132\".exec.user.PreparedStatementHan"
+    "dle\"\253\001\n\033CreatePreparedStatementResp\022(\n\006s"
+    "tatus\030\001 \001(\0162\030.exec.user.RequestStatus\0228\n"
+    "\022prepared_statement\030\002 \001(\0132\034.exec.user.Pr"
+    "eparedStatement\022(\n\005error\030\003 \001(\0132\031.exec.sh"
+    "ared.DrillPBError\"\353\001\n\010RunQuery\0221\n\014result"
+    "s_mode\030\001 \001(\0162\033.exec.user.QueryResultsMod"
+    "e\022$\n\004type\030\002 \001(\0162\026.exec.shared.QueryType\022"
+    "\014\n\004plan\030\003 \001(\t\0221\n\tfragments\030\004 \003(\0132\036.exec."
+    "bit.control.PlanFragment\022E\n\031prepared_sta"
+    "tement_handle\030\005 \001(\0132\".exec.user.Prepared"
+    "StatementHandle*\310\003\n\007RpcType\022\r\n\tHANDSHAKE"
+    "\020\000\022\007\n\003ACK\020\001\022\013\n\007GOODBYE\020\002\022\r\n\tRUN_QUERY\020\003\022"
+    "\020\n\014CANCEL_QUERY\020\004\022\023\n\017REQUEST_RESULTS\020\005\022\027"
+    "\n\023RESUME_PAUSED_QUERY\020\013\022\034\n\030GET_QUERY_PLA"
+    "N_FRAGMENTS\020\014\022\020\n\014GET_CATALOGS\020\016\022\017\n\013GET_S"
+    "CHEMAS\020\017\022\016\n\nGET_TABLES\020\020\022\017\n\013GET_COLUMNS\020"
+    "\021\022\035\n\031CREATE_PREPARED_STATEMENT\020\026\022\016\n\nQUER"
+    "Y_DATA\020\006\022\020\n\014QUERY_HANDLE\020\007\022\030\n\024QUERY_PLAN"
+    "_FRAGMENTS\020\r\022\014\n\010CATALOGS\020\022\022\013\n\007SCHEMAS\020\023\022"
+    "\n\n\006TABLES\020\024\022\013\n\007COLUMNS\020\025\022\026\n\022PREPARED_STA"
+    "TEMENT\020\027\022\026\n\022REQ_META_FUNCTIONS\020\010\022\026\n\022RESP"
+    "_FUNCTION_LIST\020\t\022\020\n\014QUERY_RESULT\020\n*#\n\020Qu"
+    "eryResultsMode\022\017\n\013STREAM_FULL\020\001*^\n\017Hands"
+    "hakeStatus\022\013\n\007SUCCESS\020\001\022\030\n\024RPC_VERSION_M"
+    "ISMATCH\020\002\022\017\n\013AUTH_FAILED\020\003\022\023\n\017UNKNOWN_FA"
+    "ILURE\020\004*D\n\rRequestStatus\022\022\n\016UNKNOWN_STAT"
+    "US\020\000\022\006\n\002OK\020\001\022\n\n\006FAILED\020\002\022\013\n\007TIMEOUT\020\003*Y\n"
+    "\023ColumnSearchability\022\031\n\025UNKNOWN_SEARCHAB"
+    "ILITY\020\000\022\010\n\004NONE\020\001\022\010\n\004CHAR\020\002\022\n\n\006NUMBER\020\003\022"
+    "\007\n\003ALL\020\004*K\n\022ColumnUpdatability\022\030\n\024UNKNOW"
+    "N_UPDATABILITY\020\000\022\r\n\tREAD_ONLY\020\001\022\014\n\010WRITA"
+    "BLE\020\002B+\n\033org.apache.drill.exec.protoB\nUs"
+    "erProtosH\001", 5210);
   ::google::protobuf::MessageFactory::InternalRegisterGeneratedFile(
     "User.proto", &protobuf_RegisterTypes);
   Property::default_instance_ = new Property();
   UserProperties::default_instance_ = new UserProperties();
+  RpcEndpointInfos::default_instance_ = new RpcEndpointInfos();
   UserToBitHandshake::default_instance_ = new UserToBitHandshake();
   RequestResults::default_instance_ = new RequestResults();
-  RunQuery::default_instance_ = new RunQuery();
+  GetQueryPlanFragments::default_instance_ = new GetQueryPlanFragments();
+  QueryPlanFragments::default_instance_ = new QueryPlanFragments();
   BitToUserHandshake::default_instance_ = new BitToUserHandshake();
+  LikeFilter::default_instance_ = new LikeFilter();
+  GetCatalogsReq::default_instance_ = new GetCatalogsReq();
+  CatalogMetadata::default_instance_ = new CatalogMetadata();
+  GetCatalogsResp::default_instance_ = new GetCatalogsResp();
+  GetSchemasReq::default_instance_ = new GetSchemasReq();
+  SchemaMetadata::default_instance_ = new SchemaMetadata();
+  GetSchemasResp::default_instance_ = new GetSchemasResp();
+  GetTablesReq::default_instance_ = new GetTablesReq();
+  TableMetadata::default_instance_ = new TableMetadata();
+  GetTablesResp::default_instance_ = new GetTablesResp();
+  GetColumnsReq::default_instance_ = new GetColumnsReq();
+  ColumnMetadata::default_instance_ = new ColumnMetadata();
+  GetColumnsResp::default_instance_ = new GetColumnsResp();
+  CreatePreparedStatementReq::default_instance_ = new CreatePreparedStatementReq();
+  ResultColumnMetadata::default_instance_ = new ResultColumnMetadata();
+  PreparedStatementHandle::default_instance_ = new PreparedStatementHandle();
+  PreparedStatement::default_instance_ = new PreparedStatement();
+  CreatePreparedStatementResp::default_instance_ = new CreatePreparedStatementResp();
+  RunQuery::default_instance_ = new RunQuery();
   Property::default_instance_->InitAsDefaultInstance();
   UserProperties::default_instance_->InitAsDefaultInstance();
+  RpcEndpointInfos::default_instance_->InitAsDefaultInstance();
   UserToBitHandshake::default_instance_->InitAsDefaultInstance();
   RequestResults::default_instance_->InitAsDefaultInstance();
-  RunQuery::default_instance_->InitAsDefaultInstance();
+  GetQueryPlanFragments::default_instance_->InitAsDefaultInstance();
+  QueryPlanFragments::default_instance_->InitAsDefaultInstance();
   BitToUserHandshake::default_instance_->InitAsDefaultInstance();
+  LikeFilter::default_instance_->InitAsDefaultInstance();
+  GetCatalogsReq::default_instance_->InitAsDefaultInstance();
+  CatalogMetadata::default_instance_->InitAsDefaultInstance();
+  GetCatalogsResp::default_instance_->InitAsDefaultInstance();
+  GetSchemasReq::default_instance_->InitAsDefaultInstance();
+  SchemaMetadata::default_instance_->InitAsDefaultInstance();
+  GetSchemasResp::default_instance_->InitAsDefaultInstance();
+  GetTablesReq::default_instance_->InitAsDefaultInstance();
+  TableMetadata::default_instance_->InitAsDefaultInstance();
+  GetTablesResp::default_instance_->InitAsDefaultInstance();
+  GetColumnsReq::default_instance_->InitAsDefaultInstance();
+  ColumnMetadata::default_instance_->InitAsDefaultInstance();
+  GetColumnsResp::default_instance_->InitAsDefaultInstance();
+  CreatePreparedStatementReq::default_instance_->InitAsDefaultInstance();
+  ResultColumnMetadata::default_instance_->InitAsDefaultInstance();
+  PreparedStatementHandle::default_instance_->InitAsDefaultInstance();
+  PreparedStatement::default_instance_->InitAsDefaultInstance();
+  CreatePreparedStatementResp::default_instance_->InitAsDefaultInstance();
+  RunQuery::default_instance_->InitAsDefaultInstance();
   ::google::protobuf::internal::OnShutdown(&protobuf_ShutdownFile_User_2eproto);
 }
 
@@ -281,6 +971,18 @@ bool RpcType_IsValid(int value) {
     case 9:
     case 10:
     case 11:
+    case 12:
+    case 13:
+    case 14:
+    case 15:
+    case 16:
+    case 17:
+    case 18:
+    case 19:
+    case 20:
+    case 21:
+    case 22:
+    case 23:
       return true;
     default:
       return false;
@@ -316,6 +1018,54 @@ bool HandshakeStatus_IsValid(int value) {
   }
 }
 
+const ::google::protobuf::EnumDescriptor* RequestStatus_descriptor() {
+  protobuf_AssignDescriptorsOnce();
+  return RequestStatus_descriptor_;
+}
+bool RequestStatus_IsValid(int value) {
+  switch(value) {
+    case 0:
+    case 1:
+    case 2:
+    case 3:
+      return true;
+    default:
+      return false;
+  }
+}
+
+const ::google::protobuf::EnumDescriptor* ColumnSearchability_descriptor() {
+  protobuf_AssignDescriptorsOnce();
+  return ColumnSearchability_descriptor_;
+}
+bool ColumnSearchability_IsValid(int value) {
+  switch(value) {
+    case 0:
+    case 1:
+    case 2:
+    case 3:
+    case 4:
+      return true;
+    default:
+      return false;
+  }
+}
+
+const ::google::protobuf::EnumDescriptor* ColumnUpdatability_descriptor() {
+  protobuf_AssignDescriptorsOnce();
+  return ColumnUpdatability_descriptor_;
+}
+bool ColumnUpdatability_IsValid(int value) {
+  switch(value) {
+    case 0:
+    case 1:
+    case 2:
+      return true;
+    default:
+      return false;
+  }
+}
+
 
 // ===================================================================
 
@@ -809,204 +1559,200 @@ void UserProperties::Swap(UserProperties* other) {
 // ===================================================================
 
 #ifndef _MSC_VER
-const int UserToBitHandshake::kChannelFieldNumber;
-const int UserToBitHandshake::kSupportListeningFieldNumber;
-const int UserToBitHandshake::kRpcVersionFieldNumber;
-const int UserToBitHandshake::kCredentialsFieldNumber;
-const int UserToBitHandshake::kPropertiesFieldNumber;
-const int UserToBitHandshake::kSupportComplexTypesFieldNumber;
-const int UserToBitHandshake::kSupportTimeoutFieldNumber;
+const int RpcEndpointInfos::kNameFieldNumber;
+const int RpcEndpointInfos::kVersionFieldNumber;
+const int RpcEndpointInfos::kMajorVersionFieldNumber;
+const int RpcEndpointInfos::kMinorVersionFieldNumber;
+const int RpcEndpointInfos::kPatchVersionFieldNumber;
+const int RpcEndpointInfos::kApplicationFieldNumber;
 #endif  // !_MSC_VER
 
-UserToBitHandshake::UserToBitHandshake()
+RpcEndpointInfos::RpcEndpointInfos()
   : ::google::protobuf::Message() {
   SharedCtor();
 }
 
-void UserToBitHandshake::InitAsDefaultInstance() {
-  credentials_ = const_cast< ::exec::shared::UserCredentials*>(&::exec::shared::UserCredentials::default_instance());
-  properties_ = const_cast< ::exec::user::UserProperties*>(&::exec::user::UserProperties::default_instance());
+void RpcEndpointInfos::InitAsDefaultInstance() {
 }
 
-UserToBitHandshake::UserToBitHandshake(const UserToBitHandshake& from)
+RpcEndpointInfos::RpcEndpointInfos(const RpcEndpointInfos& from)
   : ::google::protobuf::Message() {
   SharedCtor();
   MergeFrom(from);
 }
 
-void UserToBitHandshake::SharedCtor() {
+void RpcEndpointInfos::SharedCtor() {
   _cached_size_ = 0;
-  channel_ = 2;
-  support_listening_ = false;
-  rpc_version_ = 0;
-  credentials_ = NULL;
-  properties_ = NULL;
-  support_complex_types_ = false;
-  support_timeout_ = false;
+  name_ = const_cast< ::std::string*>(&::google::protobuf::internal::kEmptyString);
+  version_ = const_cast< ::std::string*>(&::google::protobuf::internal::kEmptyString);
+  majorversion_ = 0u;
+  minorversion_ = 0u;
+  patchversion_ = 0u;
+  application_ = const_cast< ::std::string*>(&::google::protobuf::internal::kEmptyString);
   ::memset(_has_bits_, 0, sizeof(_has_bits_));
 }
 
-UserToBitHandshake::~UserToBitHandshake() {
+RpcEndpointInfos::~RpcEndpointInfos() {
   SharedDtor();
 }
 
-void UserToBitHandshake::SharedDtor() {
+void RpcEndpointInfos::SharedDtor() {
+  if (name_ != &::google::protobuf::internal::kEmptyString) {
+    delete name_;
+  }
+  if (version_ != &::google::protobuf::internal::kEmptyString) {
+    delete version_;
+  }
+  if (application_ != &::google::protobuf::internal::kEmptyString) {
+    delete application_;
+  }
   if (this != default_instance_) {
-    delete credentials_;
-    delete properties_;
   }
 }
 
-void UserToBitHandshake::SetCachedSize(int size) const {
+void RpcEndpointInfos::SetCachedSize(int size) const {
   GOOGLE_SAFE_CONCURRENT_WRITES_BEGIN();
   _cached_size_ = size;
   GOOGLE_SAFE_CONCURRENT_WRITES_END();
 }
-const ::google::protobuf::Descriptor* UserToBitHandshake::descriptor() {
+const ::google::protobuf::Descriptor* RpcEndpointInfos::descriptor() {
   protobuf_AssignDescriptorsOnce();
-  return UserToBitHandshake_descriptor_;
+  return RpcEndpointInfos_descriptor_;
 }
 
-const UserToBitHandshake& UserToBitHandshake::default_instance() {
+const RpcEndpointInfos& RpcEndpointInfos::default_instance() {
   if (default_instance_ == NULL) protobuf_AddDesc_User_2eproto();
   return *default_instance_;
 }
 
-UserToBitHandshake* UserToBitHandshake::default_instance_ = NULL;
+RpcEndpointInfos* RpcEndpointInfos::default_instance_ = NULL;
 
-UserToBitHandshake* UserToBitHandshake::New() const {
-  return new UserToBitHandshake;
+RpcEndpointInfos* RpcEndpointInfos::New() const {
+  return new RpcEndpointInfos;
 }
 
-void UserToBitHandshake::Clear() {
+void RpcEndpointInfos::Clear() {
   if (_has_bits_[0 / 32] & (0xffu << (0 % 32))) {
-    channel_ = 2;
-    support_listening_ = false;
-    rpc_version_ = 0;
-    if (has_credentials()) {
-      if (credentials_ != NULL) credentials_->::exec::shared::UserCredentials::Clear();
+    if (has_name()) {
+      if (name_ != &::google::protobuf::internal::kEmptyString) {
+        name_->clear();
+      }
     }
-    if (has_properties()) {
-      if (properties_ != NULL) properties_->::exec::user::UserProperties::Clear();
+    if (has_version()) {
+      if (version_ != &::google::protobuf::internal::kEmptyString) {
+        version_->clear();
+      }
+    }
+    majorversion_ = 0u;
+    minorversion_ = 0u;
+    patchversion_ = 0u;
+    if (has_application()) {
+      if (application_ != &::google::protobuf::internal::kEmptyString) {
+        application_->clear();
+      }
     }
-    support_complex_types_ = false;
-    support_timeout_ = false;
   }
   ::memset(_has_bits_, 0, sizeof(_has_bits_));
   mutable_unknown_fields()->Clear();
 }
 
-bool UserToBitHandshake::MergePartialFromCodedStream(
+bool RpcEndpointInfos::MergePartialFromCodedStream(
     ::google::protobuf::io::CodedInputStream* input) {
 #define DO_(EXPRESSION) if (!(EXPRESSION)) return false
   ::google::protobuf::uint32 tag;
   while ((tag = input->ReadTag()) != 0) {
     switch (::google::protobuf::internal::WireFormatLite::GetTagFieldNumber(tag)) {
-      // optional .exec.shared.RpcChannel channel = 1 [default = USER];
+      // optional string name = 1;
       case 1: {
         if (::google::protobuf::internal::WireFormatLite::GetTagWireType(tag) ==
-            ::google::protobuf::internal::WireFormatLite::WIRETYPE_VARINT) {
-          int value;
-          DO_((::google::protobuf::internal::WireFormatLite::ReadPrimitive<
-                   int, ::google::protobuf::internal::WireFormatLite::TYPE_ENUM>(
-                 input, &value)));
-          if (::exec::shared::RpcChannel_IsValid(value)) {
-            set_channel(static_cast< ::exec::shared::RpcChannel >(value));
-          } else {
-            mutable_unknown_fields()->AddVarint(1, value);
-          }
+            ::google::protobuf::internal::WireFormatLite::WIRETYPE_LENGTH_DELIMITED) {
+          DO_(::google::protobuf::internal::WireFormatLite::ReadString(
+                input, this->mutable_name()));
+          ::google::protobuf::internal::WireFormat::VerifyUTF8String(
+            this->name().data(), this->name().length(),
+            ::google::protobuf::internal::WireFormat::PARSE);
         } else {
           goto handle_uninterpreted;
         }
-        if (input->ExpectTag(16)) goto parse_support_listening;
+        if (input->ExpectTag(18)) goto parse_version;
         break;
       }
 
-      // optional bool support_listening = 2;
+      // optional string version = 2;
       case 2: {
         if (::google::protobuf::internal::WireFormatLite::GetTagWireType(tag) ==
-            ::google::protobuf::internal::WireFormatLite::WIRETYPE_VARINT) {
-         parse_support_listening:
-          DO_((::google::protobuf::internal::WireFormatLite::ReadPrimitive<
-                   bool, ::google::protobuf::internal::WireFormatLite::TYPE_BOOL>(
-                 input, &support_listening_)));
-          set_has_support_listening();
+            ::google::protobuf::internal::WireFormatLite::WIRETYPE_LENGTH_DELIMITED) {
+         parse_version:
+          DO_(::google::protobuf::internal::WireFormatLite::ReadString(
+                input, this->mutable_version()));
+          ::google::protobuf::internal::WireFormat::VerifyUTF8String(
+            this->version().data(), this->version().length(),
+            ::google::protobuf::internal::WireFormat::PARSE);
         } else {
           goto handle_uninterpreted;
         }
-        if (input->ExpectTag(24)) goto parse_rpc_version;
+        if (input->ExpectTag(24)) goto parse_majorVersion;
         break;
       }
 
-      // optional int32 rpc_version = 3;
+      // optional uint32 majorVersion = 3;
       case 3: {
         if (::google::protobuf::internal::WireFormatLite::GetTagWireType(tag) ==
             ::google::protobuf::internal::WireFormatLite::WIRETYPE_VARINT) {
-         parse_rpc_version:
+         parse_majorVersion:
           DO_((::google::protobuf::internal::WireFormatLite::ReadPrimitive<
-                   ::google::protobuf::int32, ::google::protobuf::internal::WireFormatLite::TYPE_INT32>(
-                 input, &rpc_version_)));
-          set_has_rpc_version();
+                   ::google::protobuf::uint32, ::google::protobuf::internal::WireFormatLite::TYPE_UINT32>(
+                 input, &majorversion_)));
+          set_has_majorversion();
         } else {
           goto handle_uninterpreted;
         }
-        if (input->ExpectTag(34)) goto parse_credentials;
+        if (input->ExpectTag(32)) goto parse_minorVersion;
         break;
       }
 
-      // optional .exec.shared.UserCredentials credentials = 4;
+      // optional uint32 minorVersion = 4;
       case 4: {
         if (::google::protobuf::internal::WireFormatLite::GetTagWireType(tag) ==
-            ::google::protobuf::internal::WireFormatLite::WIRETYPE_LENGTH_DELIMITED) {
-         parse_credentials:
-          DO_(::google::protobuf::internal::WireFormatLite::ReadMessageNoVirtual(
-               input, mutable_credentials()));
+            ::google::protobuf::internal::WireFormatLite::WIRETYPE_VARINT) {
+         parse_minorVersion:
+          DO_((::google::protobuf::internal::WireFormatLite::ReadPrimitive<
+                   ::google::protobuf::uint32, ::google::protobuf::internal::WireFormatLite::TYPE_UINT32>(
+                 input, &minorversion_)));
+          set_has_minorversion();
         } else {
           goto handle_uninterpreted;
         }
-        if (input->ExpectTag(42)) goto parse_properties;
+        if (input->ExpectTag(40)) goto parse_patchVersion;
         break;
       }
 
-      // optional .exec.user.UserProperties properties = 5;
+      // optional uint32 patchVersion = 5;
       case 5: {
         if (::google::protobuf::internal::WireFormatLite::GetTagWireType(tag) ==
-            ::google::protobuf::internal::WireFormatLite::WIRETYPE_LENGTH_DELIMITED) {
-         parse_properties:
-          DO_(::google::protobuf::internal::WireFormatLite::ReadMessageNoVirtual(
-               input, mutable_properties()));
-        } else {
-          goto handle_uninterpreted;
-        }
-        if (input->ExpectTag(48)) goto parse_support_complex_types;
-        break;
-      }
-
-      // optional bool support_complex_types = 6 [default = false];
-      case 6: {
-        if (::google::protobuf::internal::WireFormatLite::GetTagWireType(tag) ==
             ::google::protobuf::internal::WireFormatLite::WIRETYPE_VARINT) {
-         parse_support_complex_types:
+         parse_patchVersion:
           DO_((::google::protobuf::internal::WireFormatLite::ReadPrimitive<
-                   bool, ::google::protobuf::internal::WireFormatLite::TYPE_BOOL>(
-                 input, &support_complex_types_)));
-          set_has_support_complex_types();
+                   ::google::protobuf::uint32, ::google::protobuf::internal::WireFormatLite::TYPE_UINT32>(
+                 input, &patchversion_)));
+          set_has_patchversion();
         } else {
           goto handle_uninterpreted;
         }
-        if (input->ExpectTag(56)) goto parse_support_timeout;
+        if (input->ExpectTag(50)) goto parse_application;
         break;
       }
 
-      // optional bool support_timeout = 7 [default = false];
-      case 7: {
+      // optional string application = 6;
+      case 6: {
         if (::google::protobuf::internal::WireFormatLite::GetTagWireType(tag) ==
-            ::google::protobuf::internal::WireFormatLite::WIRETYPE_VARINT) {
-         parse_support_timeout:
-          DO_((::google::protobuf::internal::WireFormatLite::ReadPrimitive<
-                   bool, ::google::protobuf::internal::WireFormatLite::TYPE_BOOL>(
-                 input, &support_timeout_)));
-          set_has_support_timeout();
+            ::google::protobuf::internal::WireFormatLite::WIRETYPE_LENGTH_DELIMITED) {
+         parse_application:
+          DO_(::google::protobuf::internal::WireFormatLite::ReadString(
+                input, this->mutable_application()));
+          ::google::protobuf::internal::WireFormat::VerifyUTF8String(
+            this->application().data(), this->application().length(),
+            ::google::protobuf::internal::WireFormat::PARSE);
         } else {
           goto handle_uninterpreted;
         }
@@ -1030,44 +1776,48 @@ bool UserToBitHandshake::MergePartialFromCodedStream(
 #undef DO_
 }
 
-void UserToBitHandshake::SerializeWithCachedSizes(
+void RpcEndpointInfos::SerializeWithCachedSizes(
     ::google::protobuf::io::CodedOutputStream* output) const {
-  // optional .exec.shared.RpcChannel channel = 1 [default = USER];
-  if (has_channel()) {
-    ::google::protobuf::internal::WireFormatLite::WriteEnum(
-      1, this->channel(), output);
-  }
-
-  // optional bool support_listening = 2;
-  if (has_support_listening()) {
-    ::google::protobuf::internal::WireFormatLite::WriteBool(2, this->support_listening(), output);
+  // optional string name = 1;
+  if (has_name()) {
+    ::google::protobuf::internal::WireFormat::VerifyUTF8String(
+      this->name().data(), this->name().length(),
+      ::google::protobuf::internal::WireFormat::SERIALIZE);
+    ::google::protobuf::internal::WireFormatLite::WriteString(
+      1, this->name(), output);
   }
 
-  // optional int32 rpc_version = 3;
-  if (has_rpc_version()) {
-    ::google::protobuf::internal::WireFormatLite::WriteInt32(3, this->rpc_version(), output);
+  // optional string version = 2;
+  if (has_version()) {
+    ::google::protobuf::internal::WireFormat::VerifyUTF8String(
+      this->version().data(), this->version().length(),
+      ::google::protobuf::internal::WireFormat::SERIALIZE);
+    ::google::protobuf::internal::WireFormatLite::WriteString(
+      2, this->version(), output);
   }
 
-  // optional .exec.shared.UserCredentials credentials = 4;
-  if (has_credentials()) {
-    ::google::protobuf::internal::WireFormatLite::WriteMessageMaybeToArray(
-      4, this->credentials(), output);
+  // optional uint32 majorVersion = 3;
+  if (has_majorversion()) {
+    ::google::protobuf::internal::WireFormatLite::WriteUInt32(3, this->majorversion(), output);
   }
 
-  // optional .exec.user.UserProperties properties = 5;
-  if (has_properties()) {
-    ::google::protobuf::internal::WireFormatLite::WriteMessageMaybeToArray(
-      5, this->properties(), output);
+  // optional uint32 minorVersion = 4;
+  if (has_minorversion()) {
+    ::google::protobuf::internal::WireFormatLite::WriteUInt32(4, this->minorversion(), output);
   }
 
-  // optional bool support_complex_types = 6 [default = false];
-  if (has_support_complex_types()) {
-    ::google::protobuf::internal::WireFormatLite::WriteBool(6, this->support_complex_types(), output);
+  // optional uint32 patchVersion = 5;
+  if (has_patchversion()) {
+    ::google::protobuf::internal::WireFormatLite::WriteUInt32(5, this->patchversion(), output);
   }
 
-  // optional bool support_timeout = 7 [default = false];
-  if (has_support_timeout()) {
-    ::google::protobuf::internal::WireFormatLite::WriteBool(7, this->support_timeout(), output);
+  // optional string application = 6;
+  if (has_application()) {
+    ::google::protobuf::internal::WireFormat::VerifyUTF8String(
+      this->application().data(), this->application().length(),
+      ::google::protobuf::internal::WireFormat::SERIALIZE);
+    ::google::protobuf::internal::WireFormatLite::WriteString(
+      6, this->application(), output);
   }
 
   if (!unknown_fields().empty()) {
@@ -1076,46 +1826,51 @@ void UserToBitHandshake::SerializeWithCachedSizes(
   }
 }
 
-::google::protobuf::uint8* UserToBitHandshake::SerializeWithCachedSizesToArray(
+::google::protobuf::uint8* RpcEndpointInfos::SerializeWithCachedSizesToArray(
     ::google::protobuf::uint8* target) const {
-  // optional .exec.shared.RpcChannel channel = 1 [default = USER];
-  if (has_channel()) {
-    target = ::google::protobuf::internal::WireFormatLite::WriteEnumToArray(
-      1, this->channel(), target);
-  }
-
-  // optional bool support_listening = 2;
-  if (has_support_listening()) {
-    target = ::google::protobuf::internal::WireFormatLite::WriteBoolToArray(2, this->support_listening(), target);
+  // optional string name = 1;
+  if (has_name()) {
+    ::google::protobuf::internal::WireFormat::VerifyUTF8String(
+      this->name().data(), this->name().length(),
+      ::google::protobuf::internal::WireFormat::SERIALIZE);
+    target =
+      ::google::protobuf::internal::WireFormatLite::WriteStringToArray(
+        1, this->name(), target);
   }
 
-  // optional int32 rpc_version = 3;
-  if (has_rpc_version()) {
-    target = ::google::protobuf::internal::WireFormatLite::WriteInt32ToArray(3, this->rpc_version(), target);
+  // optional string version = 2;
+  if (has_version()) {
+    ::google::protobuf::internal::WireFormat::VerifyUTF8String(
+      this->version().data(), this->version().length(),
+      ::google::protobuf::internal::WireFormat::SERIALIZE);
+    target =
+      ::google::protobuf::internal::WireFormatLite::WriteStringToArray(
+        2, this->version(), target);
   }
 
-  // optional .exec.shared.UserCredentials credentials = 4;
-  if (has_credentials()) {
-    target = ::google::protobuf::internal::WireFormatLite::
-      WriteMessageNoVirtualToArray(
-        4, this->credentials(), target);
+  // optional uint32 majorVersion = 3;
+  if (has_majorversion()) {
+    target = ::google::protobuf::internal::WireFormatLite::WriteUInt32ToArray(3, this->majorversion(), target);
   }
 
-  // optional .exec.user.UserProperties properties = 5;
-  if (has_properties()) {
-    target = ::google::protobuf::internal::WireFormatLite::
-      WriteMessageNoVirtualToArray(
-        5, this->properties(), target);
+  // optional uint32 minorVersion = 4;
+  if (has_minorversion()) {
+    target = ::google::protobuf::internal::WireFormatLite::WriteUInt32ToArray(4, this->minorversion(), target);
   }
 
-  // optional bool support_complex_types = 6 [default = false];
-  if (has_support_complex_types()) {
-    target = ::google::protobuf::internal::WireFormatLite::WriteBoolToArray(6, this->support_complex_types(), target);
+  // optional uint32 patchVersion = 5;
+  if (has_patchversion()) {
+    target = ::google::protobuf::internal::WireFormatLite::WriteUInt32ToArray(5, this->patchversion(), target);
   }
 
-  // optional bool support_timeout = 7 [default = false];
-  if (has_support_timeout()) {
-    target = ::google::protobuf::internal::WireFormatLite::WriteBoolToArray(7, this->support_timeout(), target);
+  // optional string application = 6;
+  if (has_application()) {
+    ::google::protobuf::internal::WireFormat::VerifyUTF8String(
+      this->application().data(), this->application().length(),
+      ::google::protobuf::internal::WireFormat::SERIALIZE);
+    target =
+      ::google::protobuf::internal::WireFormatLite::WriteStringToArray(
+        6, this->application(), target);
   }
 
   if (!unknown_fields().empty()) {
@@ -1125,50 +1880,50 @@ void UserToBitHandshake::SerializeWithCachedSizes(
   return target;
 }
 
-int UserToBitHandshake::ByteSize() const {
+int RpcEndpointInfos::ByteSize() const {
   int total_size = 0;
 
   if (_has_bits_[0 / 32] & (0xffu << (0 % 32))) {
-    // optional .exec.shared.RpcChannel channel = 1 [default = USER];
-    if (has_channel()) {
+    // optional string name = 1;
+    if (has_name()) {
       total_size += 1 +
-        ::google::protobuf::internal::WireFormatLite::EnumSize(this->channel());
-    }
-
-    // optional bool support_listening = 2;
-    if (has_support_listening()) {
-      total_size += 1 + 1;
+        ::google::protobuf::internal::WireFormatLite::StringSize(
+          this->name());
     }
 
-    // optional int32 rpc_version = 3;
-    if (has_rpc_version()) {
+    // optional string version = 2;
+    if (has_version()) {
       total_size += 1 +
-        ::google::protobuf::internal::WireFormatLite::Int32Size(
-          this->rpc_version());
+        ::google::protobuf::internal::WireFormatLite::StringSize(
+          this->version());
     }
 
-    // optional .exec.shared.UserCredentials credentials = 4;
-    if (has_credentials()) {
+    // optional uint32 majorVersion = 3;
+    if (has_majorversion()) {
       total_size += 1 +
-        ::google::protobuf::internal::WireFormatLite::MessageSizeNoVirtual(
-          this->credentials());
+        ::google::protobuf::internal::WireFormatLite::UInt32Size(
+          this->majorversion());
     }
 
-    // optional .exec.user.UserProperties properties = 5;
-    if (has_properties()) {
+    // optional uint32 minorVersion = 4;
+    if (has_minorversion()) {
       total_size += 1 +
-        ::google::protobuf::internal::WireFormatLite::MessageSizeNoVirtual(
-          this->properties());
+        ::google::protobuf::internal::WireFormatLite::UInt32Size(
+          this->minorversion());
     }
 
-    // optional bool support_complex_types = 6 [default = false];
-    if (has_support_complex_types()) {
-      total_size += 1 + 1;
+    // optional uint32 patchVersion = 5;
+    if (has_patchversion()) {
+      total_size += 1 +
+        ::google::protobuf::internal::WireFormatLite::UInt32Size(
+          this->patchversion());
     }
 
-    // optional bool support_timeout = 7 [default = false];
-    if (has_support_timeout()) {
-      total_size += 1 + 1;
+    // optional string application = 6;
+    if (has_application()) {
+      total_size += 1 +
+        ::google::protobuf::internal::WireFormatLite::StringSize(
+          this->application());
     }
 
   }
@@ -1183,10 +1938,10 @@ int UserToBitHandshake::ByteSize() const {
   return total_size;
 }
 
-void UserToBitHandshake::MergeFrom(const ::google::protobuf::Message& from) {
+void RpcEndpointInfos::MergeFrom(const ::google::protobuf::Message& from) {
   GOOGLE_CHECK_NE(&from, this);
-  const UserToBitHandshake* source =
-    ::google::protobuf::internal::dynamic_cast_if_available<const UserToBitHandshake*>(
+  const RpcEndpointInfos* source =
+    ::google::protobuf::internal::dynamic_cast_if_available<const RpcEndpointInfos*>(
       &from);
   if (source == NULL) {
     ::google::protobuf::internal::ReflectionOps::Merge(from, this);
@@ -1195,74 +1950,8205 @@ void UserToBitHandshake::MergeFrom(const ::google::protobuf::Message& from) {
   }
 }
 
-void UserToBitHandshake::MergeFrom(const UserToBitHandshake& from) {
+void RpcEndpointInfos::MergeFrom(const RpcEndpointInfos& from) {
   GOOGLE_CHECK_NE(&from, this);
   if (from._has_bits_[0 / 32] & (0xffu << (0 % 32))) {
-    if (from.has_channel()) {
-      set_channel(from.channel());
+    if (from.has_name()) {
+      set_name(from.name());
     }
-    if (from.has_support_listening()) {
-      set_support_listening(from.support_listening());
+    if (from.has_version()) {
+      set_version(from.version());
     }
-    if (from.has_rpc_version()) {
-      set_rpc_version(from.rpc_version());
+    if (from.has_majorversion()) {
+      set_majorversion(from.majorversion());
     }
-    if (from.has_credentials()) {
-      mutable_credentials()->::exec::shared::UserCredentials::MergeFrom(from.credentials());
+    if (from.has_minorversion()) {
+      set_minorversion(from.minorversion());
     }
-    if (from.has_properties()) {
-      mutable_properties()->::exec::user::UserProperties::MergeFrom(from.properties());
+    if (from.has_patchversion()) {
+      set_patchversion(from.patchversion());
     }
-    if (from.has_support_complex_types()) {
-      set_support_complex_types(from.support_complex_types());
+    if (from.has_application()) {
+      set_application(from.application());
     }
-    if (from.has_support_timeout()) {
-      set_support_timeout(from.support_timeout());
+  }
+  mutable_unknown_fields()->MergeFrom(from.unknown_fields());
+}
+
+void RpcEndpointInfos::CopyFrom(const ::google::protobuf::Message& from) {
+  if (&from == this) return;
+  Clear();
+  MergeFrom(from);
+}
+
+void RpcEndpointInfos::CopyFrom(const RpcEndpointInfos& from) {
+  if (&from == this) return;
+  Clear();
+  MergeFrom(from);
+}
+
+bool RpcEndpointInfos::IsInitialized() const {
+
+  return true;
+}
+
+void RpcEndpointInfos::Swap(RpcEndpointInfos* other) {
+  if (other != this) {
+    std::swap(name_, other->name_);
+    std::swap(version_, other->version_);
+    std::swap(majorversion_, other->majorversion_);
+    std::swap(minorversion_, other->minorversion_);
+    std::swap(patchversion_, other->patchversion_);
+    std::swap(application_, other->application_);
+    std::swap(_has_bits_[0], other->_has_bits_[0]);
+    _unknown_fields_.Swap(&other->_unknown_fields_);
+    std::swap(_cached_size_, other->_cached_size_);
+  }
+}
+
+::google::protobuf::Metadata RpcEndpointInfos::GetMetadata() const {
+  protobuf_AssignDescriptorsOnce();
+  ::google::protobuf::Metadata metadata;
+  metadata.descriptor = RpcEndpointInfos_descriptor_;
+  metadata.reflection = RpcEndpointInfos_reflection_;
+  return metadata;
+}
+
+
+// ===================================================================
+
+#ifndef _MSC_VER
+const int UserToBitHandshake::kChannelFieldNumber;
+const int UserToBitHandshake::kSupportListeningFieldNumber;
+const int UserToBitHandshake::kRpcVersionFieldNumber;
+const int UserToBitHandshake::kCredentialsFieldNumber;
+const int UserToBitHandshake::kPropertiesFieldNumber;
+const int UserToBitHandshake::kSupportComplexTypesFieldNumber;
+const int UserToBitHandshake::kSupportTimeoutFieldNumber;
+const int UserToBitHandshake::kClientInfosFieldNumber;
+#endif  // !_MSC_VER
+
+UserToBitHandshake::UserToBitHandshake()
+  : ::google::protobuf::Message() {
+  SharedCtor();
+}
+
+void UserToBitHandshake::InitAsDefaultInstance() {
+  credentials_ = const_cast< ::exec::shared::UserCredentials*>(&::exec::shared::UserCredentials::default_instance());
+  properties_ = const_cast< ::exec::user::UserProperties*>(&::exec::user::UserProperties::default_instance());
+  client_infos_ = const_cast< ::exec::user::RpcEndpointInfos*>(&::exec::user::RpcEndpointInfos::default_instance());
+}
+
+UserToBitHandshake::UserToBitHandshake(const UserToBitHandshake& from)
+  : ::google::protobuf::Message() {
+  SharedCtor();
+  MergeFrom(from);
+}
+
+void UserToBitHandshake::SharedCtor() {
+  _cached_size_ = 0;
+  channel_ = 2;
+  support_listening_ = false;
+  rpc_version_ = 0;
+  credentials_ = NULL;
+  properties_ = NULL;
+  support_complex_types_ = false;
+  support_timeout_ = false;
+  client_infos_ = NULL;
+  ::memset(_has_bits_, 0, sizeof(_has_bits_));
+}
+
+UserToBitHandshake::~UserToBitHandshake() {
+  SharedDtor();
+}
+
+void UserToBitHandshake::SharedDtor() {
+  if (this != default_instance_) {
+    delete credentials_;
+    delete properties_;
+    delete client_infos_;
+  }
+}
+
+void UserToBitHandshake::SetCachedSize(int size) const {
+  GOOGLE_SAFE_CONCURRENT_WRITES_BEGIN();
+  _cached_size_ = size;
+  GOOGLE_SAFE_CONCURRENT_WRITES_END();
+}
+const ::google::protobuf::Descriptor* UserToBitHandshake::descriptor() {
+  protobuf_AssignDescriptorsOnce();
+  return UserToBitHandshake_descriptor_;
+}
+
+const UserToBitHandshake& UserToBitHandshake::default_instance() {
+  if (default_instance_ == NULL) protobuf_AddDesc_User_2eproto();
+  return *default_instance_;
+}
+
+UserToBitHandshake* UserToBitHandshake::default_instance_ = NULL;
+
+UserToBitHandshake* UserToBitHandshake::New() const {
+  return new UserToBitHandshake;
+}
+
+void UserToBitHandshake::Clear() {
+  if (_has_bits_[0 / 32] & (0xffu << (0 % 32))) {
+    channel_ = 2;
+    support_listening_ = false;
+    rpc_version_ = 0;
+    if (has_credentials()) {
+      if (credentials_ != NULL) credentials_->::exec::shared::UserCredentials::Clear();
+    }
+    if (has_properties()) {
+      if (properties_ != NULL) properties_->::exec::user::UserProperties::Clear();
+    }
+    support_complex_types_ = false;
+    support_timeout_ = false;
+    if (has_client_infos()) {
+      if (client_infos_ != NULL) client_infos_->::exec::user::RpcEndpointInfos::Clear();
+    }
+  }
+  ::memset(_has_bits_, 0, sizeof(_has_bits_));
+  mutable_unknown_fields()->Clear();
+}
+
+bool UserToBitHandshake::MergePartialFromCodedStream(
+    ::google::protobuf::io::CodedInputStream* input) {
+#define DO_(EXPRESSION) if (!(EXPRESSION)) return false
+  ::google::protobuf::uint32 tag;
+  while ((tag = input->ReadTag()) != 0) {
+    switch (::google::protobuf::internal::WireFormatLite::GetTagFieldNumber(tag)) {
+      // optional .exec.shared.RpcChannel channel = 1 [default = USER];
+      case 1: {
+        if (::google::protobuf::internal::WireFormatLite::GetTagWireType(tag) ==
+            ::google::protobuf::internal::WireFormatLite::WIRETYPE_VARINT) {
+          int value;
+          DO_((::google::protobuf::internal::WireFormatLite::ReadPrimitive<
+                   int, ::google::protobuf::internal::WireFormatLite::TYPE_ENUM>(
+                 input, &value)));
+          if (::exec::shared::RpcChannel_IsValid(value)) {
+            set_channel(static_cast< ::exec::shared::RpcChannel >(value));
+          } else {
+            mutable_unknown_fields()->AddVarint(1, value);
+          }
+        } else {
+          goto handle_uninterpreted;
+        }
+        if (input->ExpectTag(16)) goto parse_support_listening;
+        break;
+      }
+
+      // optional bool support_listening = 2;
+      case 2: {
+        if (::google::protobuf::internal::WireFormatLite::GetTagWireType(tag) ==
+            ::google::protobuf::internal::WireFormatLite::WIRETYPE_VARINT) {
+         parse_support_listening:
+          DO_((::google::protobuf::internal::WireFormatLite::ReadPrimitive<
+                   bool, ::google::protobuf::internal::WireFormatLite::TYPE_BOOL>(
+                 input, &support_listening_)));
+          set_has_support_listening();
+        } else {
+          goto handle_uninterpreted;
+        }
+        if (input->ExpectTag(24)) goto parse_rpc_version;
+        break;
+      }
+
+      // optional int32 rpc_version = 3;
+      case 3: {
+        if (::google::protobuf::internal::WireFormatLite::GetTagWireType(tag) ==
+            ::google::protobuf::internal::WireFormatLite::WIRETYPE_VARINT) {
+         parse_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;
+        }
+        if (input->ExpectTag(34)) goto parse_credentials;
+        break;
+      }
+
+      // optional .exec.shared.UserCredentials credentials = 4;
+      case 4: {
+        if (::google::protobuf::internal::WireFormatLite::GetTagWireType(tag) ==
+            ::google::protobuf::internal::WireFormatLite::WIRETYPE_LENGTH_DELIMITED) {
+         parse_credentials:
+          DO_(::google::protobuf::internal::WireFormatLite::ReadMessageNoVirtual(
+               input, mutable_credentials()));
+        } else {
+          goto handle_uninterpreted;
+        }
+        if (input->ExpectTag(42)) goto parse_properties;
+        break;
+      }
+
+      // optional .exec.user.UserProperties properties = 5;
+      case 5: {
+        if (::google::protobuf::internal::WireFormatLite::GetTagWireType(tag) ==
+            ::google::protobuf::internal::WireFormatLite::WIRETYPE_LENGTH_DELIMITED) {
+         parse_properties:
+          DO_(::google::protobuf::internal::WireFormatLite::ReadMessageNoVirtual(
+               input, mutable_properties()));
+        } else {
+          goto handle_uninterpreted;
+        }
+        if (input->ExpectTag(48)) goto parse_support_complex_types;
+        break;
+      }
+
+      // optional bool support_complex_types = 6 [default = false];
+      case 6: {
+        if (::google::protobuf::internal::WireFormatLite::GetTagWireType(tag) ==
+            ::google::protobuf::internal::WireFormatLite::WIRETYPE_VARINT) {
+         parse_support_complex_types:
+          DO_((::google::protobuf::internal::WireFormatLite::ReadPrimitive<
+                   bool, ::google::protobuf::internal::WireFormatLite::TYPE_BOOL>(
+                 input, &support_complex_types_)));
+          set

<TRUNCATED>