drill-commits mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From j..@apache.org
Subject [07/27] drill git commit: DRILL-5301: Add C++ client support for Server metadata API
Date Thu, 02 Mar 2017 20:59:34 GMT
http://git-wip-us.apache.org/repos/asf/drill/blob/d3238b1b/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 aee70b8..be3f001 100644
--- a/contrib/native/client/src/protobuf/User.pb.cc
+++ b/contrib/native/client/src/protobuf/User.pb.cc
@@ -99,6 +99,18 @@ const ::google::protobuf::internal::GeneratedMessageReflection*
 const ::google::protobuf::Descriptor* CreatePreparedStatementResp_descriptor_ = NULL;
 const ::google::protobuf::internal::GeneratedMessageReflection*
   CreatePreparedStatementResp_reflection_ = NULL;
+const ::google::protobuf::Descriptor* GetServerMetaReq_descriptor_ = NULL;
+const ::google::protobuf::internal::GeneratedMessageReflection*
+  GetServerMetaReq_reflection_ = NULL;
+const ::google::protobuf::Descriptor* ConvertSupport_descriptor_ = NULL;
+const ::google::protobuf::internal::GeneratedMessageReflection*
+  ConvertSupport_reflection_ = NULL;
+const ::google::protobuf::Descriptor* GetServerMetaResp_descriptor_ = NULL;
+const ::google::protobuf::internal::GeneratedMessageReflection*
+  GetServerMetaResp_reflection_ = NULL;
+const ::google::protobuf::Descriptor* ServerMeta_descriptor_ = NULL;
+const ::google::protobuf::internal::GeneratedMessageReflection*
+  ServerMeta_reflection_ = NULL;
 const ::google::protobuf::Descriptor* RunQuery_descriptor_ = NULL;
 const ::google::protobuf::internal::GeneratedMessageReflection*
   RunQuery_reflection_ = NULL;
@@ -109,6 +121,16 @@ 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;
+const ::google::protobuf::EnumDescriptor* CollateSupport_descriptor_ = NULL;
+const ::google::protobuf::EnumDescriptor* CorrelationNamesSupport_descriptor_ = NULL;
+const ::google::protobuf::EnumDescriptor* DateTimeLiteralsSupport_descriptor_ = NULL;
+const ::google::protobuf::EnumDescriptor* GroupBySupport_descriptor_ = NULL;
+const ::google::protobuf::EnumDescriptor* IdentifierCasing_descriptor_ = NULL;
+const ::google::protobuf::EnumDescriptor* NullCollation_descriptor_ = NULL;
+const ::google::protobuf::EnumDescriptor* OrderBySupport_descriptor_ = NULL;
+const ::google::protobuf::EnumDescriptor* OuterJoinSupport_descriptor_ = NULL;
+const ::google::protobuf::EnumDescriptor* SubQuerySupport_descriptor_ = NULL;
+const ::google::protobuf::EnumDescriptor* UnionSupport_descriptor_ = NULL;
 
 }  // namespace
 
@@ -599,7 +621,117 @@ void protobuf_AssignDesc_User_2eproto() {
       ::google::protobuf::DescriptorPool::generated_pool(),
       ::google::protobuf::MessageFactory::generated_factory(),
       sizeof(CreatePreparedStatementResp));
-  RunQuery_descriptor_ = file->message_type(26);
+  GetServerMetaReq_descriptor_ = file->message_type(26);
+  static const int GetServerMetaReq_offsets_[1] = {
+  };
+  GetServerMetaReq_reflection_ =
+    new ::google::protobuf::internal::GeneratedMessageReflection(
+      GetServerMetaReq_descriptor_,
+      GetServerMetaReq::default_instance_,
+      GetServerMetaReq_offsets_,
+      GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(GetServerMetaReq, _has_bits_[0]),
+      GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(GetServerMetaReq, _unknown_fields_),
+      -1,
+      ::google::protobuf::DescriptorPool::generated_pool(),
+      ::google::protobuf::MessageFactory::generated_factory(),
+      sizeof(GetServerMetaReq));
+  ConvertSupport_descriptor_ = file->message_type(27);
+  static const int ConvertSupport_offsets_[2] = {
+    GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(ConvertSupport, from_),
+    GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(ConvertSupport, to_),
+  };
+  ConvertSupport_reflection_ =
+    new ::google::protobuf::internal::GeneratedMessageReflection(
+      ConvertSupport_descriptor_,
+      ConvertSupport::default_instance_,
+      ConvertSupport_offsets_,
+      GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(ConvertSupport, _has_bits_[0]),
+      GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(ConvertSupport, _unknown_fields_),
+      -1,
+      ::google::protobuf::DescriptorPool::generated_pool(),
+      ::google::protobuf::MessageFactory::generated_factory(),
+      sizeof(ConvertSupport));
+  GetServerMetaResp_descriptor_ = file->message_type(28);
+  static const int GetServerMetaResp_offsets_[3] = {
+    GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(GetServerMetaResp, status_),
+    GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(GetServerMetaResp, server_meta_),
+    GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(GetServerMetaResp, error_),
+  };
+  GetServerMetaResp_reflection_ =
+    new ::google::protobuf::internal::GeneratedMessageReflection(
+      GetServerMetaResp_descriptor_,
+      GetServerMetaResp::default_instance_,
+      GetServerMetaResp_offsets_,
+      GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(GetServerMetaResp, _has_bits_[0]),
+      GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(GetServerMetaResp, _unknown_fields_),
+      -1,
+      ::google::protobuf::DescriptorPool::generated_pool(),
+      ::google::protobuf::MessageFactory::generated_factory(),
+      sizeof(GetServerMetaResp));
+  ServerMeta_descriptor_ = file->message_type(29);
+  static const int ServerMeta_offsets_[49] = {
+    GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(ServerMeta, all_tables_selectable_),
+    GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(ServerMeta, blob_included_in_max_row_size_),
+    GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(ServerMeta, catalog_at_start_),
+    GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(ServerMeta, catalog_separator_),
+    GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(ServerMeta, catalog_term_),
+    GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(ServerMeta, collate_support_),
+    GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(ServerMeta, column_aliasing_supported_),
+    GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(ServerMeta, convert_support_),
+    GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(ServerMeta, correlation_names_support_),
+    GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(ServerMeta, date_time_functions_),
+    GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(ServerMeta, date_time_literals_support_),
+    GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(ServerMeta, group_by_support_),
+    GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(ServerMeta, identifier_casing_),
+    GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(ServerMeta, identifier_quote_string_),
+    GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(ServerMeta, like_escape_clause_supported_),
+    GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(ServerMeta, max_binary_literal_length_),
+    GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(ServerMeta, max_catalog_name_length_),
+    GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(ServerMeta, max_char_literal_length_),
+    GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(ServerMeta, max_column_name_length_),
+    GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(ServerMeta, max_columns_in_group_by_),
+    GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(ServerMeta, max_columns_in_order_by_),
+    GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(ServerMeta, max_columns_in_select_),
+    GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(ServerMeta, max_cursor_name_length_),
+    GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(ServerMeta, max_logical_lob_size_),
+    GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(ServerMeta, max_row_size_),
+    GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(ServerMeta, max_schema_name_length_),
+    GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(ServerMeta, max_statement_length_),
+    GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(ServerMeta, max_statements_),
+    GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(ServerMeta, max_table_name_length_),
+    GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(ServerMeta, max_tables_in_select_),
+    GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(ServerMeta, max_user_name_length_),
+    GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(ServerMeta, null_collation_),
+    GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(ServerMeta, null_plus_non_null_equals_null_),
+    GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(ServerMeta, numeric_functions_),
+    GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(ServerMeta, order_by_support_),
+    GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(ServerMeta, outer_join_support_),
+    GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(ServerMeta, quoted_identifier_casing_),
+    GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(ServerMeta, read_only_),
+    GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(ServerMeta, schema_term_),
+    GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(ServerMeta, search_escape_string_),
+    GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(ServerMeta, select_for_update_supported_),
+    GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(ServerMeta, special_characters_),
+    GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(ServerMeta, sql_keywords_),
+    GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(ServerMeta, string_functions_),
+    GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(ServerMeta, subquery_support_),
+    GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(ServerMeta, system_functions_),
+    GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(ServerMeta, table_term_),
+    GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(ServerMeta, transaction_supported_),
+    GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(ServerMeta, union_support_),
+  };
+  ServerMeta_reflection_ =
+    new ::google::protobuf::internal::GeneratedMessageReflection(
+      ServerMeta_descriptor_,
+      ServerMeta::default_instance_,
+      ServerMeta_offsets_,
+      GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(ServerMeta, _has_bits_[0]),
+      GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(ServerMeta, _unknown_fields_),
+      -1,
+      ::google::protobuf::DescriptorPool::generated_pool(),
+      ::google::protobuf::MessageFactory::generated_factory(),
+      sizeof(ServerMeta));
+  RunQuery_descriptor_ = file->message_type(30);
   static const int RunQuery_offsets_[5] = {
     GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(RunQuery, results_mode_),
     GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(RunQuery, type_),
@@ -625,6 +757,16 @@ void protobuf_AssignDesc_User_2eproto() {
   RequestStatus_descriptor_ = file->enum_type(4);
   ColumnSearchability_descriptor_ = file->enum_type(5);
   ColumnUpdatability_descriptor_ = file->enum_type(6);
+  CollateSupport_descriptor_ = file->enum_type(7);
+  CorrelationNamesSupport_descriptor_ = file->enum_type(8);
+  DateTimeLiteralsSupport_descriptor_ = file->enum_type(9);
+  GroupBySupport_descriptor_ = file->enum_type(10);
+  IdentifierCasing_descriptor_ = file->enum_type(11);
+  NullCollation_descriptor_ = file->enum_type(12);
+  OrderBySupport_descriptor_ = file->enum_type(13);
+  OuterJoinSupport_descriptor_ = file->enum_type(14);
+  SubQuerySupport_descriptor_ = file->enum_type(15);
+  UnionSupport_descriptor_ = file->enum_type(16);
 }
 
 namespace {
@@ -690,6 +832,14 @@ void protobuf_RegisterTypes(const ::std::string&) {
   ::google::protobuf::MessageFactory::InternalRegisterGeneratedMessage(
     CreatePreparedStatementResp_descriptor_, &CreatePreparedStatementResp::default_instance());
   ::google::protobuf::MessageFactory::InternalRegisterGeneratedMessage(
+    GetServerMetaReq_descriptor_, &GetServerMetaReq::default_instance());
+  ::google::protobuf::MessageFactory::InternalRegisterGeneratedMessage(
+    ConvertSupport_descriptor_, &ConvertSupport::default_instance());
+  ::google::protobuf::MessageFactory::InternalRegisterGeneratedMessage(
+    GetServerMetaResp_descriptor_, &GetServerMetaResp::default_instance());
+  ::google::protobuf::MessageFactory::InternalRegisterGeneratedMessage(
+    ServerMeta_descriptor_, &ServerMeta::default_instance());
+  ::google::protobuf::MessageFactory::InternalRegisterGeneratedMessage(
     RunQuery_descriptor_, &RunQuery::default_instance());
 }
 
@@ -748,6 +898,14 @@ void protobuf_ShutdownFile_User_2eproto() {
   delete PreparedStatement_reflection_;
   delete CreatePreparedStatementResp::default_instance_;
   delete CreatePreparedStatementResp_reflection_;
+  delete GetServerMetaReq::default_instance_;
+  delete GetServerMetaReq_reflection_;
+  delete ConvertSupport::default_instance_;
+  delete ConvertSupport_reflection_;
+  delete GetServerMetaResp::default_instance_;
+  delete GetServerMetaResp_reflection_;
+  delete ServerMeta::default_instance_;
+  delete ServerMeta_reflection_;
   delete RunQuery::default_instance_;
   delete RunQuery_reflection_;
 }
@@ -759,148 +917,233 @@ void protobuf_AddDesc_User_2eproto() {
   GOOGLE_PROTOBUF_VERIFY_VERSION;
 
   ::exec::protobuf_AddDesc_SchemaDef_2eproto();
+  ::common::protobuf_AddDesc_Types_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\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\"\267\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\022\023\n\013b"
-    "uildNumber\030\007 \001(\r\022\030\n\020versionQualifier\030\010 \001"
-    "(\t\"\375\002\n\022UserToBitHandshake\022.\n\007channel\030\001 \001"
-    "(\0162\027.exec.shared.RpcChannel:\004USER\022\031\n\021sup"
-    "port_listening\030\002 \001(\010\022\023\n\013rpc_version\030\003 \001("
-    "\005\0221\n\013credentials\030\004 \001(\0132\034.exec.shared.Use"
-    "rCredentials\022-\n\nproperties\030\005 \001(\0132\031.exec."
-    "user.UserProperties\022$\n\025support_complex_t"
-    "ypes\030\006 \001(\010:\005false\022\036\n\017support_timeout\030\007 \001"
-    "(\010:\005false\0221\n\014client_infos\030\010 \001(\0132\033.exec.u"
-    "ser.RpcEndpointInfos\022,\n\014sasl_support\030\t \001"
-    "(\0162\026.exec.user.SaslSupport\"S\n\016RequestRes"
-    "ults\022&\n\010query_id\030\001 \001(\0132\024.exec.shared.Que"
-    "ryId\022\031\n\021maximum_responses\030\002 \001(\005\"g\n\025GetQu"
-    "eryPlanFragments\022\r\n\005query\030\001 \002(\t\022$\n\004type\030"
-    "\002 \001(\0162\026.exec.shared.QueryType\022\031\n\nsplit_p"
-    "lan\030\003 \001(\010:\005false\"\316\001\n\022QueryPlanFragments\022"
-    "3\n\006status\030\001 \002(\0162#.exec.shared.QueryResul"
-    "t.QueryState\022&\n\010query_id\030\002 \001(\0132\024.exec.sh"
-    "ared.QueryId\0221\n\tfragments\030\003 \003(\0132\036.exec.b"
-    "it.control.PlanFragment\022(\n\005error\030\004 \001(\0132\031"
-    ".exec.shared.DrillPBError\"\200\002\n\022BitToUserH"
-    "andshake\022\023\n\013rpc_version\030\002 \001(\005\022*\n\006status\030"
-    "\003 \001(\0162\032.exec.user.HandshakeStatus\022\017\n\007err"
-    "orId\030\004 \001(\t\022\024\n\014errorMessage\030\005 \001(\t\0221\n\014serv"
-    "er_infos\030\006 \001(\0132\033.exec.user.RpcEndpointIn"
-    "fos\022 \n\030authenticationMechanisms\030\007 \003(\t\022-\n"
-    "\021supported_methods\030\010 \003(\0162\022.exec.user.Rpc"
-    "Type\"-\n\nLikeFilter\022\017\n\007pattern\030\001 \001(\t\022\016\n\006e"
-    "scape\030\002 \001(\t\"D\n\016GetCatalogsReq\0222\n\023catalog"
-    "_name_filter\030\001 \001(\0132\025.exec.user.LikeFilte"
-    "r\"M\n\017CatalogMetadata\022\024\n\014catalog_name\030\001 \001"
-    "(\t\022\023\n\013description\030\002 \001(\t\022\017\n\007connect\030\003 \001(\t"
-    "\"\223\001\n\017GetCatalogsResp\022(\n\006status\030\001 \001(\0162\030.e"
-    "xec.user.RequestStatus\022,\n\010catalogs\030\002 \003(\013"
-    "2\032.exec.user.CatalogMetadata\022(\n\005error\030\003 "
-    "\001(\0132\031.exec.shared.DrillPBError\"v\n\rGetSch"
-    "emasReq\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\"i\n\016Schema"
-    "Metadata\022\024\n\014catalog_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\006"
-    "status\030\001 \001(\0162\030.exec.user.RequestStatus\022*"
-    "\n\007schemas\030\002 \003(\0132\031.exec.user.SchemaMetada"
-    "ta\022(\n\005error\030\003 \001(\0132\031.exec.shared.DrillPBE"
-    "rror\"\302\001\n\014GetTablesReq\0222\n\023catalog_name_fi"
-    "lter\030\001 \001(\0132\025.exec.user.LikeFilter\0221\n\022sch"
-    "ema_name_filter\030\002 \001(\0132\025.exec.user.LikeFi"
-    "lter\0220\n\021table_name_filter\030\003 \001(\0132\025.exec.u"
-    "ser.LikeFilter\022\031\n\021table_type_filter\030\004 \003("
-    "\t\"\\\n\rTableMetadata\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\014\n\004type\030\004 \001(\t\"\215\001\n\rGetTablesResp\022(\n\006sta"
-    "tus\030\001 \001(\0162\030.exec.user.RequestStatus\022(\n\006t"
-    "ables\030\002 \003(\0132\030.exec.user.TableMetadata\022(\n"
-    "\005error\030\003 \001(\0132\031.exec.shared.DrillPBError\""
-    "\333\001\n\rGetColumnsReq\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\022column_name_filter\030\004 \001(\0132\025"
-    ".exec.user.LikeFilter\"\251\003\n\016ColumnMetadata"
-    "\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\030\n\020ordinal_position\030\005 \001(\005\022\025\n\rdefaul"
-    "t_value\030\006 \001(\t\022\023\n\013is_nullable\030\007 \001(\010\022\021\n\tda"
-    "ta_type\030\010 \001(\t\022\027\n\017char_max_length\030\t \001(\005\022\031"
-    "\n\021char_octet_length\030\n \001(\005\022\031\n\021numeric_pre"
-    "cision\030\013 \001(\005\022\037\n\027numeric_precision_radix\030"
-    "\014 \001(\005\022\025\n\rnumeric_scale\030\r \001(\005\022\033\n\023date_tim"
-    "e_precision\030\016 \001(\005\022\025\n\rinterval_type\030\017 \001(\t"
-    "\022\032\n\022interval_precision\030\020 \001(\005\022\023\n\013column_s"
-    "ize\030\021 \001(\005\"\220\001\n\016GetColumnsResp\022(\n\006status\030\001"
-    " \001(\0162\030.exec.user.RequestStatus\022*\n\007column"
-    "s\030\002 \003(\0132\031.exec.user.ColumnMetadata\022(\n\005er"
-    "ror\030\003 \001(\0132\031.exec.shared.DrillPBError\"/\n\032"
-    "CreatePreparedStatementReq\022\021\n\tsql_query\030"
-    "\001 \001(\t\"\326\003\n\024ResultColumnMetadata\022\024\n\014catalo"
-    "g_name\030\001 \001(\t\022\023\n\013schema_name\030\002 \001(\t\022\022\n\ntab"
-    "le_name\030\003 \001(\t\022\023\n\013column_name\030\004 \001(\t\022\r\n\005la"
-    "bel\030\005 \001(\t\022\021\n\tdata_type\030\006 \001(\t\022\023\n\013is_nulla"
-    "ble\030\007 \001(\010\022\021\n\tprecision\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_aliased\030\014 \001(\010\0225\n\rsearchability\030\r"
-    " \001(\0162\036.exec.user.ColumnSearchability\0223\n\014"
-    "updatability\030\016 \001(\0162\035.exec.user.ColumnUpd"
-    "atability\022\026\n\016auto_increment\030\017 \001(\010\022\030\n\020cas"
-    "e_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\027PreparedStatementHandle\022\023\n\013server_info"
-    "\030\001 \001(\014\"\200\001\n\021PreparedStatement\0220\n\007columns\030"
-    "\001 \003(\0132\037.exec.user.ResultColumnMetadata\0229"
-    "\n\rserver_handle\030\002 \001(\0132\".exec.user.Prepar"
-    "edStatementHandle\"\253\001\n\033CreatePreparedStat"
-    "ementResp\022(\n\006status\030\001 \001(\0162\030.exec.user.Re"
-    "questStatus\0228\n\022prepared_statement\030\002 \001(\0132"
-    "\034.exec.user.PreparedStatement\022(\n\005error\030\003"
-    " \001(\0132\031.exec.shared.DrillPBError\"\353\001\n\010RunQ"
-    "uery\0221\n\014results_mode\030\001 \001(\0162\033.exec.user.Q"
-    "ueryResultsMode\022$\n\004type\030\002 \001(\0162\026.exec.sha"
-    "red.QueryType\022\014\n\004plan\030\003 \001(\t\0221\n\tfragments"
-    "\030\004 \003(\0132\036.exec.bit.control.PlanFragment\022E"
-    "\n\031prepared_statement_handle\030\005 \001(\0132\".exec"
-    ".user.PreparedStatementHandle*\332\003\n\007RpcTyp"
-    "e\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\017REQUE"
-    "ST_RESULTS\020\005\022\027\n\023RESUME_PAUSED_QUERY\020\013\022\034\n"
-    "\030GET_QUERY_PLAN_FRAGMENTS\020\014\022\020\n\014GET_CATAL"
-    "OGS\020\016\022\017\n\013GET_SCHEMAS\020\017\022\016\n\nGET_TABLES\020\020\022\017"
-    "\n\013GET_COLUMNS\020\021\022\035\n\031CREATE_PREPARED_STATE"
-    "MENT\020\026\022\016\n\nQUERY_DATA\020\006\022\020\n\014QUERY_HANDLE\020\007"
+    "\032\013Types.proto\032\023UserBitShared.proto\032\rBitD"
+    "ata.proto\032\020BitControl.proto\032\025ExecutionPr"
+    "otos.proto\"&\n\010Property\022\013\n\003key\030\001 \002(\t\022\r\n\005v"
+    "alue\030\002 \002(\t\"9\n\016UserProperties\022\'\n\nproperti"
+    "es\030\001 \003(\0132\023.exec.user.Property\"\267\001\n\020RpcEnd"
+    "pointInfos\022\014\n\004name\030\001 \001(\t\022\017\n\007version\030\002 \001("
+    "\t\022\024\n\014majorVersion\030\003 \001(\r\022\024\n\014minorVersion\030"
+    "\004 \001(\r\022\024\n\014patchVersion\030\005 \001(\r\022\023\n\013applicati"
+    "on\030\006 \001(\t\022\023\n\013buildNumber\030\007 \001(\r\022\030\n\020version"
+    "Qualifier\030\010 \001(\t\"\375\002\n\022UserToBitHandshake\022."
+    "\n\007channel\030\001 \001(\0162\027.exec.shared.RpcChannel"
+    ":\004USER\022\031\n\021support_listening\030\002 \001(\010\022\023\n\013rpc"
+    "_version\030\003 \001(\005\0221\n\013credentials\030\004 \001(\0132\034.ex"
+    "ec.shared.UserCredentials\022-\n\nproperties\030"
+    "\005 \001(\0132\031.exec.user.UserProperties\022$\n\025supp"
+    "ort_complex_types\030\006 \001(\010:\005false\022\036\n\017suppor"
+    "t_timeout\030\007 \001(\010:\005false\0221\n\014client_infos\030\010"
+    " \001(\0132\033.exec.user.RpcEndpointInfos\022,\n\014sas"
+    "l_support\030\t \001(\0162\026.exec.user.SaslSupport\""
+    "S\n\016RequestResults\022&\n\010query_id\030\001 \001(\0132\024.ex"
+    "ec.shared.QueryId\022\031\n\021maximum_responses\030\002"
+    " \001(\005\"g\n\025GetQueryPlanFragments\022\r\n\005query\030\001"
+    " \002(\t\022$\n\004type\030\002 \001(\0162\026.exec.shared.QueryTy"
+    "pe\022\031\n\nsplit_plan\030\003 \001(\010:\005false\"\316\001\n\022QueryP"
+    "lanFragments\0223\n\006status\030\001 \002(\0162#.exec.shar"
+    "ed.QueryResult.QueryState\022&\n\010query_id\030\002 "
+    "\001(\0132\024.exec.shared.QueryId\0221\n\tfragments\030\003"
+    " \003(\0132\036.exec.bit.control.PlanFragment\022(\n\005"
+    "error\030\004 \001(\0132\031.exec.shared.DrillPBError\"\200"
+    "\002\n\022BitToUserHandshake\022\023\n\013rpc_version\030\002 \001"
+    "(\005\022*\n\006status\030\003 \001(\0162\032.exec.user.Handshake"
+    "Status\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\022 \n\030authenticationMechan"
+    "isms\030\007 \003(\t\022-\n\021supported_methods\030\010 \003(\0162\022."
+    "exec.user.RpcType\"-\n\nLikeFilter\022\017\n\007patte"
+    "rn\030\001 \001(\t\022\016\n\006escape\030\002 \001(\t\"D\n\016GetCatalogsR"
+    "eq\0222\n\023catalog_name_filter\030\001 \001(\0132\025.exec.u"
+    "ser.LikeFilter\"M\n\017CatalogMetadata\022\024\n\014cat"
+    "alog_name\030\001 \001(\t\022\023\n\013description\030\002 \001(\t\022\017\n\007"
+    "connect\030\003 \001(\t\"\223\001\n\017GetCatalogsResp\022(\n\006sta"
+    "tus\030\001 \001(\0162\030.exec.user.RequestStatus\022,\n\010c"
+    "atalogs\030\002 \003(\0132\032.exec.user.CatalogMetadat"
+    "a\022(\n\005error\030\003 \001(\0132\031.exec.shared.DrillPBEr"
+    "ror\"v\n\rGetSchemasReq\0222\n\023catalog_name_fil"
+    "ter\030\001 \001(\0132\025.exec.user.LikeFilter\0221\n\022sche"
+    "ma_name_filter\030\002 \001(\0132\025.exec.user.LikeFil"
+    "ter\"i\n\016SchemaMetadata\022\024\n\014catalog_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\016GetSc"
+    "hemasResp\022(\n\006status\030\001 \001(\0162\030.exec.user.Re"
+    "questStatus\022*\n\007schemas\030\002 \003(\0132\031.exec.user"
+    ".SchemaMetadata\022(\n\005error\030\003 \001(\0132\031.exec.sh"
+    "ared.DrillPBError\"\302\001\n\014GetTablesReq\0222\n\023ca"
+    "talog_name_filter\030\001 \001(\0132\025.exec.user.Like"
+    "Filter\0221\n\022schema_name_filter\030\002 \001(\0132\025.exe"
+    "c.user.LikeFilter\0220\n\021table_name_filter\030\003"
+    " \001(\0132\025.exec.user.LikeFilter\022\031\n\021table_typ"
+    "e_filter\030\004 \003(\t\"\\\n\rTableMetadata\022\024\n\014catal"
+    "og_name\030\001 \001(\t\022\023\n\013schema_name\030\002 \001(\t\022\022\n\nta"
+    "ble_name\030\003 \001(\t\022\014\n\004type\030\004 \001(\t\"\215\001\n\rGetTabl"
+    "esResp\022(\n\006status\030\001 \001(\0162\030.exec.user.Reque"
+    "stStatus\022(\n\006tables\030\002 \003(\0132\030.exec.user.Tab"
+    "leMetadata\022(\n\005error\030\003 \001(\0132\031.exec.shared."
+    "DrillPBError\"\333\001\n\rGetColumnsReq\0222\n\023catalo"
+    "g_name_filter\030\001 \001(\0132\025.exec.user.LikeFilt"
+    "er\0221\n\022schema_name_filter\030\002 \001(\0132\025.exec.us"
+    "er.LikeFilter\0220\n\021table_name_filter\030\003 \001(\013"
+    "2\025.exec.user.LikeFilter\0221\n\022column_name_f"
+    "ilter\030\004 \001(\0132\025.exec.user.LikeFilter\"\251\003\n\016C"
+    "olumnMetadata\022\024\n\014catalog_name\030\001 \001(\t\022\023\n\013s"
+    "chema_name\030\002 \001(\t\022\022\n\ntable_name\030\003 \001(\t\022\023\n\013"
+    "column_name\030\004 \001(\t\022\030\n\020ordinal_position\030\005 "
+    "\001(\005\022\025\n\rdefault_value\030\006 \001(\t\022\023\n\013is_nullabl"
+    "e\030\007 \001(\010\022\021\n\tdata_type\030\010 \001(\t\022\027\n\017char_max_l"
+    "ength\030\t \001(\005\022\031\n\021char_octet_length\030\n \001(\005\022\031"
+    "\n\021numeric_precision\030\013 \001(\005\022\037\n\027numeric_pre"
+    "cision_radix\030\014 \001(\005\022\025\n\rnumeric_scale\030\r \001("
+    "\005\022\033\n\023date_time_precision\030\016 \001(\005\022\025\n\rinterv"
+    "al_type\030\017 \001(\t\022\032\n\022interval_precision\030\020 \001("
+    "\005\022\023\n\013column_size\030\021 \001(\005\"\220\001\n\016GetColumnsRes"
+    "p\022(\n\006status\030\001 \001(\0162\030.exec.user.RequestSta"
+    "tus\022*\n\007columns\030\002 \003(\0132\031.exec.user.ColumnM"
+    "etadata\022(\n\005error\030\003 \001(\0132\031.exec.shared.Dri"
+    "llPBError\"/\n\032CreatePreparedStatementReq\022"
+    "\021\n\tsql_query\030\001 \001(\t\"\326\003\n\024ResultColumnMetad"
+    "ata\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_nam"
+    "e\030\004 \001(\t\022\r\n\005label\030\005 \001(\t\022\021\n\tdata_type\030\006 \001("
+    "\t\022\023\n\013is_nullable\030\007 \001(\010\022\021\n\tprecision\030\010 \001("
+    "\005\022\r\n\005scale\030\t \001(\005\022\016\n\006signed\030\n \001(\010\022\024\n\014disp"
+    "lay_size\030\013 \001(\005\022\022\n\nis_aliased\030\014 \001(\010\0225\n\rse"
+    "archability\030\r \001(\0162\036.exec.user.ColumnSear"
+    "chability\0223\n\014updatability\030\016 \001(\0162\035.exec.u"
+    "ser.ColumnUpdatability\022\026\n\016auto_increment"
+    "\030\017 \001(\010\022\030\n\020case_sensitivity\030\020 \001(\010\022\020\n\010sort"
+    "able\030\021 \001(\010\022\022\n\nclass_name\030\022 \001(\t\022\023\n\013is_cur"
+    "rency\030\024 \001(\010\".\n\027PreparedStatementHandle\022\023"
+    "\n\013server_info\030\001 \001(\014\"\200\001\n\021PreparedStatemen"
+    "t\0220\n\007columns\030\001 \003(\0132\037.exec.user.ResultCol"
+    "umnMetadata\0229\n\rserver_handle\030\002 \001(\0132\".exe"
+    "c.user.PreparedStatementHandle\"\253\001\n\033Creat"
+    "ePreparedStatementResp\022(\n\006status\030\001 \001(\0162\030"
+    ".exec.user.RequestStatus\0228\n\022prepared_sta"
+    "tement\030\002 \001(\0132\034.exec.user.PreparedStateme"
+    "nt\022(\n\005error\030\003 \001(\0132\031.exec.shared.DrillPBE"
+    "rror\"\022\n\020GetServerMetaReq\"P\n\016ConvertSuppo"
+    "rt\022\037\n\004from\030\001 \002(\0162\021.common.MinorType\022\035\n\002t"
+    "o\030\002 \002(\0162\021.common.MinorType\"\223\001\n\021GetServer"
+    "MetaResp\022(\n\006status\030\001 \001(\0162\030.exec.user.Req"
+    "uestStatus\022*\n\013server_meta\030\002 \001(\0132\025.exec.u"
+    "ser.ServerMeta\022(\n\005error\030\003 \001(\0132\031.exec.sha"
+    "red.DrillPBError\"\377\r\n\nServerMeta\022\035\n\025all_t"
+    "ables_selectable\030\001 \001(\010\022%\n\035blob_included_"
+    "in_max_row_size\030\002 \001(\010\022\030\n\020catalog_at_star"
+    "t\030\003 \001(\010\022\031\n\021catalog_separator\030\004 \001(\t\022\024\n\014ca"
+    "talog_term\030\005 \001(\t\0222\n\017collate_support\030\006 \003("
+    "\0162\031.exec.user.CollateSupport\022!\n\031column_a"
+    "liasing_supported\030\007 \001(\010\0222\n\017convert_suppo"
+    "rt\030\010 \003(\0132\031.exec.user.ConvertSupport\022E\n\031c"
+    "orrelation_names_support\030\t \001(\0162\".exec.us"
+    "er.CorrelationNamesSupport\022\033\n\023date_time_"
+    "functions\030\n \003(\t\022F\n\032date_time_literals_su"
+    "pport\030\013 \003(\0162\".exec.user.DateTimeLiterals"
+    "Support\0223\n\020group_by_support\030\014 \001(\0162\031.exec"
+    ".user.GroupBySupport\0226\n\021identifier_casin"
+    "g\030\r \001(\0162\033.exec.user.IdentifierCasing\022\037\n\027"
+    "identifier_quote_string\030\016 \001(\t\022$\n\034like_es"
+    "cape_clause_supported\030\017 \001(\010\022!\n\031max_binar"
+    "y_literal_length\030\020 \001(\r\022\037\n\027max_catalog_na"
+    "me_length\030\021 \001(\r\022\037\n\027max_char_literal_leng"
+    "th\030\022 \001(\r\022\036\n\026max_column_name_length\030\023 \001(\r"
+    "\022\037\n\027max_columns_in_group_by\030\024 \001(\r\022\037\n\027max"
+    "_columns_in_order_by\030\025 \001(\r\022\035\n\025max_column"
+    "s_in_select\030\026 \001(\r\022\036\n\026max_cursor_name_len"
+    "gth\030\027 \001(\r\022\034\n\024max_logical_lob_size\030\030 \001(\r\022"
+    "\024\n\014max_row_size\030\031 \001(\r\022\036\n\026max_schema_name"
+    "_length\030\032 \001(\r\022\034\n\024max_statement_length\030\033 "
+    "\001(\r\022\026\n\016max_statements\030\034 \001(\r\022\035\n\025max_table"
+    "_name_length\030\035 \001(\r\022\034\n\024max_tables_in_sele"
+    "ct\030\036 \001(\r\022\034\n\024max_user_name_length\030\037 \001(\r\0220"
+    "\n\016null_collation\030  \001(\0162\030.exec.user.NullC"
+    "ollation\022&\n\036null_plus_non_null_equals_nu"
+    "ll\030! \001(\010\022\031\n\021numeric_functions\030\" \003(\t\0223\n\020o"
+    "rder_by_support\030# \003(\0162\031.exec.user.OrderB"
+    "ySupport\0227\n\022outer_join_support\030$ \003(\0162\033.e"
+    "xec.user.OuterJoinSupport\022=\n\030quoted_iden"
+    "tifier_casing\030% \001(\0162\033.exec.user.Identifi"
+    "erCasing\022\021\n\tread_only\030& \001(\010\022\023\n\013schema_te"
+    "rm\030\' \001(\t\022\034\n\024search_escape_string\030( \001(\t\022#"
+    "\n\033select_for_update_supported\030) \001(\010\022\032\n\022s"
+    "pecial_characters\030* \001(\t\022\024\n\014sql_keywords\030"
+    "+ \003(\t\022\030\n\020string_functions\030, \003(\t\0224\n\020subqu"
+    "ery_support\030- \003(\0162\032.exec.user.SubQuerySu"
+    "pport\022\030\n\020system_functions\030. \003(\t\022\022\n\ntable"
+    "_term\030/ \001(\t\022\035\n\025transaction_supported\0300 \001"
+    "(\010\022.\n\runion_support\0301 \003(\0162\027.exec.user.Un"
+    "ionSupport\"\353\001\n\010RunQuery\0221\n\014results_mode\030"
+    "\001 \001(\0162\033.exec.user.QueryResultsMode\022$\n\004ty"
+    "pe\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.con"
+    "trol.PlanFragment\022E\n\031prepared_statement_"
+    "handle\030\005 \001(\0132\".exec.user.PreparedStateme"
+    "ntHandle*\320\003\n\007RpcType\022\r\n\tHANDSHAKE\020\000\022\007\n\003A"
+    "CK\020\001\022\013\n\007GOODBYE\020\002\022\r\n\tRUN_QUERY\020\003\022\020\n\014CANC"
+    "EL_QUERY\020\004\022\023\n\017REQUEST_RESULTS\020\005\022\027\n\023RESUM"
+    "E_PAUSED_QUERY\020\013\022\034\n\030GET_QUERY_PLAN_FRAGM"
+    "ENTS\020\014\022\020\n\014GET_CATALOGS\020\016\022\017\n\013GET_SCHEMAS\020"
+    "\017\022\016\n\nGET_TABLES\020\020\022\017\n\013GET_COLUMNS\020\021\022\035\n\031CR"
+    "EATE_PREPARED_STATEMENT\020\026\022\023\n\017GET_SERVER_"
+    "META\020\010\022\016\n\nQUERY_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_STATEMENT\020\027\022\026\n\022REQ_META_FUNCT"
-    "IONS\020\010\022\026\n\022RESP_FUNCTION_LIST\020\t\022\020\n\014QUERY_"
-    "RESULT\020\n\022\020\n\014SASL_MESSAGE\020\030*6\n\013SaslSuppor"
-    "t\022\030\n\024UNKNOWN_SASL_SUPPORT\020\000\022\r\n\tSASL_AUTH"
-    "\020\001*#\n\020QueryResultsMode\022\017\n\013STREAM_FULL\020\001*"
-    "q\n\017HandshakeStatus\022\013\n\007SUCCESS\020\001\022\030\n\024RPC_V"
-    "ERSION_MISMATCH\020\002\022\017\n\013AUTH_FAILED\020\003\022\023\n\017UN"
-    "KNOWN_FAILURE\020\004\022\021\n\rAUTH_REQUIRED\020\005*D\n\rRe"
-    "questStatus\022\022\n\016UNKNOWN_STATUS\020\000\022\006\n\002OK\020\001\022"
-    "\n\n\006FAILED\020\002\022\013\n\007TIMEOUT\020\003*Y\n\023ColumnSearch"
-    "ability\022\031\n\025UNKNOWN_SEARCHABILITY\020\000\022\010\n\004NO"
-    "NE\020\001\022\010\n\004CHAR\020\002\022\n\n\006NUMBER\020\003\022\007\n\003ALL\020\004*K\n\022C"
-    "olumnUpdatability\022\030\n\024UNKNOWN_UPDATABILIT"
-    "Y\020\000\022\r\n\tREAD_ONLY\020\001\022\014\n\010WRITABLE\020\002B+\n\033org."
-    "apache.drill.exec.protoB\nUserProtosH\001", 5477);
+    "\n\022PREPARED_STATEMENT\020\027\022\017\n\013SERVER_META\020\t\022"
+    "\020\n\014QUERY_RESULT\020\n\022\020\n\014SASL_MESSAGE\020\030*6\n\013S"
+    "aslSupport\022\030\n\024UNKNOWN_SASL_SUPPORT\020\000\022\r\n\t"
+    "SASL_AUTH\020\001*#\n\020QueryResultsMode\022\017\n\013STREA"
+    "M_FULL\020\001*q\n\017HandshakeStatus\022\013\n\007SUCCESS\020\001"
+    "\022\030\n\024RPC_VERSION_MISMATCH\020\002\022\017\n\013AUTH_FAILE"
+    "D\020\003\022\023\n\017UNKNOWN_FAILURE\020\004\022\021\n\rAUTH_REQUIRE"
+    "D\020\005*D\n\rRequestStatus\022\022\n\016UNKNOWN_STATUS\020\000"
+    "\022\006\n\002OK\020\001\022\n\n\006FAILED\020\002\022\013\n\007TIMEOUT\020\003*Y\n\023Col"
+    "umnSearchability\022\031\n\025UNKNOWN_SEARCHABILIT"
+    "Y\020\000\022\010\n\004NONE\020\001\022\010\n\004CHAR\020\002\022\n\n\006NUMBER\020\003\022\007\n\003A"
+    "LL\020\004*K\n\022ColumnUpdatability\022\030\n\024UNKNOWN_UP"
+    "DATABILITY\020\000\022\r\n\tREAD_ONLY\020\001\022\014\n\010WRITABLE\020"
+    "\002*1\n\016CollateSupport\022\016\n\nCS_UNKNOWN\020\000\022\017\n\013C"
+    "S_GROUP_BY\020\001*J\n\027CorrelationNamesSupport\022"
+    "\013\n\007CN_NONE\020\001\022\026\n\022CN_DIFFERENT_NAMES\020\002\022\n\n\006"
+    "CN_ANY\020\003*\271\003\n\027DateTimeLiteralsSupport\022\016\n\n"
+    "DL_UNKNOWN\020\000\022\013\n\007DL_DATE\020\001\022\013\n\007DL_TIME\020\002\022\020"
+    "\n\014DL_TIMESTAMP\020\003\022\024\n\020DL_INTERVAL_YEAR\020\004\022\025"
+    "\n\021DL_INTERVAL_MONTH\020\005\022\023\n\017DL_INTERVAL_DAY"
+    "\020\006\022\024\n\020DL_INTERVAL_HOUR\020\007\022\026\n\022DL_INTERVAL_"
+    "MINUTE\020\010\022\026\n\022DL_INTERVAL_SECOND\020\t\022\035\n\031DL_I"
+    "NTERVAL_YEAR_TO_MONTH\020\n\022\033\n\027DL_INTERVAL_D"
+    "AY_TO_HOUR\020\013\022\035\n\031DL_INTERVAL_DAY_TO_MINUT"
+    "E\020\014\022\035\n\031DL_INTERVAL_DAY_TO_SECOND\020\r\022\036\n\032DL"
+    "_INTERVAL_HOUR_TO_MINUTE\020\016\022\036\n\032DL_INTERVA"
+    "L_HOUR_TO_SECOND\020\017\022 \n\034DL_INTERVAL_MINUTE"
+    "_TO_SECOND\020\020*Y\n\016GroupBySupport\022\013\n\007GB_NON"
+    "E\020\001\022\022\n\016GB_SELECT_ONLY\020\002\022\024\n\020GB_BEYOND_SEL"
+    "ECT\020\003\022\020\n\014GB_UNRELATED\020\004*x\n\020IdentifierCas"
+    "ing\022\016\n\nIC_UNKNOWN\020\000\022\023\n\017IC_STORES_LOWER\020\001"
+    "\022\023\n\017IC_STORES_MIXED\020\002\022\023\n\017IC_STORES_UPPER"
+    "\020\003\022\025\n\021IC_SUPPORTS_MIXED\020\004*X\n\rNullCollati"
+    "on\022\016\n\nNC_UNKNOWN\020\000\022\017\n\013NC_AT_START\020\001\022\r\n\tN"
+    "C_AT_END\020\002\022\013\n\007NC_HIGH\020\003\022\n\n\006NC_LOW\020\004*E\n\016O"
+    "rderBySupport\022\016\n\nOB_UNKNOWN\020\000\022\020\n\014OB_UNRE"
+    "LATED\020\001\022\021\n\rOB_EXPRESSION\020\002*\226\001\n\020OuterJoin"
+    "Support\022\016\n\nOJ_UNKNOWN\020\000\022\013\n\007OJ_LEFT\020\001\022\014\n\010"
+    "OJ_RIGHT\020\002\022\013\n\007OJ_FULL\020\003\022\r\n\tOJ_NESTED\020\004\022\022"
+    "\n\016OJ_NOT_ORDERED\020\005\022\014\n\010OJ_INNER\020\006\022\031\n\025OJ_A"
+    "LL_COMPARISON_OPS\020\007*\204\001\n\017SubQuerySupport\022"
+    "\016\n\nSQ_UNKNOWN\020\000\022\021\n\rSQ_CORRELATED\020\001\022\024\n\020SQ"
+    "_IN_COMPARISON\020\002\022\020\n\014SQ_IN_EXISTS\020\003\022\020\n\014SQ"
+    "_IN_INSERT\020\004\022\024\n\020SQ_IN_QUANTIFIED\020\005*;\n\014Un"
+    "ionSupport\022\r\n\tU_UNKNOWN\020\000\022\013\n\007U_UNION\020\001\022\017"
+    "\n\013U_UNION_ALL\020\002B+\n\033org.apache.drill.exec"
+    ".protoB\nUserProtosH\001", 8820);
   ::google::protobuf::MessageFactory::InternalRegisterGeneratedFile(
     "User.proto", &protobuf_RegisterTypes);
   Property::default_instance_ = new Property();
@@ -929,6 +1172,10 @@ void protobuf_AddDesc_User_2eproto() {
   PreparedStatementHandle::default_instance_ = new PreparedStatementHandle();
   PreparedStatement::default_instance_ = new PreparedStatement();
   CreatePreparedStatementResp::default_instance_ = new CreatePreparedStatementResp();
+  GetServerMetaReq::default_instance_ = new GetServerMetaReq();
+  ConvertSupport::default_instance_ = new ConvertSupport();
+  GetServerMetaResp::default_instance_ = new GetServerMetaResp();
+  ServerMeta::default_instance_ = new ServerMeta();
   RunQuery::default_instance_ = new RunQuery();
   Property::default_instance_->InitAsDefaultInstance();
   UserProperties::default_instance_->InitAsDefaultInstance();
@@ -956,6 +1203,10 @@ void protobuf_AddDesc_User_2eproto() {
   PreparedStatementHandle::default_instance_->InitAsDefaultInstance();
   PreparedStatement::default_instance_->InitAsDefaultInstance();
   CreatePreparedStatementResp::default_instance_->InitAsDefaultInstance();
+  GetServerMetaReq::default_instance_->InitAsDefaultInstance();
+  ConvertSupport::default_instance_->InitAsDefaultInstance();
+  GetServerMetaResp::default_instance_->InitAsDefaultInstance();
+  ServerMeta::default_instance_->InitAsDefaultInstance();
   RunQuery::default_instance_->InitAsDefaultInstance();
   ::google::protobuf::internal::OnShutdown(&protobuf_ShutdownFile_User_2eproto);
 }
@@ -1095,6 +1346,182 @@ bool ColumnUpdatability_IsValid(int value) {
   }
 }
 
+const ::google::protobuf::EnumDescriptor* CollateSupport_descriptor() {
+  protobuf_AssignDescriptorsOnce();
+  return CollateSupport_descriptor_;
+}
+bool CollateSupport_IsValid(int value) {
+  switch(value) {
+    case 0:
+    case 1:
+      return true;
+    default:
+      return false;
+  }
+}
+
+const ::google::protobuf::EnumDescriptor* CorrelationNamesSupport_descriptor() {
+  protobuf_AssignDescriptorsOnce();
+  return CorrelationNamesSupport_descriptor_;
+}
+bool CorrelationNamesSupport_IsValid(int value) {
+  switch(value) {
+    case 1:
+    case 2:
+    case 3:
+      return true;
+    default:
+      return false;
+  }
+}
+
+const ::google::protobuf::EnumDescriptor* DateTimeLiteralsSupport_descriptor() {
+  protobuf_AssignDescriptorsOnce();
+  return DateTimeLiteralsSupport_descriptor_;
+}
+bool DateTimeLiteralsSupport_IsValid(int value) {
+  switch(value) {
+    case 0:
+    case 1:
+    case 2:
+    case 3:
+    case 4:
+    case 5:
+    case 6:
+    case 7:
+    case 8:
+    case 9:
+    case 10:
+    case 11:
+    case 12:
+    case 13:
+    case 14:
+    case 15:
+    case 16:
+      return true;
+    default:
+      return false;
+  }
+}
+
+const ::google::protobuf::EnumDescriptor* GroupBySupport_descriptor() {
+  protobuf_AssignDescriptorsOnce();
+  return GroupBySupport_descriptor_;
+}
+bool GroupBySupport_IsValid(int value) {
+  switch(value) {
+    case 1:
+    case 2:
+    case 3:
+    case 4:
+      return true;
+    default:
+      return false;
+  }
+}
+
+const ::google::protobuf::EnumDescriptor* IdentifierCasing_descriptor() {
+  protobuf_AssignDescriptorsOnce();
+  return IdentifierCasing_descriptor_;
+}
+bool IdentifierCasing_IsValid(int value) {
+  switch(value) {
+    case 0:
+    case 1:
+    case 2:
+    case 3:
+    case 4:
+      return true;
+    default:
+      return false;
+  }
+}
+
+const ::google::protobuf::EnumDescriptor* NullCollation_descriptor() {
+  protobuf_AssignDescriptorsOnce();
+  return NullCollation_descriptor_;
+}
+bool NullCollation_IsValid(int value) {
+  switch(value) {
+    case 0:
+    case 1:
+    case 2:
+    case 3:
+    case 4:
+      return true;
+    default:
+      return false;
+  }
+}
+
+const ::google::protobuf::EnumDescriptor* OrderBySupport_descriptor() {
+  protobuf_AssignDescriptorsOnce();
+  return OrderBySupport_descriptor_;
+}
+bool OrderBySupport_IsValid(int value) {
+  switch(value) {
+    case 0:
+    case 1:
+    case 2:
+      return true;
+    default:
+      return false;
+  }
+}
+
+const ::google::protobuf::EnumDescriptor* OuterJoinSupport_descriptor() {
+  protobuf_AssignDescriptorsOnce();
+  return OuterJoinSupport_descriptor_;
+}
+bool OuterJoinSupport_IsValid(int value) {
+  switch(value) {
+    case 0:
+    case 1:
+    case 2:
+    case 3:
+    case 4:
+    case 5:
+    case 6:
+    case 7:
+      return true;
+    default:
+      return false;
+  }
+}
+
+const ::google::protobuf::EnumDescriptor* SubQuerySupport_descriptor() {
+  protobuf_AssignDescriptorsOnce();
+  return SubQuerySupport_descriptor_;
+}
+bool SubQuerySupport_IsValid(int value) {
+  switch(value) {
+    case 0:
+    case 1:
+    case 2:
+    case 3:
+    case 4:
+    case 5:
+      return true;
+    default:
+      return false;
+  }
+}
+
+const ::google::protobuf::EnumDescriptor* UnionSupport_descriptor() {
+  protobuf_AssignDescriptorsOnce();
+  return UnionSupport_descriptor_;
+}
+bool UnionSupport_IsValid(int value) {
+  switch(value) {
+    case 0:
+    case 1:
+    case 2:
+      return true;
+    default:
+      return false;
+  }
+}
+
 
 // ===================================================================
 
@@ -10995,6 +11422,3153 @@ void CreatePreparedStatementResp::Swap(CreatePreparedStatementResp* other) {
 // ===================================================================
 
 #ifndef _MSC_VER
+#endif  // !_MSC_VER
+
+GetServerMetaReq::GetServerMetaReq()
+  : ::google::protobuf::Message() {
+  SharedCtor();
+}
+
+void GetServerMetaReq::InitAsDefaultInstance() {
+}
+
+GetServerMetaReq::GetServerMetaReq(const GetServerMetaReq& from)
+  : ::google::protobuf::Message() {
+  SharedCtor();
+  MergeFrom(from);
+}
+
+void GetServerMetaReq::SharedCtor() {
+  _cached_size_ = 0;
+  ::memset(_has_bits_, 0, sizeof(_has_bits_));
+}
+
+GetServerMetaReq::~GetServerMetaReq() {
+  SharedDtor();
+}
+
+void GetServerMetaReq::SharedDtor() {
+  if (this != default_instance_) {
+  }
+}
+
+void GetServerMetaReq::SetCachedSize(int size) const {
+  GOOGLE_SAFE_CONCURRENT_WRITES_BEGIN();
+  _cached_size_ = size;
+  GOOGLE_SAFE_CONCURRENT_WRITES_END();
+}
+const ::google::protobuf::Descriptor* GetServerMetaReq::descriptor() {
+  protobuf_AssignDescriptorsOnce();
+  return GetServerMetaReq_descriptor_;
+}
+
+const GetServerMetaReq& GetServerMetaReq::default_instance() {
+  if (default_instance_ == NULL) protobuf_AddDesc_User_2eproto();
+  return *default_instance_;
+}
+
+GetServerMetaReq* GetServerMetaReq::default_instance_ = NULL;
+
+GetServerMetaReq* GetServerMetaReq::New() const {
+  return new GetServerMetaReq;
+}
+
+void GetServerMetaReq::Clear() {
+  ::memset(_has_bits_, 0, sizeof(_has_bits_));
+  mutable_unknown_fields()->Clear();
+}
+
+bool GetServerMetaReq::MergePartialFromCodedStream(
+    ::google::protobuf::io::CodedInputStream* input) {
+#define DO_(EXPRESSION) if (!(EXPRESSION)) return false
+  ::google::protobuf::uint32 tag;
+  while ((tag = input->ReadTag()) != 0) {
+    if (::google::protobuf::internal::WireFormatLite::GetTagWireType(tag) ==
+        ::google::protobuf::internal::WireFormatLite::WIRETYPE_END_GROUP) {
+      return true;
+    }
+    DO_(::google::protobuf::internal::WireFormat::SkipField(
+          input, tag, mutable_unknown_fields()));
+  }
+  return true;
+#undef DO_
+}
+
+void GetServerMetaReq::SerializeWithCachedSizes(
+    ::google::protobuf::io::CodedOutputStream* output) const {
+  if (!unknown_fields().empty()) {
+    ::google::protobuf::internal::WireFormat::SerializeUnknownFields(
+        unknown_fields(), output);
+  }
+}
+
+::google::protobuf::uint8* GetServerMetaReq::SerializeWithCachedSizesToArray(
+    ::google::protobuf::uint8* target) const {
+  if (!unknown_fields().empty()) {
+    target = ::google::protobuf::internal::WireFormat::SerializeUnknownFieldsToArray(
+        unknown_fields(), target);
+  }
+  return target;
+}
+
+int GetServerMetaReq::ByteSize() const {
+  int total_size = 0;
+
+  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();
+  return total_size;
+}
+
+void GetServerMetaReq::MergeFrom(const ::google::protobuf::Message& from) {
+  GOOGLE_CHECK_NE(&from, this);
+  const GetServerMetaReq* source =
+    ::google::protobuf::internal::dynamic_cast_if_available<const GetServerMetaReq*>(
+      &from);
+  if (source == NULL) {
+    ::google::protobuf::internal::ReflectionOps::Merge(from, this);
+  } else {
+    MergeFrom(*source);
+  }
+}
+
+void GetServerMetaReq::MergeFrom(const GetServerMetaReq& from) {
+  GOOGLE_CHECK_NE(&from, this);
+  mutable_unknown_fields()->MergeFrom(from.unknown_fields());
+}
+
+void GetServerMetaReq::CopyFrom(const ::google::protobuf::Message& from) {
+  if (&from == this) return;
+  Clear();
+  MergeFrom(from);
+}
+
+void GetServerMetaReq::CopyFrom(const GetServerMetaReq& from) {
+  if (&from == this) return;
+  Clear();
+  MergeFrom(from);
+}
+
+bool GetServerMetaReq::IsInitialized() const {
+
+  return true;
+}
+
+void GetServerMetaReq::Swap(GetServerMetaReq* other) {
+  if (other != this) {
+    _unknown_fields_.Swap(&other->_unknown_fields_);
+    std::swap(_cached_size_, other->_cached_size_);
+  }
+}
+
+::google::protobuf::Metadata GetServerMetaReq::GetMetadata() const {
+  protobuf_AssignDescriptorsOnce();
+  ::google::protobuf::Metadata metadata;
+  metadata.descriptor = GetServerMetaReq_descriptor_;
+  metadata.reflection = GetServerMetaReq_reflection_;
+  return metadata;
+}
+
+
+// ===================================================================
+
+#ifndef _MSC_VER
+const int ConvertSupport::kFromFieldNumber;
+const int ConvertSupport::kToFieldNumber;
+#endif  // !_MSC_VER
+
+ConvertSupport::ConvertSupport()
+  : ::google::protobuf::Message() {
+  SharedCtor();
+}
+
+void ConvertSupport::InitAsDefaultInstance() {
+}
+
+ConvertSupport::ConvertSupport(const ConvertSupport& from)
+  : ::google::protobuf::Message() {
+  SharedCtor();
+  MergeFrom(from);
+}
+
+void ConvertSupport::SharedCtor() {
+  _cached_size_ = 0;
+  from_ = 0;
+  to_ = 0;
+  ::memset(_has_bits_, 0, sizeof(_has_bits_));
+}
+
+ConvertSupport::~ConvertSupport() {
+  SharedDtor();
+}
+
+void ConvertSupport::SharedDtor() {
+  if (this != default_instance_) {
+  }
+}
+
+void ConvertSupport::SetCachedSize(int size) const {
+  GOOGLE_SAFE_CONCURRENT_WRITES_BEGIN();
+  _cached_size_ = size;
+  GOOGLE_SAFE_CONCURRENT_WRITES_END();
+}
+const ::google::protobuf::Descriptor* ConvertSupport::descriptor() {
+  protobuf_AssignDescriptorsOnce();
+  return ConvertSupport_descriptor_;
+}
+
+const ConvertSupport& ConvertSupport::default_instance() {
+  if (default_instance_ == NULL) protobuf_AddDesc_User_2eproto();
+  return *default_instance_;
+}
+
+ConvertSupport* ConvertSupport::default_instance_ = NULL;
+
+ConvertSupport* ConvertSupport::New() const {
+  return new ConvertSupport;
+}
+
+void ConvertSupport::Clear() {
+  if (_has_bits_[0 / 32] & (0xffu << (0 % 32))) {
+    from_ = 0;
+    to_ = 0;
+  }
+  ::memset(_has_bits_, 0, sizeof(_has_bits_));
+  mutable_unknown_fields()->Clear();
+}
+
+bool ConvertSupport::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)) {
+      // required .common.MinorType from = 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 (::common::MinorType_IsValid(value)) {
+            set_from(static_cast< ::common::MinorType >(value));
+          } else {
+            mutable_unknown_fields()->AddVarint(1, value);
+          }
+        } else {
+          goto handle_uninterpreted;
+        }
+        if (input->ExpectTag(16)) goto parse_to;
+        break;
+      }
+
+      // required .common.MinorType to = 2;
+      case 2: {
+        if (::google::protobuf::internal::WireFormatLite::GetTagWireType(tag) ==
+            ::google::protobuf::internal::WireFormatLite::WIRETYPE_VARINT) {
+         parse_to:
+          int value;
+          DO_((::google::protobuf::internal::WireFormatLite::ReadPrimitive<
+                   int, ::google::protobuf::internal::WireFormatLite::TYPE_ENUM>(
+                 input, &value)));
+          if (::common::MinorType_IsValid(value)) {
+            set_to(static_cast< ::common::MinorType >(value));
+          } else {
+            mutable_unknown_fields()->AddVarint(2, value);
+          }
+        } else {
+          goto handle_uninterpreted;
+        }
+        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;
+        }
+        DO_(::google::protobuf::internal::WireFormat::SkipField(
+              input, tag, mutable_unknown_fields()));
+        break;
+      }
+    }
+  }
+  return true;
+#undef DO_
+}
+
+void ConvertSupport::SerializeWithCachedSizes(
+    ::google::protobuf::io::CodedOutputStream* output) const {
+  // required .common.MinorType from = 1;
+  if (has_from()) {
+    ::google::protobuf::internal::WireFormatLite::WriteEnum(
+      1, this->from(), output);
+  }
+
+  // required .common.MinorType to = 2;
+  if (has_to()) {
+    ::google::protobuf::internal::WireFormatLite::WriteEnum(
+      2, this->to(), output);
+  }
+
+  if (!unknown_fields().empty()) {
+    ::google::protobuf::internal::WireFormat::SerializeUnknownFields(
+        unknown_fields(), output);
+  }
+}
+
+::google::protobuf::uint8* ConvertSupport::SerializeWithCachedSizesToArray(
+    ::google::protobuf::uint8* target) const {
+  // required .common.MinorType from = 1;
+  if (has_from()) {
+    target = ::google::protobuf::internal::WireFormatLite::WriteEnumToArray(
+      1, this->from(), target);
+  }
+
+  // required .common.MinorType to = 2;
+  if (has_to()) {
+    target = ::google::protobuf::internal::WireFormatLite::WriteEnumToArray(
+      2, this->to(), target);
+  }
+
+  if (!unknown_fields().empty()) {
+    target = ::google::protobuf::internal::WireFormat::SerializeUnknownFieldsToArray(
+        unknown_fields(), target);
+  }
+  return target;
+}
+
+int ConvertSupport::ByteSize() const {
+  int total_size = 0;
+
+  if (_has_bits_[0 / 32] & (0xffu << (0 % 32))) {
+    // required .common.MinorType from = 1;
+    if (has_from()) {
+      total_size += 1 +
+        ::google::protobuf::internal::WireFormatLite::EnumSize(this->from());
+    }
+
+    // required .common.MinorType to = 2;
+    if (has_to()) {
+      total_size += 1 +
+        ::google::protobuf::internal::WireFormatLite::EnumSize(this->to());
+    }
+
+  }
+  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();
+  return total_size;
+}
+
+void ConvertSupport::MergeFrom(const ::google::protobuf::Message& from) {
+  GOOGLE_CHECK_NE(&from, this);
+  const ConvertSupport* source =
+    ::google::protobuf::internal::dynamic_cast_if_available<const ConvertSupport*>(
+      &from);
+  if (source == NULL) {
+    ::google::protobuf::internal::ReflectionOps::Merge(from, this);
+  } else {
+    MergeFrom(*source);
+  }
+}
+
+void ConvertSupport::MergeFrom(const ConvertSupport& from) {
+  GOOGLE_CHECK_NE(&from, this);
+  if (from._has_bits_[0 / 32] & (0xffu << (0 % 32))) {
+    if (from.has_from()) {
+      set_from(from.from());
+    }
+    if (from.has_to()) {
+      set_to(from.to());
+    }
+  }
+  mutable_unknown_fields()->MergeFrom(from.unknown_fields());
+}
+
+void ConvertSupport::CopyFrom(const ::google::protobuf::Message& from) {
+  if (&from == this) return;
+  Clear();
+  MergeFrom(from);
+}
+
+void ConvertSupport::CopyFrom(const ConvertSupport& from) {
+  if (&from == this) return;
+  Clear();
+  MergeFrom(from);
+}
+
+bool ConvertSupport::IsInitialized() const {
+  if ((_has_bits_[0] & 0x00000003) != 0x00000003) return false;
+
+  return true;
+}
+
+void ConvertSupport::Swap(ConvertSupport* other) {
+  if (other != this) {
+    std::swap(from_, other->from_);
+    std::swap(to_, other->to_);
+    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 ConvertSupport::GetMetadata() const {
+  protobuf_AssignDescriptorsOnce();
+  ::google::protobuf::Metadata metadata;
+  metadata.descriptor = ConvertSupport_descriptor_;
+  metadata.reflection = ConvertSupport_reflection_;
+  return metadata;
+}
+
+
+// ===================================================================
+
+#ifndef _MSC_VER
+const int GetServerMetaResp::kStatusFieldNumber;
+const int GetServerMetaResp::kServerMetaFieldNumber;
+const int GetServerMetaResp::kErrorFieldNumber;
+#endif  // !_MSC_VER
+
+GetServerMetaResp::GetServerMetaResp()
+  : ::google::protobuf::Message() {
+  SharedCtor();
+}
+
+void GetServerMetaResp::InitAsDefaultInstance() {
+  server_meta_ = const_cast< ::exec::user::ServerMeta*>(&::exec::user::ServerMeta::default_instance());
+  error_ = const_cast< ::exec::shared::DrillPBError*>(&::exec::shared::DrillPBError::default_instance());
+}
+
+GetServerMetaResp::GetServerMetaResp(const GetServerMetaResp& from)
+  : ::google::protobuf::Message() {
+  SharedCtor();
+  MergeFrom(from);
+}
+
+void GetServerMetaResp::SharedCtor() {
+  _cached_size_ = 0;
+  status_ = 0;
+  server_meta_ = NULL;
+  error_ = NULL;
+  ::memset(_has_bits_, 0, sizeof(_has_bits_));
+}
+
+GetServerMetaResp::~GetServerMetaResp() {
+  SharedDtor();
+}
+
+void GetServerMetaResp::SharedDtor() {
+  if (this != default_instance_) {
+    delete server_meta_;
+    delete error_;
+  }
+}
+
+void GetServerMetaResp::SetCachedSize(int size) const {
+  GOOGLE_SAFE_CONCURRENT_WRITES_BEGIN();
+  _cached_size_ = size;
+  GOOGLE_SAFE_CONCURRENT_WRITES_END();
+}
+const ::google::protobuf::Descriptor* GetServerMetaResp::descriptor() {
+  protobuf_AssignDescriptorsOnce();
+  return GetServerMetaResp_descriptor_;
+}
+
+const GetServerMetaResp& GetServerMetaResp::default_instance() {
+  if (default_instance_ == NULL) protobuf_AddDesc_User_2eproto();
+  return *default_instance_;
+}
+
+GetServerMetaResp* GetServerMetaResp::default_instance_ = NULL;
+
+GetServerMetaResp* GetServerMetaResp::New() const {
+  return new GetServerMetaResp;
+}
+
+void GetServerMetaResp::Clear() {
+  if (_has_bits_[0 / 32] & (0xffu << (0 % 32))) {
+    status_ = 0;
+    if (has_server_meta()) {
+      if (server_meta_ != NULL) server_meta_->::exec::user::ServerMeta::Clear();
+    }
+    if (has_error()) {
+      if (error_ != NULL) error_->::exec::shared::DrillPBError::Clear();
+    }
+  }
+  ::memset(_has_bits_, 0, sizeof(_has_bits_));
+  mutable_unknown_fields()->Clear();
+}
+
+bool GetServerMetaResp::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.user.RequestStatus status = 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::user::RequestStatus_IsValid(value)) {
+            set_status(static_cast< ::exec::user::RequestStatus >(value));
+          } else {
+            mutable_unknown_fields()->AddVarint(1, value);
+          }
+        } else {
+          goto handle_uninterpreted;
+        }
+        if (input->ExpectTag(18)) goto parse_server_meta;
+        break;
+      }
+
+      // optional .exec.user.ServerMeta server_meta = 2;
+      case 2: {
+        if (::google::protobuf::internal::WireFormatLite::GetTagWireType(tag) ==
+            ::google::protobuf::internal::WireFormatLite::WIRETYPE_LENGTH_DELIMITED) {
+         parse_server_meta:
+          DO_(::google::protobuf::internal::WireFormatLite::ReadMessageNoVirtual(
+               input, mutable_server_meta()));
+        } else {
+          goto handle_uninterpreted;
+        }
+        if (input->ExpectTag(26)) goto parse_error;
+        break;
+      }
+
+      // optional .exec.shared.DrillPBError error = 3;
+      case 3: {
+        if (::google::protobuf::internal::WireFormatLite::GetTagWireType(tag) ==
+            ::google::protobuf::internal::WireFormatLite::WIRETYPE_LENGTH_DELIMITED) {
+         parse_error:
+          DO_(::google::protobuf::internal::WireFormatLite::ReadMessageNoVirtual(
+               input, mutable_error()));
+        } else {
+          goto handle_uninterpreted;
+        }
+        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;
+        }
+        DO_(::google::protobuf::internal::WireFormat::SkipField(
+              input, tag, mutable_unknown_fields()));
+        break;
+      }
+    }
+  }
+  return true;
+#undef DO_
+}
+
+void GetServerMetaResp::SerializeWithCachedSizes(
+    ::google::protobuf::io::CodedOutputStream* output) const {
+  // optional .exec.user.RequestStatus status = 1;
+  if (has_status()) {
+    ::google::protobuf::internal::WireFormatLite::WriteEnum(
+      1, this->status(), output);
+  }
+
+  // optional .exec.user.ServerMeta server_meta = 2;
+  if (has_server_meta()) {
+    ::google::protobuf::internal::WireFormatLite::WriteMessageMaybeToArray(
+      2, this->server_meta(), output);
+  }
+
+  // optional .exec.shared.DrillPBError error = 3;
+  if (has_error()) {
+    ::google::protobuf::internal::WireFormatLite::WriteMessageMaybeToArray(
+      3, this->error(), output);
+  }
+
+  if (!unknown_fields().empty()) {
+    ::google::protobuf::internal::WireFormat::SerializeUnknownFields(
+        unknown_fields(), output);
+  }
+}
+
+::google::protobuf::uint8* GetServerMetaResp::SerializeWithCachedSizesToArray(
+    ::google::protobuf::uint8* target) const {
+  // optional .exec.user.RequestStatus status = 1;
+  if (has_status()) {
+    target = ::google::protobuf::internal::WireFormatLite::WriteEnumToArray(
+      1, this->status(), target);
+  }
+
+  // optional .exec.user.ServerMeta server_meta = 2;
+  if (has_server_meta()) {
+    target = ::google::protobuf::internal::WireFormatLite::
+      WriteMessageNoVirtualToArray(
+        2, this->server_meta(), target);
+  }
+
+  // optional .exec.shared.DrillPBError error = 3;
+  if (has_error()) {
+    target = ::google::protobuf::internal::WireFormatLite::
+      WriteMessageNoVirtualToArray(
+        3, this->error(), target);
+  }
+
+  if (!unknown_fields().empty()) {
+    target = ::google::protobuf::internal::WireFormat::SerializeUnknownFieldsToArray(
+        unknown_fields(), target);
+  }
+  return target;
+}
+
+int GetServerMetaResp::ByteSize() const {
+  int total_size = 0;
+
+  if (_has_bits_[0 / 32] & (0xffu << (0 % 32))) {
+    // optional .exec.user.RequestStatus status = 1;
+    if (has_status()) {
+      total_size += 1 +
+        ::google::protobuf::internal::WireFormatLite::EnumSize(this->status());
+    }
+
+    // optional .exec.user.ServerMeta server_meta = 2;
+    if (has_server_meta()) {
+      total_size += 1 +
+        ::google::protobuf::internal::WireFormatLite::MessageSizeNoVirtual(
+          this->server_meta());
+    }
+
+    // optional .exec.shared.DrillPBError error = 3;
+    if (has_error()) {
+      total_size += 1 +
+        ::google::protobuf::internal::WireFormatLite::MessageSizeNoVirtual(
+          this->error());
+    }
+
+  }
+  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();
+  return total_size;
+}
+
+void GetServerMetaResp::MergeFrom(const ::google::protobuf::Message& from) {
+  GOOGLE_CHECK_NE(&from, this);
+  const GetServerMetaResp* source =
+    ::google::protobuf::internal::dynamic_cast_if_available<const GetServerMetaResp*>(
+      &from);
+  if (source == NULL) {
+    ::google::protobuf::internal::ReflectionOps::Merge(from, this);
+  } else {
+    MergeFrom(*source);
+  }
+}
+
+void GetServerMetaResp::MergeFrom(const GetServerMetaResp& from) {
+  GOOGLE_CHECK_NE(&from, this);
+  if (from._has_bits_[0 / 32] & (0xffu << (0 % 32))) {
+    if (from.has_status()) {
+      set_status(from.status());
+    }
+    if (from.has_server_meta()) {
+      mutable_server_meta()->::exec::user::ServerMeta::MergeFrom(from.server_meta());
+    }
+    if (from.has_error()) {
+      mutable_error()->::exec::shared::DrillPBError::MergeFrom(from.error());
+    }
+  }
+  mutable_unknown_fields()->MergeFrom(from.unknown_fields());
+}
+
+void GetServerMetaResp::CopyFrom(const ::google::protobuf::Message& from) {
+  if (&from == this) return;
+  Clear();
+  MergeFrom(from);
+}
+
+void GetServerMetaResp::CopyFrom(const GetServerMetaResp& from) {
+  if (&from == this) return;
+  Clear();
+  MergeFrom(from);
+}
+
+bool GetServerMetaResp::IsInitialized() const {
+
+  if (has_server_meta()) {
+    if (!this->server_meta().IsInitialized()) return false;
+  }
+  return true;
+}
+
+void GetServerMetaResp::Swap(GetServerMetaResp* other) {
+  if (other != this) {
+    std::swap(status_, other->status_);
+    std::swap(server_meta_, other->server_meta_);
+    std::swap(error_, other->error_);
+    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 GetServerMetaResp::GetMetadata() const {
+  protobuf_AssignDescriptorsOnce();
+  ::google::protobuf::Metadata metadata;
+  metadata.descriptor = GetServerMetaResp_descriptor_;
+  metadata.reflection = GetServerMetaResp_reflection_;
+  return metadata;
+}
+
+
+// ===================================================================
+
+#ifndef _MSC_VER
+const int ServerMeta::kAllTablesSelectableFieldNumber;
+const int ServerMeta::kBlobIncludedInMaxRowSizeFieldNumber;
+const int ServerMeta::kCatalogAtStartFieldNumber;
+const int ServerMeta::kCatalogSeparatorFieldNumber;
+const int ServerMeta::kCatalogTermFieldNumber;
+const int ServerMeta::kCollateSupportFieldNumber;
+const int ServerMeta::kColumnAliasingSupportedFieldNumber;
+const int ServerMeta::kConvertSupportFieldNumber;
+const int ServerMeta::kCorrelationNamesSupportFieldNumber;
+const int ServerMeta::kDateTimeFunctionsFieldNumber;
+const int ServerMeta::kDateTimeLiteralsSupportFieldNumber;
+const int ServerMeta::kGroupBySupportFieldNumber;
+const int ServerMeta::kIdentifierCasingFieldNumber;
+const int ServerMeta::kIdentifierQuoteStringFieldNumber;
+const int ServerMeta::kLikeEscapeClauseSupportedFieldNumber;
+const int ServerMeta::kMaxBinaryLiteralLengthFieldNumber;
+const int ServerMeta::kMaxCatalogNameLengthFieldNumber;
+const int ServerMeta::kMaxCharLiteralLengthFieldNumber;
+const int ServerMeta::kMaxColumnNameLengthFieldNumber;
+const int ServerMeta::kMaxColumnsInGroupByFieldNumber;
+const int ServerMeta::kMaxColumnsInOrderByFieldNumber;
+const int ServerMeta::kMaxColumnsInSelectFieldNumber;
+const int ServerMeta::kMaxCursorNameLengthFieldNumber;
+const int ServerMeta::kMaxLogicalLobSizeFieldNumber;
+const int ServerMeta::kMaxRowSizeFieldNumber;
+const int ServerMeta::kMaxSchemaNameLengthFieldNumber;
+const int ServerMeta::kMaxStatementLengthFieldNumber;
+const int ServerMeta::kMaxStatementsFieldNumber;
+const int ServerMeta::kMaxTableNameLengthFieldNumber;
+const int ServerMeta::kMaxTablesInSelectFieldNumber;
+const int ServerMeta::kMaxUserNameLengthFieldNumber;
+const int ServerMeta::kNullCollationFieldNumber;
+const int ServerMeta::kNullPlusNonNullEqualsNullFieldNumber;
+const int ServerMeta::kNumericFunctionsFieldNumber;
+const int ServerMeta::kOrderBySupportFieldNumber;
+const int ServerMeta::kOuterJoinSupportFieldNumber;
+const int ServerMeta::kQuotedIdentifierCasingFieldNumber;
+const int ServerMeta::kReadOnlyFieldNumber;
+const int ServerMeta::kSchemaTermFieldNumber;
+const int ServerMeta::kSearchEscapeStringFieldNumber;
+const int ServerMeta::kSelectForUpdateSupportedFieldNumber;
+const int ServerMeta::kSpecialCharactersFieldNumber;
+const int ServerMeta::kSqlKeywordsFieldNumber;
+const int ServerMeta::kStringFunctionsFieldNumber;
+const int ServerMeta::kSubquerySupportFieldNumber;
+const int ServerMeta::kSystemFunctionsFieldNumber;
+const int ServerMeta::kTableTermFieldNumber;
+const int ServerMeta::kTransactionSupportedFieldNumber;
+const int ServerMeta::kUnionSupportFieldNumber;
+#endif  // !_MSC_VER
+
+ServerMeta::ServerMeta()
+  : ::google::protobuf::Message() {
+  SharedCtor();
+}
+
+void ServerMeta::InitAsDefaultInstance() {
+}
+
+ServerMeta::ServerMeta(const ServerMeta& from)
+  : ::google::protobuf::Message() {
+  SharedCtor();
+  MergeFrom(from);
+}
+
+void ServerMeta::SharedCtor() {
+  _cached_size_ = 0;
+  all_tables_selectable_ = false;
+  blob_included_in_max_row_size_ = false;
+  catalog_at_start_ = false;
+  catalog_separator_ = const_cast< ::std::string*>(&::google::protobuf::internal::kEmptyString);
+  catalog_term_ = const_cast< ::std::string*>(&::google::protobuf::internal::kEmptyString);
+  column_aliasing_supported_ = false;
+  correlation_names_support_ = 1;
+  group_by_support_ = 1;
+  identifier_casing_ = 0;
+  identifier_quote_string_ = const_cast< ::std::string*>(&::google::protobuf::internal::kEmptyString);
+  like_escape_clause_supported_ = false;
+  max_binary_literal_length_ = 0u;
+  max_catalog_name_length_ = 0u;
+  max_char_literal_length_ = 0u;
+  max_column_name_length_ = 0u;
+  max_columns_in_group_by_ = 0u;
+  max_columns_in_order_by_ = 0u;
+  max_columns_in_select_ = 0u;
+  max_cursor_name_length_ = 0u;
+  max_logical_lob_size_ = 0u;
+  max_row_size_ = 0u;
+  max_schema_name_length_ = 0u;
+  max_statement_length_ = 0u;
+  max_statements_ = 0u;
+  max_table_name_length_ = 0u;
+  max_tables_in_select_ = 0u;
+  max_user_name_length_ = 0u;
+  null_collation_ = 0;
+  null_plus_non_null_equals_null_ = false;
+  quoted_identifier_casing_ = 0;
+  read_only_ = false;
+  schema_term_ = const_cast< ::std::string*>(&::google::protobuf::internal::kEmptyString);
+  search_escape_string_ = const_cast< ::std::string*>(&::google::protobuf::internal::kEmptyString);
+  select_for_update_supported_ = false;
+  special_characters_ = const_cast< ::std::string*>(&::google::protobuf::internal::kEmptyString);
+  table_term_ = const_cast< ::std::string*>(&::google::protobuf::internal::kEmptyString);
+  transaction_supported_ = false;
+  ::memset(_has_bits_, 0, sizeof(_has_bits_));
+}
+
+ServerMeta::~ServerMeta() {
+  SharedDtor();
+}
+
+void ServerMeta::SharedDtor() {
+  if (catalog_separator_ != &::google::protobuf::internal::kEmptyString) {
+    delete catalog_separator_;
+  }
+  if (catalog_term_ != &::google::protobuf::internal::kEmptyString) {
+    delete catalog_term_;
+  }
+  if (identifier_quote_string_ != &::google::protobuf::internal::kEmptyString) {
+    delete identifier_quote_string_;
+  }
+  if (schema_term_ != &::google::protobuf::internal::kEmptyString) {
+    delete schema_term_;
+  }
+  if (search_escape_string_ != &::google::protobuf::internal::kEmptyString) {
+    delete search_escape_string_;
+  }
+  if (special_characters_ != &::google::protobuf::internal::kEmptyString) {
+    delete special_characters_;
+  }
+  if (table_term_ != &::google::protobuf::internal::kEmptyString) {
+    delete table_term_;
+  }
+  if (this != default_instance_) {
+  }
+}
+
+void ServerMeta::SetCachedSize(int size) const {
+  GOOGLE_SAFE_CONCURRENT_WRITES_BEGIN();
+  _cached_size_ = size;
+  GOOGLE_SAFE_CONCURRENT_WRITES_END();
+}
+const ::google::protobuf::Descriptor* ServerMeta::descriptor() {
+  protobuf_AssignDescriptorsOnce();
+  return ServerMeta_descriptor_;
+}
+
+const ServerMeta& ServerMeta::default_instance() {
+  if (default_instance_ == NULL) protobuf_AddDesc_User_2eproto();
+  return *default_instance_;
+}
+
+ServerMeta* ServerMeta::default_instance_ = NULL;
+
+ServerMeta* ServerMeta::New() const {
+  return new ServerMeta;
+}
+
+void ServerMeta::Clear() {
+  if (_has_bits_[0 / 32] & (0xffu << (0 % 32))) {
+    all_tables_selectable_ = false;
+    blob_included_in_max_row_size_ = false;
+    catalog_at_start_ = false;
+    if (has_catalog_separator()) {
+      if (catalog_separator_ != &::google::protobuf::internal::kEmptyString) {
+        catalog_separator_->clear();
+      }
+    }
+    if (has_catalog_term()) {
+      if (catalog_term_ != &::google::protobuf::internal::kEmptyString) {
+        catalog_term_->clear();
+      }
+    }
+    column_aliasing_supported_ = false;
+  }
+  if (_has_bits_[8 / 32] & (0xffu << (8 % 32))) {
+    correlation_names_support_ = 1;
+    group_by_support_ = 1;
+    identifier_casing_ = 0;
+    if (has_identifier_quote_string()) {
+      if (identifier_quote_string_ != &::google::protobuf::internal::kEmptyString) {
+        identifier_quote_string_->clear();
+      }
+    }
+    like_escape_clause_supported_ = false;
+    max_binary_literal_length_ = 0u;
+  }
+  if (_has_bits_[16 / 32] & (0xffu << (16 % 32))) {
+    max_catalog_name_length_ = 0u;
+    max_char_literal_length_ = 0u;
+    max_column_name_length_ = 0u;
+    max_columns_in_group_by_ = 0u;
+    max_columns_in_order_by_ = 0u;
+    max_columns_in_select_ = 0u;
+    max_cursor_name_length_ = 0u;
+    max_logical_lob_size_ = 0u;
+  }
+  if (_has_bits_[24 / 32] & (0xffu << (24 % 32))) {
+    max_row_size_ = 0u;
+    max_schema_name_length_ = 0u;
+    max_statement_length_ = 0u;
+    max_statements_ = 0u;
+    max_table_name_length_ = 0u;
+    max_tables_in_select_ = 0u;
+    max_user_name_length_ = 0u;
+    null_collation_ = 0;
+  }
+  if (_has_bits_[32 / 32] & (0xffu << (32 % 32))) {
+    null_plus_non_null_equals_null_ = false;
+    quoted_identifier_casing_ = 0;
+    read_only_ = false;
+    if (has_schema_term()) {
+      if (schema_term_ != &::google::protobuf::internal::kEmptyString) {
+        schema_term_->clear();
+      }
+    }
+    if (has_search_escape_string()) {
+      if (search_escape_string_ != &::google::protobuf::internal::kEmptyString) {
+        search_escape_string_->clear();
+      }
+    }
+  }
+  if (_has_bits_[40 / 32] & (0xffu << (40 % 32))) {
+    select_for_update_supported_ = false;
+    if (has_special_characters()) {
+      if (special_characters_ != &::google::protobuf::internal::kEmptyString) {
+        special_characters_->clear();
+      }
+    }
+    if (has_table_term()) {
+      if (table_term_ != &::google::protobuf::internal::kEmptyString) {
+        table_term_->clear();
+      }
+    }
+    transaction_supported_ = false;
+  }
+  collate_support_.Clear();
+  convert_support_.Clear();
+  date_time_functions_.Clear();
+  date_time_literals_support_.Clear();
+  numeric_functions_.Clear();
+  order_by_support_.Clear();
+  outer_join_support_.Clear();
+  sql_keywords_.Clear();
+  string_functions_.Clear();
+  subquery_support_.Clear();
+  system_functions_.Clear();
+  union_support_.Clear();
+  ::memset(_has_bits_, 0, sizeof(_has_bits_));
+  mutable_unknown_fields()->Clear();
+}
+
+bool ServerMeta::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 bool all_tables_selectable = 1;
+      case 1: {
+        if (::google::protobuf::internal::WireFormatLite::GetTagWireType(tag) ==
+            ::google::protobuf::internal::WireFormatLite::WIRETYPE_VARINT) {
+          DO_((::google::protobuf::internal::WireFormatLite::ReadPrimitive<
+                   bool, ::google::protobuf::internal::WireFormatLite::TYPE_BOOL>(
+                 input, &all_tables_selectable_)));
+          set_has_all_tables_selectable();
+        } else {
+          goto handle_uninterpreted;
+        }
+        if (input->ExpectTag(16)) goto parse_blob_included_in_max_row_size;
+        break;
+      }
+
+      // optional bool blob_included_in_max_row_size = 2;
+      case 2: {
+        if (::google::protobuf::internal::WireFormatLite::GetTagWireType(tag) ==
+            ::google::protobuf::internal::WireFormatLite::WIRETYPE_VARINT) {
+         parse_blob_included_in_max_row_size:
+          DO_((::google::protobuf::internal::WireFormatLite::ReadPrimitive<
+                   bool, ::google::protobuf::internal::WireFormatLite::TYPE_BOOL>(
+                 input, &blob_included_in_max_row_size_)));
+          set_has_blob_included_in_max_row_size();
+        } else {
+          goto handle_uninterpreted;
+        }
+        if (input->ExpectTag(24)) goto parse_catalog_at_start;
+        break;
+      }
+
+      // optional bool catalog_at_start = 3;
+      case 3: {
+        if (::google::protobuf::internal::WireFormatLite::GetTagWireType(tag) ==
+            ::google::protobuf::internal::WireFormatLite::WIRETYPE_VARINT) {
+         parse_catalog_at_start:
+          DO_((::google::protobuf::internal::WireFormatLite::ReadPrimitive<
+                   bool, ::google::protobuf::internal::WireFormatLite::TYPE_BOOL>(
+                 input, &catalog_at_start_)));
+          set_has_catalog_at_start();
+        } else {
+          goto handle_uninterpreted;
+        }
+        if (input->ExpectTag(34)) goto parse_catalog_separator;
+        break;
+      }
+
+      // optional string catalog_separator = 4;
+      case 4: {
+        if (::google::protobuf::internal::WireFormatLite::GetTagWireType(tag) ==
+            ::google::protobuf::internal::WireFormatLite::WIRETYPE_LENGTH_DELIMITED) {
+         parse_catalog_separator:
+          DO_(::google::protobuf::internal::WireFormatLite::ReadString(
+                input, this->mutable_catalog_separator()));
+          ::google::protobuf::internal::WireFormat::VerifyUTF8String(
+            this->catalog_separator().data(), this->catalog_separator().length(),
+            ::google::protobuf::internal::WireFormat::PARSE);
+        } else {
+          goto handle_uninterpreted;
+        }
+        if (input->ExpectTag(42)) goto parse_catalog_term;
+        break;
+      }
+
+      // optional string catalog_term = 5;
+      case 5: {
+        if (::google::protobuf::internal::WireFormatLite::GetTagWireType(tag) ==
+            ::google::protobuf::internal::WireFormatLite::WIRETYPE_LENGTH_DELIMITED) {
+         parse_catalog_term:
+          DO_(::google::protobuf::internal::WireFormatLite::ReadString(
+                input, this->mutable_catalog_term()));
+          ::google::protobuf::internal::WireFormat::VerifyUTF8String(
+            this->catalog_term().data(), this->catalog_term().length(),
+            ::google::protobuf::internal::WireFormat::PARSE);
+        } else {
+          goto handle_uninterpreted;
+        }
+        if (input->ExpectTag(48)) goto parse_collate_support;
+        break;
+      }
+
+      // repeated .exec.user.CollateSupport collate_support = 6;
+      case 6: {
+        if (::google::protobuf::internal::WireFormatLite::GetTagWireType(tag) ==
+            ::google::protobuf::internal::WireFormatLite::WIRETYPE_VARINT) {
+         parse_collate_support:
+          int value;
+          DO_((::google::protobuf::internal::WireFormatLite::ReadPrimitive<
+                   int, ::google::protobuf::internal::WireFormatLite::TYPE_ENUM>(
+                 input, &value)));
+          if (::exec::user::CollateSupport_IsValid(value)) {
+            add_collate_support(static_cast< ::exec::user::CollateSupport >(value));
+          } else {
+            mutable_unknown_fields()->AddVarint(6, value);
+          }
+        } else if (::google::protobuf::internal::WireFormatLite::GetTagWireType(tag)
+                   == ::google::protobuf::internal::WireFormatLite::
+                      WIRETYPE_LENGTH_DELIMITED) {
+          DO_((::google::protobuf::internal::WireFormatLite::ReadPackedEnumNoInline(
+                 input,
+                 &::exec::user::CollateSupport_IsValid,
+                 this->mutable_collate_support())));
+        } else {
+          goto handle_uninterpreted;
+        }
+        if (input->ExpectTag(48)) goto parse_collate_support;
+        if (input->ExpectTag(56)) goto parse_column_aliasing_supported;
+        break;
+      }
+
+      // optional bool column_aliasing_supported = 7;
+      case 7: {
+        if (::google::protobuf::internal::WireFormatLite::GetTagWireType(tag) ==
+            ::google::protobuf::internal::WireFormatLite::WIRETYPE_VARINT) {
+         parse_column_aliasing_supported:
+          DO_((::google::protobuf::internal::WireFormatLite::ReadPrimitive<
+                   bool, ::google::protobuf::internal::WireFormatLite::TYPE_BOOL>(
+                 input, &column_aliasing_supported_)));
+          set_has_column_aliasing_supported();
+        } else {
+          goto handle_uninterpreted;
+        }
+        if (input->ExpectTag(66)) goto parse_convert_support;
+        break;
+      }
+
+      // repeated .exec.user.ConvertSupport convert_support = 8;
+      case 8: {
+        if (::google::protobuf::internal::WireFormatLite::GetTagWireType(tag) ==
+            ::google::protobuf::internal::WireFormatLite::WIRETYPE_LENGTH_DELIMITED) {
+         parse_convert_support:
+          DO_(::google::protobuf::internal::WireFormatLite::ReadMessageNoVirtual(
+                input, add_convert_support()));
+        } else {
+          goto handle_uninterpreted;
+        }
+        if (input->ExpectTag(66)) goto parse_convert_support;
+        if (input->ExpectTag(72)) goto parse_correlation_names_support;
+        break;
+      }
+
+      // optional .exec.user.CorrelationNamesSupport correlation_names_support = 9;
+      case 9: {
+        if (::google::protobuf::internal::WireFormatLite::GetTagWireType(tag) ==
+            ::google::protobuf::internal::WireFormatLite::WIRETYPE_VARINT) {
+         parse_correlation_names_support:
+          int value;
+          DO_((::google::protobuf::internal::WireFormatLite::ReadPrimitive<
+                   int, ::google::protobuf::internal::WireFormatLite::TYPE_ENUM>(
+                 input, &value)));
+          if (::exec::user::CorrelationNamesSupport_IsValid(value)) {
+            set_correlation_names_support(static_cast< ::exec::user::CorrelationNamesSupport >(value));
+          } else {
+            mutable_unknown_fields()->AddVarint(9, value);
+          }
+        } else {
+          goto handle_uninterpreted;
+        }
+        if (input->ExpectTag(82)) goto parse_date_time_functions;
+        break;
+      }
+
+      // repeated string date_time_functions = 10;
+      case 10: {
+        if (::google::protobuf::internal::WireFormatLite::GetTagWireType(tag) ==
+            ::google::protobuf::internal::WireFormatLite::WIRETYPE_LENGTH_DELIMITED) {
+         parse_date_time_functions:
+          DO_(::google::protobuf::internal::WireFormatLite::ReadString(
+                input, this->add_date_time_functions()));
+          ::google::protobuf::internal::WireFormat::VerifyUTF8String(
+            this->date_time_functions(this->date_time_functions_size() - 1).data(),
+            this->date_time_functions(this->date_time_functions_size() - 1).length(),
+            ::google::protobuf::internal::WireFormat::PARSE);
+        } else {
+          goto handle_uninterpreted;
+        }
+        if (input->ExpectTag(82)) goto parse_date_time_functions;
+        if (input->ExpectTag(88)) goto parse_date_time_literals_support;
+        break;
+      }
+
+      // repeated .exec.user.DateTimeLiteralsSupport date_time_literals_support = 11;
+      case 11: {
+        if (::google::protobuf::internal::WireFormatLite::GetTagWireType(tag) ==
+            ::google::protobuf::internal::WireFormatLite::WIRETYPE_VARINT) {
+         parse_date_time_literals_support:
+          int value;
+          DO_((::google::protobuf::internal::WireFormatLite::ReadPrimitive<
+                   int, ::google::protobuf::internal::WireFormatLite::TYPE_ENUM>(
+                 input, &value)));
+          if (::exec::user::DateTimeLiteralsSupport_IsValid(value)) {
+            add_date_time_literals_support(static_cast< ::exec::user::DateTimeLiteralsSupport >(value));
+          } else {
+            mutable_unknown_fields()->AddVarint(11, value);
+          }
+        } else if (::google::protobuf::internal::WireFormatLite::GetTagWireType(tag)
+                   == ::google::protobuf::internal::WireFormatLite::
+                      WIRETYPE_LENGTH_DELIMITED) {
+          DO_((::google::protobuf::internal::WireFormatLite::ReadPackedEnumNoInline(
+                 input,
+                 &::exec::user::DateTimeLiteralsSupport_IsValid,
+                 this->mutable_date_time_literals_support())));
+        } else {
+          goto handle_uninterpreted;
+        }
+        if (input->ExpectTag(88)) goto parse_date_time_literals_support;
+        if (input->ExpectTag(96)) goto parse_group_by_support;
+        break;
+      }
+
+      // optional .exec.user.GroupBySupport group_by_support = 12;
+      case 12: {
+        if (::google::protobuf::internal::WireFormatLite::GetTagWireType(tag) ==
+            ::google::protobuf::internal::WireFormatLite::WIRETYPE_VARINT) {
+         parse_group_by_support:
+          int value;
+          DO_((::google::protobuf::internal::WireFormatLite::ReadPrimitive<
+                   int, ::google::protobuf::internal::WireFormatLite::TYPE_ENUM>(
+                 input, &value)));
+          if (::exec::user::GroupBySupport_IsValid(value)) {
+            set_group_by_support(static_cast< ::exec::user::GroupBySupport >(value));
+          } else {
+            mutable_unknown_fields()->AddVarint(12, value);
+          }
+        } else {
+          goto handle_uninterpreted;
+        }
+        if (input->ExpectTag(104)) goto parse_identifier_casing;
+        break;
+      }
+
+      // optional .exec.user.IdentifierCasing identifier_casing = 13;
+      case 13: {
+        if (::google::protobuf::internal::WireFormatLite::GetTagWireType(tag) ==
+            ::google::protobuf::internal::WireFormatLite::WIRETYPE_VARINT) {
+         parse_identifier_casing:
+          int value;
+          DO_((::google::protobuf::internal::WireFormatLite::ReadPrimitive<
+                   int, ::google::protobuf::internal::WireFormatLite::TYPE_ENUM>(
+                 input, &value)));
+          if (::exec::user::IdentifierCasing_IsValid(value)) {
+            set_identifier_casing(static_cast< ::exec::user::IdentifierCasing >(value));
+          } else {
+            mutable_unknown_fields()->AddVarint(13, value);
+          }
+        } else {
+          goto handle_uninterpreted;
+        }
+        if (input->ExpectTag(114)) goto parse_identifier_quote_string;
+        break;
+      }
+
+      // optional string identifier_quote_string = 14;
+      case 14: {
+        if (::google::protobuf::internal::WireFormatLite::GetTagWireType(tag) ==
+            ::google::protobuf::internal::WireFormatLite::WIRETYPE_LENGTH_DELIMITED) {
+         parse_identifier_quote_string:
+          DO_(::google::protobuf::internal::WireFormatLite::ReadString(
+                input, this->mutable_identifier_quote_string()));
+          ::google::protobuf::internal::WireFormat::VerifyUTF8String(
+            this->identifier_quote_string().data(), this->identifier_quote_string().length(),
+            ::google::protobuf::internal::WireFormat::PARSE);
+        } else {
+          goto handle_uninterpreted;
+        }
+        if (input->ExpectTag(120)) goto parse_like_escape_clause_supported;
+        break;
+      }
+
+      // optional bool like_escape_clause_supported = 15;
+      case 15: {
+        if (::google::protobuf::internal::WireFormatLite::GetTagWireType(tag) ==
+            ::google::protobuf::internal::WireFormatLite::WIRETYPE_VARINT) {
+         parse_like_escape_clause_supported:
+          DO_((::google::protobuf::internal::WireFormatLite::ReadPrimitive<
+                   bool, ::google::protobuf::internal::WireFormatLite::TYPE_BOOL>(
+                 input, &like_escape_clause_supported_)));
+          set_has_like_escape_clause_supported();
+        } else {
+          goto handle_uninterpreted;
+        }
+        if (input->ExpectTag(128)) goto parse_max_binary_literal_length;
+        break;
+      }
+
+      // optional uint32 max_binary_literal_length = 16;
+      case 16: {
+        if (::google::prot

<TRUNCATED>

Mime
View raw message