You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@hive.apache.org by ng...@apache.org on 2021/04/06 15:39:45 UTC

[hive] 01/38: External metastore: clean after rebase

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

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

commit 69e5417b9829433f487d8958d57ffc2aeea85059
Author: Naveen Gangam <ng...@cloudera.com>
AuthorDate: Thu Aug 13 00:10:27 2020 -0400

    External metastore: clean after rebase
---
 .../java/org/apache/hadoop/hive/ql/ErrorMsg.java   |     3 +
 .../hadoop/hive/ql/parse/AlterClauseParser.g       |    31 +
 .../apache/hadoop/hive/ql/parse/CreateDDLParser.g  |    35 +
 .../apache/hadoop/hive/ql/parse/HiveLexerParent.g  |     6 +
 .../org/apache/hadoop/hive/ql/parse/HiveParser.g   |    36 +-
 .../hadoop/hive/ql/parse/IdentifiersParser.g       |     4 +-
 pom.xml                                            |     3 +
 .../database/create/CreateDatabaseAnalyzer.java    |    43 +-
 .../ql/ddl/database/create/CreateDatabaseDesc.java |    54 +
 .../database/create/CreateDatabaseOperation.java   |    22 +-
 .../ql/ddl/database/desc/DescDatabaseDesc.java     |     6 +-
 .../ddl/database/desc/DescDatabaseOperation.java   |    23 +-
 .../org/apache/hadoop/hive/ql/hooks/Entity.java    |    33 +-
 .../apache/hadoop/hive/ql/hooks/ReadEntity.java    |     8 +
 .../apache/hadoop/hive/ql/hooks/WriteEntity.java   |     6 +
 .../org/apache/hadoop/hive/ql/metadata/Hive.java   |   105 +
 .../metadata/formatting/JsonMetaDataFormatter.java |   704 ++
 .../hadoop/hive/ql/parse/BaseSemanticAnalyzer.java |    18 +
 .../apache/hadoop/hive/ql/plan/HiveOperation.java  |     8 +
 .../hive/ql/security/authorization/Privilege.java  |     3 +
 standalone-metastore/metastore-common/pom.xml      |     1 +
 .../src/gen/thrift/gen-cpp/ThriftHiveMetastore.cpp |  7400 +++++++++--
 .../src/gen/thrift/gen-cpp/ThriftHiveMetastore.h   |   700 ++
 .../ThriftHiveMetastore_server.skeleton.cpp        |    25 +
 .../gen/thrift/gen-cpp/hive_metastore_types.cpp    |  8645 ++++++++-----
 .../src/gen/thrift/gen-cpp/hive_metastore_types.h  |   350 +-
 .../hive/metastore/api/AbortTxnsRequest.java       |    32 +-
 .../hive/metastore/api/AddDynamicPartitions.java   |    32 +-
 .../api/AllocateTableWriteIdsRequest.java          |    68 +-
 .../api/AllocateTableWriteIdsResponse.java         |    36 +-
 .../hive/metastore/api/AlterPartitionsRequest.java |    34 +
 .../hive/metastore/api/AlterTableRequest.java      |    32 +
 .../metastore/api/ClearFileMetadataRequest.java    |    32 +-
 .../hive/metastore/api/ClientCapabilities.java     |    36 +-
 .../hive/metastore/api/CommitTxnRequest.java       |    36 +-
 .../hive/metastore/api/CompactionRequest.java      |    44 +-
 ...sponse.java => CreateDataConnectorRequest.java} |   221 +-
 .../{Database.java => CreateDatabaseRequest.java}  |   555 +-
 .../hive/metastore/api/CreateTableRequest.java     |   236 +
 .../api/{Database.java => DataConnector.java}      |   753 +-
 .../apache/hadoop/hive/metastore/api/Database.java |   338 +-
 .../hadoop/hive/metastore/api/DatabaseType.java    |    43 +
 .../hive/metastore/api/ExtendedTableInfo.java      |    64 +
 .../hive/metastore/api/FindSchemasByColsResp.java  |    34 +
 .../hive/metastore/api/FireEventRequest.java       |    32 +-
 .../hive/metastore/api/FireEventRequestData.java   |    36 +-
 .../hive/metastore/api/FireEventResponse.java      |    32 +-
 .../apache/hadoop/hive/metastore/api/Function.java |    36 +-
 .../metastore/api/GetAllFunctionsResponse.java     |    36 +-
 ...lesResult.java => GetDataConnectorRequest.java} |   221 +-
 .../hive/metastore/api/GetDatabaseRequest.java     |    32 +
 .../hive/metastore/api/GetFieldsResponse.java      |    36 +-
 .../api/GetFileMetadataByExprRequest.java          |    32 +-
 .../metastore/api/GetFileMetadataByExprResult.java |    48 +-
 .../hive/metastore/api/GetFileMetadataRequest.java |    32 +-
 .../hive/metastore/api/GetFileMetadataResult.java  |    44 +-
 .../metastore/api/GetOpenTxnsInfoResponse.java     |    36 +-
 .../hive/metastore/api/GetOpenTxnsRequest.java     |    36 +-
 .../hive/metastore/api/GetOpenTxnsResponse.java    |    32 +-
 .../metastore/api/GetPartitionNamesPsRequest.java  |    32 +-
 .../metastore/api/GetPartitionNamesPsResponse.java |    32 +-
 .../hive/metastore/api/GetPartitionRequest.java    |    32 +-
 .../metastore/api/GetPartitionsFilterSpec.java     |    32 +-
 .../api/GetPartitionsPsWithAuthRequest.java        |    64 +-
 .../api/GetPartitionsPsWithAuthResponse.java       |    36 +-
 .../hive/metastore/api/GetPartitionsRequest.java   |    64 +-
 .../hive/metastore/api/GetPartitionsResponse.java  |    36 +-
 .../hive/metastore/api/GetProjectionsSpec.java     |    32 +
 .../hive/metastore/api/GetSchemaResponse.java      |    36 +-
 .../hadoop/hive/metastore/api/GetTableRequest.java |    32 +
 .../hive/metastore/api/GetTablesExtRequest.java    |    32 +
 .../hive/metastore/api/GetTablesRequest.java       |    64 +
 .../hadoop/hive/metastore/api/GetTablesResult.java |    34 +
 .../metastore/api/GetValidWriteIdsRequest.java     |    32 +-
 .../metastore/api/GetValidWriteIdsResponse.java    |    36 +-
 .../metastore/api/HeartbeatTxnRangeResponse.java   |    64 +-
 .../hive/metastore/api/InsertEventRequestData.java |   128 +-
 .../hadoop/hive/metastore/api/LockRequest.java     |    36 +-
 .../metastore/api/NotificationEventRequest.java    |    32 +-
 .../metastore/api/NotificationEventResponse.java   |    36 +-
 .../hadoop/hive/metastore/api/OpenTxnRequest.java  |    32 +-
 .../hive/metastore/api/OpenTxnsResponse.java       |    32 +-
 .../hive/metastore/api/PartitionsResponse.java     |    36 +-
 .../hive/metastore/api/PutFileMetadataRequest.java |    64 +-
 .../hive/metastore/api/RenamePartitionRequest.java |    32 +
 .../hadoop/hive/metastore/api/ReplLastIdInfo.java  |    32 +-
 .../metastore/api/ReplTblWriteIdStateRequest.java  |    32 +-
 .../hive/metastore/api/ReplicationMetricList.java  |    36 +-
 .../hadoop/hive/metastore/api/SchemaVersion.java   |    34 +
 .../hive/metastore/api/ShowCompactResponse.java    |    36 +-
 .../hive/metastore/api/ShowLocksResponse.java      |    36 +-
 .../hive/metastore/api/TableValidWriteIds.java     |    32 +-
 .../hive/metastore/api/ThriftHiveMetastore.java    | 12182 ++++++++++++++-----
 .../hive/metastore/api/WMFullResourcePlan.java     |   136 +
 .../api/WMGetAllResourcePlanResponse.java          |    34 +
 .../api/WMGetTriggersForResourePlanResponse.java   |    34 +
 .../api/WMValidateResourcePlanResponse.java        |    64 +
 .../metastore/api/WriteNotificationLogRequest.java |    32 +-
 .../thrift/gen-php/metastore/AbortTxnsRequest.php  |    18 +-
 .../gen-php/metastore/AddDynamicPartitions.php     |    18 +-
 .../metastore/AllocateTableWriteIdsRequest.php     |    38 +-
 .../metastore/AllocateTableWriteIdsResponse.php    |    20 +-
 .../gen-php/metastore/AlterPartitionsRequest.php   |    16 +
 .../thrift/gen-php/metastore/AlterTableRequest.php |    15 +
 .../gen-php/metastore/ClearFileMetadataRequest.php |    18 +-
 .../gen-php/metastore/ClientCapabilities.php       |    18 +-
 .../thrift/gen-php/metastore/CommitTxnRequest.php  |    20 +-
 .../thrift/gen-php/metastore/CompactionRequest.php |    26 +-
 ...Response.php => CreateDataConnectorRequest.php} |    49 +-
 .../{Database.php => CreateDatabaseRequest.php}    |    98 +-
 .../gen-php/metastore/CreateTableRequest.php       |   111 +
 .../metastore/{Database.php => DataConnector.php}  |   165 +-
 .../src/gen/thrift/gen-php/metastore/Database.php  |    72 +
 .../gen/thrift/gen-php/metastore/DatabaseType.php  |    30 +
 .../thrift/gen-php/metastore/ExtendedTableInfo.php |    30 +
 .../gen-php/metastore/FindSchemasByColsResp.php    |    16 +
 .../thrift/gen-php/metastore/FireEventRequest.php  |    18 +-
 .../gen-php/metastore/FireEventRequestData.php     |    20 +-
 .../thrift/gen-php/metastore/FireEventResponse.php |    18 +-
 .../src/gen/thrift/gen-php/metastore/Function.php  |    20 +-
 .../gen-php/metastore/GetAllFunctionsResponse.php  |    20 +-
 ...apabilities.php => GetDataConnectorRequest.php} |    48 +-
 .../gen-php/metastore/GetDatabaseRequest.php       |    15 +
 .../thrift/gen-php/metastore/GetFieldsResponse.php |    20 +-
 .../metastore/GetFileMetadataByExprRequest.php     |    18 +-
 .../metastore/GetFileMetadataByExprResult.php      |    28 +-
 .../gen-php/metastore/GetFileMetadataRequest.php   |    18 +-
 .../gen-php/metastore/GetFileMetadataResult.php    |    26 +-
 .../gen-php/metastore/GetOpenTxnsInfoResponse.php  |    20 +-
 .../gen-php/metastore/GetOpenTxnsRequest.php       |    18 +-
 .../gen-php/metastore/GetOpenTxnsResponse.php      |    18 +-
 .../metastore/GetPartitionNamesPsRequest.php       |    18 +-
 .../metastore/GetPartitionNamesPsResponse.php      |    18 +-
 .../gen-php/metastore/GetPartitionRequest.php      |    18 +-
 .../gen-php/metastore/GetPartitionsFilterSpec.php  |    18 +-
 .../metastore/GetPartitionsPsWithAuthRequest.php   |    36 +-
 .../metastore/GetPartitionsPsWithAuthResponse.php  |    20 +-
 .../gen-php/metastore/GetPartitionsRequest.php     |    36 +-
 .../gen-php/metastore/GetPartitionsResponse.php    |    20 +-
 .../gen-php/metastore/GetProjectionsSpec.php       |    15 +
 .../thrift/gen-php/metastore/GetSchemaResponse.php |    20 +-
 .../thrift/gen-php/metastore/GetTableRequest.php   |    15 +
 .../gen-php/metastore/GetTablesExtRequest.php      |    15 +
 .../thrift/gen-php/metastore/GetTablesRequest.php  |    30 +
 .../thrift/gen-php/metastore/GetTablesResult.php   |    16 +
 .../gen-php/metastore/GetValidWriteIdsRequest.php  |    18 +-
 .../gen-php/metastore/GetValidWriteIdsResponse.php |    20 +-
 .../metastore/HeartbeatTxnRangeResponse.php        |    36 +-
 .../gen-php/metastore/InsertEventRequestData.php   |    72 +-
 .../gen/thrift/gen-php/metastore/LockRequest.php   |    20 +-
 .../gen-php/metastore/NotificationEventRequest.php |    18 +-
 .../metastore/NotificationEventResponse.php        |    20 +-
 .../thrift/gen-php/metastore/OpenTxnRequest.php    |    18 +-
 .../thrift/gen-php/metastore/OpenTxnsResponse.php  |    18 +-
 .../gen-php/metastore/PartitionsResponse.php       |    20 +-
 .../gen-php/metastore/PutFileMetadataRequest.php   |    36 +-
 .../gen-php/metastore/RenamePartitionRequest.php   |    15 +
 .../thrift/gen-php/metastore/ReplLastIdInfo.php    |    18 +-
 .../metastore/ReplTblWriteIdStateRequest.php       |    18 +-
 .../gen-php/metastore/ReplicationMetricList.php    |    20 +-
 .../gen/thrift/gen-php/metastore/SchemaVersion.php |    16 +
 .../gen-php/metastore/ShowCompactResponse.php      |    20 +-
 .../thrift/gen-php/metastore/ShowLocksResponse.php |    20 +-
 .../gen-php/metastore/TableValidWriteIds.php       |    18 +-
 .../metastore/ThriftHiveMetastoreClient.php        |   321 +
 .../gen-php/metastore/ThriftHiveMetastoreIf.php    |    35 +
 .../ThriftHiveMetastore_add_partitions_args.php    |    20 +-
 ...riftHiveMetastore_add_partitions_pspec_args.php |    20 +-
 ...riftHiveMetastore_alter_dataconnector_args.php} |    65 +-
 ...ftHiveMetastore_alter_dataconnector_result.php} |    50 +-
 .../ThriftHiveMetastore_alter_partitions_args.php  |    20 +-
 ...er_partitions_with_environment_context_args.php |    20 +-
 .../ThriftHiveMetastore_append_partition_args.php  |    18 +-
 ...end_partition_with_environment_context_args.php |    18 +-
 ...iftHiveMetastore_create_dataconnector_args.php} |    49 +-
 ...tHiveMetastore_create_dataconnector_result.php} |    84 +-
 ...etastore_create_table_with_constraints_args.php |   120 +-
 ...hriftHiveMetastore_drop_dataconnector_args.php} |    92 +-
 ...iftHiveMetastore_drop_dataconnector_result.php} |    80 +-
 .../ThriftHiveMetastore_drop_partition_args.php    |    18 +-
 ...rop_partition_with_environment_context_args.php |    18 +-
 ...ThriftHiveMetastore_exchange_partition_args.php |    26 +-
 ...hriftHiveMetastore_exchange_partitions_args.php |    26 +-
 ...iftHiveMetastore_exchange_partitions_result.php |    20 +-
 ...iveMetastore_find_columns_with_stats_result.php |    18 +-
 ...hriftHiveMetastore_get_all_databases_result.php |    18 +-
 ...erialized_view_objects_for_rewriting_result.php |    20 +-
 ...eMetastore_get_all_stored_procedures_result.php |    18 +-
 .../ThriftHiveMetastore_get_all_tables_result.php  |    18 +-
 ...eMetastore_get_all_token_identifiers_result.php |    18 +-
 .../ThriftHiveMetastore_get_databases_result.php   |    18 +-
 ...ftHiveMetastore_get_dataconnector_req_args.php} |    49 +-
 ...HiveMetastore_get_dataconnector_req_result.php} |    39 +-
 ...ThriftHiveMetastore_get_dataconnectors_args.php |    68 +
 ...iftHiveMetastore_get_dataconnectors_result.php} |    24 +-
 .../ThriftHiveMetastore_get_fields_result.php      |    20 +-
 ..._get_fields_with_environment_context_result.php |    20 +-
 .../ThriftHiveMetastore_get_functions_result.php   |    18 +-
 .../ThriftHiveMetastore_get_master_keys_result.php |    18 +-
 ...get_materialized_views_for_rewriting_result.php |    18 +-
 ...veMetastore_get_part_specs_by_filter_result.php |    20 +-
 .../ThriftHiveMetastore_get_partition_args.php     |    18 +-
 ...ftHiveMetastore_get_partition_names_ps_args.php |    18 +-
 ...HiveMetastore_get_partition_names_ps_result.php |    18 +-
 ...iveMetastore_get_partition_names_req_result.php |    18 +-
 ...iftHiveMetastore_get_partition_names_result.php |    18 +-
 ...tHiveMetastore_get_partition_with_auth_args.php |    36 +-
 ...veMetastore_get_partitions_by_filter_result.php |    20 +-
 ...tHiveMetastore_get_partitions_by_names_args.php |    18 +-
 ...iveMetastore_get_partitions_by_names_result.php |    20 +-
 .../ThriftHiveMetastore_get_partitions_ps_args.php |    18 +-
 ...hriftHiveMetastore_get_partitions_ps_result.php |    20 +-
 ...eMetastore_get_partitions_ps_with_auth_args.php |    36 +-
 ...etastore_get_partitions_ps_with_auth_result.php |    20 +-
 ...ftHiveMetastore_get_partitions_pspec_result.php |    20 +-
 .../ThriftHiveMetastore_get_partitions_result.php  |    20 +-
 ...HiveMetastore_get_partitions_with_auth_args.php |    18 +-
 ...veMetastore_get_partitions_with_auth_result.php |    20 +-
 .../ThriftHiveMetastore_get_privilege_set_args.php |    18 +-
 .../ThriftHiveMetastore_get_role_names_result.php  |    18 +-
 ...hriftHiveMetastore_get_runtime_stats_result.php |    20 +-
 ...iveMetastore_get_schema_all_versions_result.php |    20 +-
 .../ThriftHiveMetastore_get_schema_result.php      |    20 +-
 ..._get_schema_with_environment_context_result.php |    20 +-
 .../ThriftHiveMetastore_get_table_meta_args.php    |    18 +-
 .../ThriftHiveMetastore_get_table_meta_result.php  |    20 +-
 ...eMetastore_get_table_names_by_filter_result.php |    18 +-
 ...iveMetastore_get_table_objects_by_name_args.php |    18 +-
 ...eMetastore_get_table_objects_by_name_result.php |    20 +-
 ...riftHiveMetastore_get_tables_by_type_result.php |    18 +-
 .../ThriftHiveMetastore_get_tables_ext_result.php  |    20 +-
 .../ThriftHiveMetastore_get_tables_result.php      |    18 +-
 .../ThriftHiveMetastore_get_type_all_result.php    |    28 +-
 ...iveMetastore_isPartitionMarkedForEvent_args.php |    26 +-
 .../ThriftHiveMetastore_list_privileges_result.php |    20 +-
 .../ThriftHiveMetastore_list_roles_result.php      |    20 +-
 ...iftHiveMetastore_markPartitionForEvent_args.php |    26 +-
 ...re_partition_name_has_valid_characters_args.php |    18 +-
 ...HiveMetastore_partition_name_to_spec_result.php |    26 +-
 ...HiveMetastore_partition_name_to_vals_result.php |    18 +-
 .../ThriftHiveMetastore_rename_partition_args.php  |    18 +-
 .../metastore/ThriftHiveMetastore_set_ugi_args.php |    18 +-
 .../ThriftHiveMetastore_set_ugi_result.php         |    18 +-
 .../ThriftHiveMetastore_truncate_table_args.php    |    18 +-
 .../gen-php/metastore/WMFullResourcePlan.php       |    64 +
 .../metastore/WMGetAllResourcePlanResponse.php     |    16 +
 .../WMGetTriggersForResourePlanResponse.php        |    16 +
 .../metastore/WMValidateResourcePlanResponse.php   |    30 +
 .../metastore/WriteNotificationLogRequest.php      |    18 +-
 .../hive_metastore/ThriftHiveMetastore-remote      |    35 +
 .../gen-py/hive_metastore/ThriftHiveMetastore.py   |  3054 +++--
 .../src/gen/thrift/gen-py/hive_metastore/ttypes.py |  1737 ++-
 .../src/gen/thrift/gen-rb/hive_metastore_types.rb  |   134 +-
 .../src/gen/thrift/gen-rb/thrift_hive_metastore.rb |   331 +
 .../hadoop/hive/metastore/HiveMetaStoreClient.java |    78 +-
 .../hadoop/hive/metastore/IMetaStoreClient.java    |    52 +
 .../apache/hadoop/hive/metastore/Warehouse.java    |     8 +
 .../hadoop/hive/metastore/utils/FilterUtils.java   |    20 +
 .../src/main/thrift/hive_metastore.thrift          |    54 +-
 standalone-metastore/metastore-server/pom.xml      |     1 +
 .../hadoop/hive/metastore/HiveMetaStore.java       | 10299 ++++++++++++++++
 .../hadoop/hive/metastore/MetaStoreDirectSql.java  |    14 +-
 .../hive/metastore/MetaStoreEventListener.java     |    16 +
 .../hive/metastore/MetaStoreListenerNotifier.java  |    15 +
 .../apache/hadoop/hive/metastore/ObjectStore.java  |   218 +-
 .../org/apache/hadoop/hive/metastore/RawStore.java |    46 +
 .../TransactionalMetaStoreEventListener.java       |    14 +
 .../hadoop/hive/metastore/cache/CachedStore.java   |    32 +
 .../AbstractDataConnectorProvider.java             |    76 +
 .../DataConnectorProviderFactory.java              |    86 +
 .../dataconnector/IDataConnectorProvider.java      |    63 +
 .../dataconnector/jdbc/JDBCConnectorProvider.java  |   134 +
 .../dataconnector/jdbc/MySQLConfigGenerator.java   |     4 +
 .../CreateDataConnectorEvent.java}                 |    32 +-
 .../metastore/events/DropDataConnectorEvent.java   |    26 +
 .../events/PreCreateDataConnectorEvent.java        |    24 +
 .../hive/metastore/events/PreEventContext.java     |     5 +-
 .../hive/metastore/messaging/EventMessage.java     |     3 +
 .../hive/metastore/messaging/MessageBuilder.java   |     3 +
 .../model/{MDatabase.java => MDataConnector.java}  |    85 +-
 .../hadoop/hive/metastore/model/MDatabase.java     |    62 +
 .../src/main/resources/package.jdo                 |    44 +-
 .../src/main/sql/derby/hive-schema-4.0.0.derby.sql |    10 +-
 .../sql/derby/upgrade-3.2.0-to-4.0.0.derby.sql     |     9 +
 .../metastore/DummyRawStoreControlledCommit.java   |    50 +-
 .../metastore/DummyRawStoreForJdoConnection.java   |    54 +-
 .../metastore/HiveMetaStoreClientPreCatalog.java   |    44 +-
 standalone-metastore/pom.xml                       |     1 +
 testutils/ptest2/pom.xml                           |     1 +
 289 files changed, 44122 insertions(+), 12710 deletions(-)

diff --git a/common/src/java/org/apache/hadoop/hive/ql/ErrorMsg.java b/common/src/java/org/apache/hadoop/hive/ql/ErrorMsg.java
index e606539..0af2383 100644
--- a/common/src/java/org/apache/hadoop/hive/ql/ErrorMsg.java
+++ b/common/src/java/org/apache/hadoop/hive/ql/ErrorMsg.java
@@ -472,6 +472,9 @@ public enum ErrorMsg {
   OFFSET_NOT_SUPPORTED_IN_SUBQUERY(10424, "OFFSET is not supported in subquery of exists", true),
   WITH_COL_LIST_NUM_OVERFLOW(10425, "WITH-clause query {0} returns {1} columns, but {2} labels were specified. The number of column labels must be smaller or equal to the number of expressions returned by the query.", true),
   NULL_TREATMENT_NOT_SUPPORTED(10426, "Function {0} does not support null treatment.", true),
+  DATACONNECTOR_ALREADY_EXISTS(10427, "Dataconnector {0} already exists", true),
+  DATACONNECTOR_NOT_EXISTS(10428, "Dataconnector does not exist:"),
+
 
   //========================== 20000 range starts here ========================//
 
diff --git a/parser/src/java/org/apache/hadoop/hive/ql/parse/AlterClauseParser.g b/parser/src/java/org/apache/hadoop/hive/ql/parse/AlterClauseParser.g
index cced8bb..c5074be 100644
--- a/parser/src/java/org/apache/hadoop/hive/ql/parse/AlterClauseParser.g
+++ b/parser/src/java/org/apache/hadoop/hive/ql/parse/AlterClauseParser.g
@@ -51,6 +51,7 @@ alterStatement
     | KW_ALTER KW_VIEW tableName KW_AS? alterViewStatementSuffix -> ^(TOK_ALTERVIEW tableName alterViewStatementSuffix)
     | KW_ALTER KW_MATERIALIZED KW_VIEW tableNameTree=tableName alterMaterializedViewStatementSuffix[$tableNameTree.tree] -> alterMaterializedViewStatementSuffix
     | KW_ALTER (KW_DATABASE|KW_SCHEMA) alterDatabaseStatementSuffix -> alterDatabaseStatementSuffix
+    | KW_ALTER KW_DATACONNECTOR alterDataConnectorStatementSuffix -> alterDataConnectorStatementSuffix
     ;
 
 alterTableStatementSuffix
@@ -450,3 +451,33 @@ fileFormat
       -> ^(TOK_TABLEFILEFORMAT $inFmt $outFmt $serdeCls $inDriver? $outDriver?)
     | genericSpec=identifier -> ^(TOK_FILEFORMAT_GENERIC $genericSpec)
     ;
+
+alterDataConnectorStatementSuffix
+@init { gParent.pushMsg("alter connector statement", state); }
+@after { gParent.popMsg(state); }
+    : alterDataConnectorSuffixProperties
+    | alterDataConnectorSuffixSetOwner
+    | alterDataConnectorSuffixSetUrl
+    ;
+
+alterDataConnectorSuffixProperties
+@init { gParent.pushMsg("alter connector set properties statement", state); }
+@after { gParent.popMsg(state); }
+    : name=identifier KW_SET KW_DBPROPERTIES dbProperties
+    -> ^(TOK_ALTERDATACONNECTOR_PROPERTIES $name dbProperties)
+    ;
+
+alterDataConnectorSuffixSetOwner
+@init { gParent.pushMsg("alter connector set owner", state); }
+@after { gParent.popMsg(state); }
+    : dcName=identifier KW_SET KW_OWNER principalName
+    -> ^(TOK_ALTERDATACONNECTOR_OWNER $dcName principalName)
+    ;
+
+alterDataConnectorSuffixSetUrl
+@init { gParent.pushMsg("alter connector set url", state); }
+@after { gParent.popMsg(state); }
+    : dcName=identifier KW_SET KW_URL newUri=StringLiteral
+    -> ^(TOK_ALTERDATACONNECTOR_URL $dcName $newUri)
+    ;
+
diff --git a/parser/src/java/org/apache/hadoop/hive/ql/parse/CreateDDLParser.g b/parser/src/java/org/apache/hadoop/hive/ql/parse/CreateDDLParser.g
index ce01aea..434ae57 100644
--- a/parser/src/java/org/apache/hadoop/hive/ql/parse/CreateDDLParser.g
+++ b/parser/src/java/org/apache/hadoop/hive/ql/parse/CreateDDLParser.g
@@ -108,3 +108,38 @@ createTableStatement
          selectStatementWithCTE?
         )
     ;
+
+createDataConnectorStatement
+@init { gParent.pushMsg("create connector statement", state); }
+@after { gParent.popMsg(state); }
+    : KW_CREATE KW_DATACONNECTOR ifNotExists? name=identifier dataConnectorType dataConnectorUrl dataConnectorComment? ( KW_WITH KW_PROPERTIES dcprops=dbProperties)?
+    -> ^(TOK_CREATEDATACONNECTOR $name ifNotExists? dataConnectorType dataConnectorUrl dataConnectorComment? $dcprops?)
+    ;
+
+dataConnectorComment
+@init { gParent.pushMsg("dataconnector comment", state); }
+@after { gParent.popMsg(state); }
+    : KW_COMMENT comment=StringLiteral
+    -> ^(TOK_DATACONNECTORCOMMENT $comment)
+    ;
+
+dataConnectorUrl
+@init { gParent.pushMsg("dataconnector URL", state); }
+@after { gParent.popMsg(state); }
+    : KW_URL url=StringLiteral
+    -> ^(TOK_DATACONNECTORURL $url)
+    ;
+
+dataConnectorType
+@init { gParent.pushMsg("dataconnector type", state); }
+@after { gParent.popMsg(state); }
+    : KW_TYPE dcType=StringLiteral
+    -> ^(TOK_DATACONNECTORTYPE $dcType)
+    ;
+
+dropDataConnectorStatement
+@init { gParent.pushMsg("drop connector statement", state); }
+@after { gParent.popMsg(state); }
+    : KW_DROP (KW_DATACONNECTOR) ifExists? identifier
+    -> ^(TOK_DROPDATACONNECTOR identifier ifExists?)
+    ;
diff --git a/parser/src/java/org/apache/hadoop/hive/ql/parse/HiveLexerParent.g b/parser/src/java/org/apache/hadoop/hive/ql/parse/HiveLexerParent.g
index 4009218..5c6df83 100644
--- a/parser/src/java/org/apache/hadoop/hive/ql/parse/HiveLexerParent.g
+++ b/parser/src/java/org/apache/hadoop/hive/ql/parse/HiveLexerParent.g
@@ -183,6 +183,7 @@ KW_WITH: 'WITH';
 KW_DEFERRED: 'DEFERRED';
 KW_SERDEPROPERTIES: 'SERDEPROPERTIES';
 KW_DBPROPERTIES: 'DBPROPERTIES';
+KW_DCPROPERTIES: 'DCPROPERTIES';
 KW_LIMIT: 'LIMIT';
 KW_OFFSET: 'OFFSET';
 KW_SET: 'SET';
@@ -378,6 +379,11 @@ KW_TRAILING: 'TRAILING';
 KW_TRIM: 'TRIM';
 KW_IGNORE: 'IGNORE';
 KW_RESPECT: 'RESPECT';
+KW_DATACONNECTOR: 'CONNECTOR';
+KW_DATACONNECTORS: 'CONNECTORS';
+KW_TYPE: 'TYPE';
+KW_URL: 'URL';
+KW_REMOTE: 'REMOTE';
 
 // Operators
 // NOTE: if you add a new function/operator, add it to sysFuncNames so that describe function _FUNC_ will work.
diff --git a/parser/src/java/org/apache/hadoop/hive/ql/parse/HiveParser.g b/parser/src/java/org/apache/hadoop/hive/ql/parse/HiveParser.g
index 2cb7ea8..1375e4a 100644
--- a/parser/src/java/org/apache/hadoop/hive/ql/parse/HiveParser.g
+++ b/parser/src/java/org/apache/hadoop/hive/ql/parse/HiveParser.g
@@ -157,9 +157,17 @@ TOK_MAP;
 TOK_UNIONTYPE;
 TOK_COLTYPELIST;
 TOK_CREATEDATABASE;
+TOK_CREATEDATACONNECTOR;
 TOK_CREATETABLE;
 TOK_TRUNCATETABLE;
 TOK_LIKETABLE;
+TOK_DATACONNECTOR;
+TOK_DATACONNECTORCOMMENT;
+TOK_DATACONNECTORTYPE;
+TOK_DATACONNECTORURL;
+TOK_DATACONNECTOROWNER;
+TOK_DATACONNECTORPROPERTIES;
+TOK_DROPDATACONNECTOR;
 TOK_DESCTABLE;
 TOK_DESCFUNCTION;
 TOK_ALTERTABLE;
@@ -207,6 +215,7 @@ TOK_ALTERTABLE_UPDATECOLUMNS;
 TOK_ALTERTABLE_OWNER;
 TOK_MSCK;
 TOK_SHOWDATABASES;
+TOK_SHOWDATACONNECTORS;
 TOK_SHOWTABLES;
 TOK_SHOWCOLUMNS;
 TOK_SHOWFUNCTIONS;
@@ -355,6 +364,11 @@ TOK_ALTERDATABASE_PROPERTIES;
 TOK_ALTERDATABASE_OWNER;
 TOK_ALTERDATABASE_LOCATION;
 TOK_ALTERDATABASE_MANAGEDLOCATION;
+TOK_DATACONNECTORPROPERTIES;
+TOK_ALTERDATACONNECTOR_PROPERTIES;
+TOK_ALTERDATACONNECTOR_OWNER;
+TOK_ALTERDATACONNECTOR_URL;
+TOK_DESCDATACONNECTOR;
 TOK_DBNAME;
 TOK_TABNAME;
 TOK_TABSRC;
@@ -468,6 +482,7 @@ TOK_EXECUTED_AS;
 TOK_EXECUTE;
 TOK_SCHEDULE;
 TOK_EVERY;
+TOK_REMOTE;
 TOK_PARAMETER;
 TOK_PARAMETER_IDX;
 TOK_RESPECT_NULLS;
@@ -670,6 +685,10 @@ import org.apache.hadoop.hive.conf.HiveConf;
     xlateMap.put("KW_TRAILING", "TRAILING");
     xlateMap.put("KW_BOTH", "BOTH");
 
+    xlateMap.put("KW_TYPE", "TYPE");
+    xlateMap.put("KW_DATACONNECTOR", "CONNECTOR");
+    xlateMap.put("KW_DATACONNECTORS", "CONNECTORS");
+    xlateMap.put("KW_REMOTE", "REMOTE");
 
     // Operators
     xlateMap.put("DOT", ".");
@@ -1043,6 +1062,8 @@ ddlStatement
     | abortTransactionStatement
     | killQueryStatement
     | resourcePlanDdlStatements
+    | createDataConnectorStatement
+    | dropDataConnectorStatement
     ;
 
 ifExists
@@ -1106,14 +1127,16 @@ orReplace
 createDatabaseStatement
 @init { pushMsg("create database statement", state); }
 @after { popMsg(state); }
-    : KW_CREATE (KW_DATABASE|KW_SCHEMA)
+    : KW_CREATE (remote=KW_REMOTE)? (KW_DATABASE|KW_SCHEMA)
         ifNotExists?
         name=identifier
         databaseComment?
         dbLocation?
         dbManagedLocation?
+        dbConnectorName?
         (KW_WITH KW_DBPROPERTIES dbprops=dbProperties)?
-    -> ^(TOK_CREATEDATABASE $name ifNotExists? dbLocation? dbManagedLocation? databaseComment? $dbprops?)
+    -> {$remote != null}? ^(TOK_CREATEDATABASE $name ifNotExists? databaseComment? $dbprops? dbConnectorName?)
+    ->                    ^(TOK_CREATEDATABASE $name ifNotExists? dbLocation? dbManagedLocation? databaseComment? $dbprops?)
     ;
 
 dbLocation
@@ -1144,6 +1167,12 @@ dbPropertiesList
       keyValueProperty (COMMA keyValueProperty)* -> ^(TOK_DBPROPLIST keyValueProperty+)
     ;
 
+dbConnectorName
+@init { pushMsg("remote database using connector", state); }
+@after { popMsg(state); }
+    :
+      KW_USING dcName=identifier -> ^(TOK_DATACONNECTOR $dcName)
+    ;
 
 switchDatabaseStatement
 @init { pushMsg("switch database statement", state); }
@@ -1222,6 +1251,8 @@ descStatement
     (
     (KW_DATABASE|KW_SCHEMA) => (KW_DATABASE|KW_SCHEMA) KW_EXTENDED? (dbName=identifier) -> ^(TOK_DESCDATABASE $dbName KW_EXTENDED?)
     |
+    (KW_DATACONNECTOR) => (KW_DATACONNECTOR) KW_EXTENDED? (dcName=identifier) -> ^(TOK_DESCDATACONNECTOR $dcName KW_EXTENDED?)
+    |
     (KW_FUNCTION) => KW_FUNCTION KW_EXTENDED? (name=descFuncNames) -> ^(TOK_DESCFUNCTION $name KW_EXTENDED?)
     |
     (KW_FORMATTED|KW_EXTENDED) => ((descOptions=KW_FORMATTED|descOptions=KW_EXTENDED) parttype=tabPartColTypeExpr) -> ^(TOK_DESCTABLE $parttype $descOptions)
@@ -1277,6 +1308,7 @@ showStatement
         (KW_PLAN rp_name=identifier -> ^(TOK_SHOW_RP $rp_name))
         | (KW_PLANS -> ^(TOK_SHOW_RP))
       )
+    | KW_SHOW (KW_DATACONNECTORS) -> ^(TOK_SHOWDATACONNECTORS)
     ;
 
 showTablesFilterExpr
diff --git a/parser/src/java/org/apache/hadoop/hive/ql/parse/IdentifiersParser.g b/parser/src/java/org/apache/hadoop/hive/ql/parse/IdentifiersParser.g
index 110b16c..9402471 100644
--- a/parser/src/java/org/apache/hadoop/hive/ql/parse/IdentifiersParser.g
+++ b/parser/src/java/org/apache/hadoop/hive/ql/parse/IdentifiersParser.g
@@ -922,11 +922,11 @@ nonReserved
     | KW_MANAGEDLOCATION | KW_MAPJOIN | KW_MATERIALIZED | KW_METADATA | KW_MINUTE | KW_MONTH | KW_MSCK | KW_NOSCAN | KW_NO_DROP | KW_NULLS | KW_OFFLINE
     | KW_OPTION | KW_OUTPUTDRIVER | KW_OUTPUTFORMAT | KW_OVERWRITE | KW_OWNER | KW_PARTITIONED | KW_PARTITIONS | KW_PLUS
     | KW_PRINCIPALS | KW_PROTECTION | KW_PURGE | KW_QUERY | KW_QUARTER | KW_READ | KW_READONLY | KW_REBUILD | KW_RECORDREADER | KW_RECORDWRITER
-    | KW_RELOAD | KW_RENAME | KW_REPAIR | KW_REPLACE | KW_REPLICATION | KW_RESTRICT | KW_REWRITE
+    | KW_RELOAD | KW_REMOTE | KW_RENAME | KW_REPAIR | KW_REPLACE | KW_REPLICATION | KW_RESTRICT | KW_REWRITE
     | KW_ROLE | KW_ROLES | KW_SCHEMA | KW_SCHEMAS | KW_SECOND | KW_SEMI | KW_SERDE | KW_SERDEPROPERTIES | KW_SERVER | KW_SETS | KW_SHARED
     | KW_SHOW | KW_SHOW_DATABASE | KW_SKEWED | KW_SORT | KW_SORTED | KW_SSL | KW_STATISTICS | KW_STORED | KW_AST
     | KW_STREAMTABLE | KW_STRING | KW_STRUCT | KW_TABLES | KW_TBLPROPERTIES | KW_TEMPORARY | KW_TERMINATED
-    | KW_TINYINT | KW_TOUCH | KW_TRANSACTIONAL | KW_TRANSACTIONS | KW_UNARCHIVE | KW_UNDO | KW_UNIONTYPE | KW_UNLOCK | KW_UNSET
+    | KW_TINYINT | KW_TOUCH | KW_TRANSACTIONAL | KW_TRANSACTIONS | KW_TYPE | KW_UNARCHIVE | KW_UNDO | KW_UNIONTYPE | KW_UNLOCK | KW_UNSET
     | KW_UNSIGNED | KW_URI | KW_USE | KW_UTC | KW_UTCTIMESTAMP | KW_VALUE_TYPE | KW_VIEW | KW_WEEK | KW_WHILE | KW_YEAR
     | KW_WORK
     | KW_TRANSACTION
diff --git a/pom.xml b/pom.xml
index e6293c3..449b71e 100644
--- a/pom.xml
+++ b/pom.xml
@@ -1571,6 +1571,7 @@
         </executions>
         <configuration>
 	  <excludes>
+	    <exclude>*.patch</exclude>
 	    <exclude>.github/**</exclude>
 	    <exclude>binary-package-licenses/**</exclude>
 	    <exclude>data/**</exclude>
@@ -1617,6 +1618,8 @@
             <exclude>**/patchprocess/**</exclude>
             <exclude>**/metastore_db/**</exclude>
             <exclude>**/test/resources/**/*.ldif</exclude>
+            <exclude>hcatalog/core/mapred/**/part-m*</exclude>
+            <exclude>hcatalog/core/mapred/**/*_SUCCESS*</exclude>
 	  </excludes>
 	</configuration>
       </plugin>
diff --git a/ql/src/java/org/apache/hadoop/hive/ql/ddl/database/create/CreateDatabaseAnalyzer.java b/ql/src/java/org/apache/hadoop/hive/ql/ddl/database/create/CreateDatabaseAnalyzer.java
index 0cf58ee..42d7c79 100644
--- a/ql/src/java/org/apache/hadoop/hive/ql/ddl/database/create/CreateDatabaseAnalyzer.java
+++ b/ql/src/java/org/apache/hadoop/hive/ql/ddl/database/create/CreateDatabaseAnalyzer.java
@@ -21,6 +21,7 @@ package org.apache.hadoop.hive.ql.ddl.database.create;
 import java.util.Map;
 
 import org.apache.hadoop.hive.metastore.api.Database;
+import org.apache.hadoop.hive.metastore.api.DatabaseType;
 import org.apache.hadoop.hive.ql.QueryState;
 import org.apache.hadoop.hive.ql.exec.TaskFactory;
 import org.apache.hadoop.hive.ql.ddl.DDLSemanticAnalyzerFactory.DDLType;
@@ -48,6 +49,8 @@ public class CreateDatabaseAnalyzer extends BaseSemanticAnalyzer {
     String comment = null;
     String locationUri = null;
     String managedLocationUri = null;
+    String type = "NATIVE";
+    String connectorName = null;
     Map<String, String> props = null;
 
     for (int i = 1; i < root.getChildCount(); i++) {
@@ -70,19 +73,47 @@ public class CreateDatabaseAnalyzer extends BaseSemanticAnalyzer {
         managedLocationUri = unescapeSQLString(childNode.getChild(0).getText());
         outputs.add(toWriteEntity(managedLocationUri));
         break;
+      case HiveParser.TOK_DATACONNECTOR:
+        type = "REMOTE";
+        locationUri = "REMOTE_DATABASE"; // TODO
+        // i++;
+        ASTNode nextNode = (ASTNode) root.getChild(i);
+        connectorName = ((ASTNode)nextNode).getChild(0).getText();
+        outputs.add(toWriteEntity(connectorName));
+        outputs.remove(toWriteEntity(locationUri));
+        if (managedLocationUri != null) {
+          outputs.remove(toWriteEntity(managedLocationUri));
+          managedLocationUri = null;
+        }
+        break;
       default:
         throw new SemanticException("Unrecognized token in CREATE DATABASE statement");
       }
     }
 
-    CreateDatabaseDesc desc = new CreateDatabaseDesc(databaseName, comment, locationUri, managedLocationUri,
-        ifNotExists, props);
-    rootTasks.add(TaskFactory.get(new DDLWork(getInputs(), getOutputs(), desc)));
-
+    // String remoteDbName = props.get("connector.remoteDbName");
+    CreateDatabaseDesc desc = null;
     Database database = new Database(databaseName, comment, locationUri, props);
-    if (managedLocationUri != null) {
-      database.setManagedLocationUri(managedLocationUri);
+    if (type.equalsIgnoreCase("NATIVE")) {
+      desc = new CreateDatabaseDesc(databaseName, comment, locationUri, managedLocationUri, ifNotExists, props);
+      database.setType(DatabaseType.NATIVE);
+      // database = new Database(databaseName, comment, locationUri, props);
+      if (managedLocationUri != null) {
+        database.setManagedLocationUri(managedLocationUri);
+      }
+    } else {
+      String remoteDbName = databaseName;
+      if (props != null && props.get("connector.remoteDbName") != null) // TODO
+        remoteDbName = props.get("connector.remoteDbName");
+      desc = new CreateDatabaseDesc(databaseName, comment, locationUri, null, ifNotExists, props, type,
+          connectorName, remoteDbName);
+      database.setConnector_name(connectorName);
+      database.setType(DatabaseType.REMOTE);
+      database.setRemote_dbname(remoteDbName);
     }
+    rootTasks.add(TaskFactory.get(new DDLWork(getInputs(), getOutputs(), desc)));
+
+    // database = new Database(databaseName, comment, locationUri, props);
     outputs.add(new WriteEntity(database, WriteEntity.WriteType.DDL_NO_LOCK));
   }
 }
diff --git a/ql/src/java/org/apache/hadoop/hive/ql/ddl/database/create/CreateDatabaseDesc.java b/ql/src/java/org/apache/hadoop/hive/ql/ddl/database/create/CreateDatabaseDesc.java
index 167672b..ef9d8c8 100644
--- a/ql/src/java/org/apache/hadoop/hive/ql/ddl/database/create/CreateDatabaseDesc.java
+++ b/ql/src/java/org/apache/hadoop/hive/ql/ddl/database/create/CreateDatabaseDesc.java
@@ -21,32 +21,64 @@ package org.apache.hadoop.hive.ql.ddl.database.create;
 import java.io.Serializable;
 import java.util.Map;
 
+import org.apache.hadoop.hive.metastore.api.DatabaseType;
 import org.apache.hadoop.hive.ql.ddl.DDLDesc;
 import org.apache.hadoop.hive.ql.plan.Explain;
 import org.apache.hadoop.hive.ql.plan.Explain.Level;
 
+import javax.xml.crypto.Data;
+
 /**
  * DDL task description for CREATE DATABASE commands.
  */
 @Explain(displayName = "Create Database", explainLevels = { Level.USER, Level.DEFAULT, Level.EXTENDED })
 public class CreateDatabaseDesc implements DDLDesc, Serializable {
   private static final long serialVersionUID = 1L;
+  public static final String REMOTEDB_LOCATION = "REMOTE_LOCATION".intern();
 
   private final String databaseName;
   private final String comment;
   private final String locationUri;
   private final String managedLocationUri;
   private final boolean ifNotExists;
+  private final DatabaseType dbType;
+  private final String connectorName;
+  private final String remoteDbName;
   private final Map<String, String> dbProperties;
 
   public CreateDatabaseDesc(String databaseName, String comment, String locationUri, String managedLocationUri,
       boolean ifNotExists, Map<String, String> dbProperties) {
+    this(databaseName, comment, locationUri, managedLocationUri, ifNotExists, dbProperties, "NATIVE", null, null);
+/*
     this.databaseName = databaseName;
     this.comment = comment;
     this.locationUri = locationUri;
     this.managedLocationUri = managedLocationUri;
     this.ifNotExists = ifNotExists;
     this.dbProperties = dbProperties;
+
+ */
+  }
+
+  public CreateDatabaseDesc(String databaseName, String comment, String locationUri, String managedLocationUri,
+      boolean ifNotExists, Map<String, String> dbProperties, String dbtype, String connectorName, String remoteDbName) {
+    this.databaseName = databaseName;
+    this.comment = comment;
+    if (dbtype != null && dbtype.equalsIgnoreCase("REMOTE")) {
+      this.dbType = DatabaseType.REMOTE;
+      this.locationUri = REMOTEDB_LOCATION; // this is non-null in the HMSDB
+      this.connectorName = connectorName;
+      this.remoteDbName = remoteDbName;
+      this.managedLocationUri = null;
+    } else {
+      this.dbType = DatabaseType.NATIVE;
+      this.locationUri = locationUri;
+      this.managedLocationUri = managedLocationUri;
+      this.connectorName = null;
+      this.remoteDbName = null;
+    }
+    this.ifNotExists = ifNotExists;
+    this.dbProperties = dbProperties;
   }
 
   @Explain(displayName="if not exists", displayOnlyOnTrue = true)
@@ -77,4 +109,26 @@ public class CreateDatabaseDesc implements DDLDesc, Serializable {
   public String getManagedLocationUri() {
     return managedLocationUri;
   }
+
+  @Explain(displayName="database type")
+  public DatabaseType getDatabaseType() {
+    return dbType;
+    /*
+    if (dbType == DatabaseType.NATIVE)
+      return "NATIVE";
+    else
+      return "REMOTE";
+
+     */
+  }
+
+  @Explain(displayName="connector name")
+  public String getConnectorName() {
+    return connectorName;
+  }
+
+  @Explain(displayName="remote database name")
+  public String getRemoteDbName() {
+    return remoteDbName;
+  }
 }
diff --git a/ql/src/java/org/apache/hadoop/hive/ql/ddl/database/create/CreateDatabaseOperation.java b/ql/src/java/org/apache/hadoop/hive/ql/ddl/database/create/CreateDatabaseOperation.java
index db06161..97e318d 100644
--- a/ql/src/java/org/apache/hadoop/hive/ql/ddl/database/create/CreateDatabaseOperation.java
+++ b/ql/src/java/org/apache/hadoop/hive/ql/ddl/database/create/CreateDatabaseOperation.java
@@ -21,11 +21,13 @@ package org.apache.hadoop.hive.ql.ddl.database.create;
 import org.apache.hadoop.fs.Path;
 import org.apache.hadoop.hive.metastore.api.AlreadyExistsException;
 import org.apache.hadoop.hive.metastore.api.Database;
+import org.apache.hadoop.hive.metastore.api.DatabaseType;
 import org.apache.hadoop.hive.metastore.api.PrincipalType;
 import org.apache.hadoop.hive.metastore.conf.MetastoreConf;
 import org.apache.hadoop.hive.ql.ErrorMsg;
 import org.apache.hadoop.hive.ql.ddl.DDLOperation;
 import org.apache.hadoop.hive.ql.ddl.DDLOperationContext;
+import org.apache.hadoop.hive.ql.ddl.database.desc.DescDatabaseDesc;
 import org.apache.hadoop.hive.ql.exec.Utilities;
 import org.apache.hadoop.hive.ql.metadata.HiveException;
 import org.apache.hadoop.hive.ql.session.SessionState;
@@ -46,14 +48,20 @@ public class CreateDatabaseOperation extends DDLOperation<CreateDatabaseDesc> {
         desc.getDatabaseProperties());
     database.setOwnerName(SessionState.getUserFromAuthenticator());
     database.setOwnerType(PrincipalType.USER);
-    if (desc.getManagedLocationUri() != null) {
-      database.setManagedLocationUri(desc.getManagedLocationUri());
-    }
-
+    database.setType(desc.getDatabaseType());
     try {
-      makeLocationQualified(database);
-      if (database.getLocationUri().equalsIgnoreCase(database.getManagedLocationUri())) {
-        throw new HiveException("Managed and external locations for database cannot be the same");
+      if (desc.getDatabaseType() == DatabaseType.NATIVE) {
+        if (desc.getManagedLocationUri() != null) {
+          database.setManagedLocationUri(desc.getManagedLocationUri());
+        }
+        makeLocationQualified(database);
+        if (database.getLocationUri().equalsIgnoreCase(database.getManagedLocationUri())) {
+          throw new HiveException("Managed and external locations for database cannot be the same");
+        }
+      } else {
+        database.setLocationUri(CreateDatabaseDesc.REMOTEDB_LOCATION);
+        database.setConnector_name(desc.getConnectorName());
+        database.setRemote_dbname(desc.getRemoteDbName());
       }
       context.getDb().createDatabase(database, desc.getIfNotExists());
     } catch (AlreadyExistsException ex) {
diff --git a/ql/src/java/org/apache/hadoop/hive/ql/ddl/database/desc/DescDatabaseDesc.java b/ql/src/java/org/apache/hadoop/hive/ql/ddl/database/desc/DescDatabaseDesc.java
index 09751ee..aafa67f 100644
--- a/ql/src/java/org/apache/hadoop/hive/ql/ddl/database/desc/DescDatabaseDesc.java
+++ b/ql/src/java/org/apache/hadoop/hive/ql/ddl/database/desc/DescDatabaseDesc.java
@@ -33,11 +33,11 @@ public class DescDatabaseDesc implements DDLDesc, Serializable {
   private static final long serialVersionUID = 1L;
 
   public static final String DESC_DATABASE_SCHEMA =
-      "db_name,comment,location,managedLocation,owner_name,owner_type#string:string:string:string:string:string";
+      "db_name,comment,location,managedLocation,owner_name,owner_type,connector_name,remote_dbname#string:string:string:string:string:string,string,string";
 
   public static final String DESC_DATABASE_SCHEMA_EXTENDED =
-      "db_name,comment,location,managedLocation,owner_name,owner_type,parameters#" +
-      "string:string:string:string:string:string:string";
+      "db_name,comment,location,managedLocation,owner_name,owner_type,connector_name,remote_dbname,parameters#" +
+      "string:string:string:string:string:string:string,string,string";
 
   private final String resFile;
   private final String dbName;
diff --git a/ql/src/java/org/apache/hadoop/hive/ql/ddl/database/desc/DescDatabaseOperation.java b/ql/src/java/org/apache/hadoop/hive/ql/ddl/database/desc/DescDatabaseOperation.java
index f516228..0a19ccc 100644
--- a/ql/src/java/org/apache/hadoop/hive/ql/ddl/database/desc/DescDatabaseOperation.java
+++ b/ql/src/java/org/apache/hadoop/hive/ql/ddl/database/desc/DescDatabaseOperation.java
@@ -25,6 +25,7 @@ import java.util.TreeMap;
 import org.apache.hadoop.fs.Path;
 import org.apache.hadoop.hive.conf.HiveConf;
 import org.apache.hadoop.hive.metastore.api.Database;
+import org.apache.hadoop.hive.metastore.api.DatabaseType;
 import org.apache.hadoop.hive.ql.ErrorMsg;
 import org.apache.hadoop.hive.ql.ddl.DDLOperation;
 import org.apache.hadoop.hive.ql.ddl.DDLOperationContext;
@@ -52,14 +53,22 @@ public class DescDatabaseOperation extends DDLOperation<DescDatabaseDesc> {
         params = new TreeMap<>(database.getParameters());
       }
 
-      String location = database.getLocationUri();
-      if (HiveConf.getBoolVar(context.getConf(), HiveConf.ConfVars.HIVE_IN_TEST)) {
-        location = "location/in/test";
-      }
-
+      String location = "";
       DescDatabaseFormatter formatter = DescDatabaseFormatter.getFormatter(context.getConf());
-      formatter.showDatabaseDescription(outStream, database.getName(), database.getDescription(), location,
-          database.getManagedLocationUri(), database.getOwnerName(), database.getOwnerType(), params);
+      if (database.getType() == DatabaseType.NATIVE) {
+        location = database.getLocationUri();
+        if (HiveConf.getBoolVar(context.getConf(), HiveConf.ConfVars.HIVE_IN_TEST)) {
+          location = "location/in/test";
+        }
+        // database.setRemote_dbname("");
+        // database.setConnector_name("");
+
+        formatter.showDatabaseDescription(outStream, database.getName(), database.getDescription(), location,
+          database.getManagedLocationUri(), database.getOwnerName(), database.getOwnerType(), params, "", "");
+      } else {
+        formatter.showDatabaseDescription(outStream, database.getName(), database.getDescription(), "", "",
+          database.getOwnerName(), database.getOwnerType(), params, database.getConnector_name(), database.getRemote_dbname());
+      }
     } catch (Exception e) {
       throw new HiveException(e, ErrorMsg.GENERIC_ERROR);
     }
diff --git a/ql/src/java/org/apache/hadoop/hive/ql/hooks/Entity.java b/ql/src/java/org/apache/hadoop/hive/ql/hooks/Entity.java
index f36b0f9..254605e 100644
--- a/ql/src/java/org/apache/hadoop/hive/ql/hooks/Entity.java
+++ b/ql/src/java/org/apache/hadoop/hive/ql/hooks/Entity.java
@@ -24,6 +24,7 @@ import java.util.Map;
 
 import org.apache.hadoop.fs.Path;
 import org.apache.hadoop.hive.metastore.api.Database;
+import org.apache.hadoop.hive.metastore.api.DataConnector;
 import org.apache.hadoop.hive.ql.metadata.DummyPartition;
 import org.apache.hadoop.hive.ql.metadata.Partition;
 import org.apache.hadoop.hive.ql.metadata.Table;
@@ -41,7 +42,7 @@ public class Entity implements Serializable {
    * The type of the entity.
    */
   public static enum Type {
-    DATABASE, TABLE, PARTITION, DUMMYPARTITION, DFS_DIR, LOCAL_DIR, FUNCTION, SERVICE_NAME
+    DATABASE, TABLE, PARTITION, DUMMYPARTITION, DFS_DIR, LOCAL_DIR, FUNCTION, SERVICE_NAME, DATACONNECTOR
   }
 
   /**
@@ -50,6 +51,11 @@ public class Entity implements Serializable {
   private Database database;
 
   /**
+   * The dataconnector if this is a dataconnector.
+   */
+  private DataConnector connector;
+
+  /**
    * The type.
    */
   private Type typ;
@@ -112,6 +118,14 @@ public class Entity implements Serializable {
     this.database = database;
   }
 
+  public DataConnector getDataConnector() {
+    return connector;
+  }
+
+  public void setDataConnector(DataConnector connector) {
+    this.connector = connector;
+  }
+
   public Type getTyp() {
     return typ;
   }
@@ -197,6 +211,21 @@ public class Entity implements Serializable {
   }
 
   /**
+   * Constructor for a dataconnector.
+   *
+   * @param dataconnector
+   *          Database that is read or written to.
+   * @param complete
+   *          Means the dataconnector is target
+   */
+  public Entity(DataConnector dataconnector, boolean complete) {
+    this.connector = dataconnector;
+    this.typ = Type.DATACONNECTOR;
+    this.name = computeName();
+    this.complete = complete;
+  }
+
+  /**
    * Constructor for a entity with string object representation (eg SERVICE_NAME)
    *
    * @param name
@@ -384,6 +413,8 @@ public class Entity implements Serializable {
       return stringObject;
     case SERVICE_NAME:
       return stringObject;
+    case DATACONNECTOR:
+      return "connector:" + connector.getName();
     default:
       return d.toString();
     }
diff --git a/ql/src/java/org/apache/hadoop/hive/ql/hooks/ReadEntity.java b/ql/src/java/org/apache/hadoop/hive/ql/hooks/ReadEntity.java
index 2678def..df4fe3c 100644
--- a/ql/src/java/org/apache/hadoop/hive/ql/hooks/ReadEntity.java
+++ b/ql/src/java/org/apache/hadoop/hive/ql/hooks/ReadEntity.java
@@ -25,6 +25,7 @@ import java.util.List;
 import java.util.Set;
 
 import org.apache.hadoop.fs.Path;
+import org.apache.hadoop.hive.metastore.api.DataConnector;
 import org.apache.hadoop.hive.metastore.api.Database;
 import org.apache.hadoop.hive.ql.metadata.Partition;
 import org.apache.hadoop.hive.ql.metadata.Table;
@@ -82,6 +83,13 @@ public class ReadEntity extends Entity implements Serializable {
   }
 
   /**
+   * Constructor for a dataconnector.
+   */
+  public ReadEntity(DataConnector connector) {
+    super(connector, true);
+  }
+
+  /**
    * Constructor.
    *
    * @param t
diff --git a/ql/src/java/org/apache/hadoop/hive/ql/hooks/WriteEntity.java b/ql/src/java/org/apache/hadoop/hive/ql/hooks/WriteEntity.java
index 6ce74c8..f5a8d63 100644
--- a/ql/src/java/org/apache/hadoop/hive/ql/hooks/WriteEntity.java
+++ b/ql/src/java/org/apache/hadoop/hive/ql/hooks/WriteEntity.java
@@ -19,6 +19,7 @@
 package org.apache.hadoop.hive.ql.hooks;
 
 import org.apache.hadoop.fs.Path;
+import org.apache.hadoop.hive.metastore.api.DataConnector;
 import org.apache.hadoop.hive.metastore.api.Database;
 import org.apache.hadoop.hive.ql.ddl.table.AlterTableType;
 import org.apache.hadoop.hive.ql.metadata.DummyPartition;
@@ -65,6 +66,11 @@ public class WriteEntity extends Entity implements Serializable {
     setWriteTypeInternal(type);
   }
 
+  public WriteEntity(DataConnector connector, WriteType type) {
+    super(connector, true);
+    setWriteTypeInternal(type);
+  }
+
   /**
    * Constructor for a table.
    *
diff --git a/ql/src/java/org/apache/hadoop/hive/ql/metadata/Hive.java b/ql/src/java/org/apache/hadoop/hive/ql/metadata/Hive.java
index 8f40eab..c2c6d7f 100644
--- a/ql/src/java/org/apache/hadoop/hive/ql/metadata/Hive.java
+++ b/ql/src/java/org/apache/hadoop/hive/ql/metadata/Hive.java
@@ -128,6 +128,7 @@ import org.apache.hadoop.hive.metastore.api.CompactionResponse;
 import org.apache.hadoop.hive.metastore.api.CompactionType;
 import org.apache.hadoop.hive.metastore.api.CreationMetadata;
 import org.apache.hadoop.hive.metastore.api.Database;
+import org.apache.hadoop.hive.metastore.api.DataConnector;
 import org.apache.hadoop.hive.metastore.api.DefaultConstraintsRequest;
 import org.apache.hadoop.hive.metastore.api.EnvironmentContext;
 import org.apache.hadoop.hive.metastore.api.FieldSchema;
@@ -846,6 +847,110 @@ public class Hive {
     }
   }
 
+  /**
+   * Create a dataconnector
+   * @param connector
+   * @param ifNotExist if true, will ignore AlreadyExistsException exception
+   * @throws AlreadyExistsException
+   * @throws HiveException
+   */
+  public void createDataConnector(DataConnector connector, boolean ifNotExist)
+      throws AlreadyExistsException, HiveException {
+    try {
+      getMSC().createDataConnector(connector);
+    } catch (AlreadyExistsException e) {
+      if (!ifNotExist) {
+        throw e;
+      }
+    } catch (Exception e) {
+      throw new HiveException(e);
+    }
+  }
+
+  /**
+   * Create a DataConnector. Raise an error if a dataconnector with the same name already exists.
+   * @param connector
+   * @throws AlreadyExistsException
+   * @throws HiveException
+   */
+  public void createDataConnector(DataConnector connector) throws AlreadyExistsException, HiveException {
+    createDataConnector(connector, false);
+  }
+
+  /**
+   * Drop a dataconnector.
+   * @param name
+   * @throws NoSuchObjectException
+   * @throws HiveException
+   * @see org.apache.hadoop.hive.metastore.HiveMetaStoreClient#dropDataConnector(java.lang.String, boolean, boolean)
+   */
+  public void dropDataConnector(String name, boolean ifNotExists) throws HiveException, NoSuchObjectException {
+    dropDataConnector(name, ifNotExists, true);
+  }
+
+  /**
+   * Drop a dataconnector
+   * @param name
+   * @param checkReferences drop only if there are no dbs referencing this connector
+   * @throws HiveException
+   * @throws NoSuchObjectException
+   */
+  public void dropDataConnector(String name, boolean ifNotExists, boolean checkReferences)
+      throws HiveException, NoSuchObjectException {
+    try {
+      getMSC().dropDataConnector(name, ifNotExists, checkReferences);
+    } catch (NoSuchObjectException e) {
+      if (!ifNotExists)
+        throw e;
+    } catch (Exception e) {
+      throw new HiveException(e);
+    }
+  }
+
+  /**
+   * Get the dataconnector by name.
+   * @param dcName the name of the dataconnector.
+   * @return a DataConnector object if this dataconnector exists, null otherwise.
+   * @throws HiveException
+   */
+  public DataConnector getDataConnector(String dcName) throws HiveException {
+    try {
+      return getMSC().getDataConnector(dcName);
+    } catch (NoSuchObjectException e) {
+      return null;
+    } catch (Exception e) {
+      throw new HiveException(e);
+    }
+  }
+
+  /**
+   * Get all dataconnector names.
+   * @return List of all dataconnector names.
+   * @throws HiveException
+   */
+  public List<String> getAllDataConnectors() throws HiveException {
+    try {
+      return getMSC().getAllDataConnectors();
+    } catch (NoSuchObjectException e) {
+      return null;
+    } catch (Exception e) {
+      throw new HiveException(e);
+    }
+  }
+
+  public void alterDataConnector(String dcName, DataConnector connector)
+      throws HiveException {
+    try {
+      getMSC().alterDataConnector(dcName, connector);
+    } catch (MetaException e) {
+      throw new HiveException("Unable to alter dataconnector " + dcName + ". " + e.getMessage(), e);
+    } catch (NoSuchObjectException e) {
+      throw new HiveException("DataConnector " + dcName + " does not exists.", e);
+    } catch (TException e) {
+      throw new HiveException("Unable to alter dataconnector " + dcName + ". " + e.getMessage(), e);
+    }
+  }
+
   public void updateCreationMetadata(String dbName, String tableName, CreationMetadata cm)
       throws HiveException {
     try {
diff --git a/ql/src/java/org/apache/hadoop/hive/ql/metadata/formatting/JsonMetaDataFormatter.java b/ql/src/java/org/apache/hadoop/hive/ql/metadata/formatting/JsonMetaDataFormatter.java
index 9a245c9..6a5234a 100644
--- a/ql/src/java/org/apache/hadoop/hive/ql/metadata/formatting/JsonMetaDataFormatter.java
+++ b/ql/src/java/org/apache/hadoop/hive/ql/metadata/formatting/JsonMetaDataFormatter.java
@@ -66,6 +66,710 @@ public class JsonMetaDataFormatter implements MetaDataFormatter {
     asJson(out, mb.build());
   }
 
+  /**
+   * Show a list of tables.
+   */
+  @Override
+  public void showTables(DataOutputStream out, List<String> tables)
+      throws HiveException {
+    asJson(out, MapBuilder.create().put("tables", tables).build());
+  }
+
+  /**
+   * Show a list of tables including table types.
+   */
+  @Override
+  public void showTablesExtended(DataOutputStream out, List<Table> tables) throws HiveException {
+    if (tables.isEmpty()) {
+      return;
+    }
+
+    List<Map<String, Object>> tableDataList = new ArrayList<Map<String, Object>>();
+    for (Table table : tables) {
+      Map<String, Object> tableData = ImmutableMap.of(
+          "Table Name", table.getTableName(),
+          "Table Type", table.getTableType().toString());
+      tableDataList.add(tableData);
+    }
+    asJson(out, ImmutableMap.of("tables", tableDataList));
+  }
+
+  /**
+   * Show a list of materialized views.
+   */
+  @Override
+  public void showMaterializedViews(DataOutputStream out, List<Table> materializedViews) throws HiveException {
+    if (materializedViews.isEmpty()) {
+      return;
+    }
+
+    List<Map<String, Object>> materializedViewDataList = new ArrayList<Map<String, Object>>();
+    for (Table materializedView : materializedViews) {
+      // Currently, we only support manual refresh
+      // TODO: Update whenever we have other modes
+      String refreshMode = "Manual refresh";
+      String timeWindowString = materializedView.getProperty(MATERIALIZED_VIEW_REWRITING_TIME_WINDOW);
+      String mode;
+      if (!StringUtils.isEmpty(timeWindowString)) {
+        long time = HiveConf.toTime(timeWindowString,
+            HiveConf.getDefaultTimeUnit(HiveConf.ConfVars.HIVE_MATERIALIZED_VIEW_REWRITING_TIME_WINDOW),
+            TimeUnit.MINUTES);
+        if (time > 0L) {
+          mode = refreshMode + " (Valid for " + time + "min)";
+        } else if (time == 0L) {
+          mode = refreshMode + " (Valid until source tables modified)";
+        } else {
+          mode = refreshMode + " (Valid always)";
+        }
+      } else {
+        mode = refreshMode;
+      }
+
+      Map<String, Object> materializedViewData = ImmutableMap.of(
+          "MV Name", materializedView.getTableName(),
+          "Rewriting Enabled", materializedView.isRewriteEnabled() ? "Yes" : "No",
+          "Mode", mode);
+      materializedViewDataList.add(materializedViewData);
+    }
+    asJson(out, ImmutableMap.of("materialized views", materializedViewDataList));
+  }
+
+  /**
+   * Describe table.
+   */
+  @Override
+  public void describeTable(DataOutputStream out, String colPath, String tableName, Table tbl, Partition part,
+      List<FieldSchema> cols, boolean isFormatted, boolean isExt, boolean isOutputPadded,
+      List<ColumnStatisticsObj> colStats) throws HiveException {
+    MapBuilder builder = MapBuilder.create();
+    builder.put("columns", createColumnsInfo(cols, colStats));
+
+    if (isExt) {
+      if (part != null) {
+        builder.put("partitionInfo", part.getTPartition());
+      }
+      else {
+        builder.put("tableInfo", tbl.getTTable());
+      }
+      if (PrimaryKeyInfo.isPrimaryKeyInfoNotEmpty(tbl.getPrimaryKeyInfo())) {
+        builder.put("primaryKeyInfo", tbl.getPrimaryKeyInfo());
+      }
+      if (ForeignKeyInfo.isForeignKeyInfoNotEmpty(tbl.getForeignKeyInfo())) {
+        builder.put("foreignKeyInfo", tbl.getForeignKeyInfo());
+      }
+      if (UniqueConstraint.isUniqueConstraintNotEmpty(tbl.getUniqueKeyInfo())) {
+        builder.put("uniqueConstraintInfo", tbl.getUniqueKeyInfo());
+      }
+      if (NotNullConstraint.isNotNullConstraintNotEmpty(tbl.getNotNullConstraint())) {
+        builder.put("notNullConstraintInfo", tbl.getNotNullConstraint());
+      }
+      if (DefaultConstraint.isCheckConstraintNotEmpty(tbl.getDefaultConstraint())) {
+        builder.put("defaultConstraintInfo", tbl.getDefaultConstraint());
+      }
+      if (CheckConstraint.isCheckConstraintNotEmpty(tbl.getCheckConstraint())) {
+        builder.put("checkConstraintInfo", tbl.getCheckConstraint());
+      }
+      if (tbl.getStorageHandlerInfo() != null) {
+        builder.put("storageHandlerInfo", tbl.getStorageHandlerInfo().toString());
+      }
+    }
+
+    asJson(out, builder.build());
+  }
+
+  private List<Map<String, Object>> createColumnsInfo(List<FieldSchema> columns,
+      List<ColumnStatisticsObj> columnStatisticsList) {
+    ArrayList<Map<String, Object>> res = new ArrayList<Map<String, Object>>();
+    for (FieldSchema column : columns) {
+      ColumnStatisticsData statistics = getStatistics(column, columnStatisticsList);
+      res.add(createColumnInfo(column, statistics));
+    }
+    return res;
+  }
+
+  private ColumnStatisticsData getStatistics(FieldSchema column, List<ColumnStatisticsObj> columnStatisticsList) {
+    for (ColumnStatisticsObj columnStatistics : columnStatisticsList) {
+      if (column.getName().equals(columnStatistics.getColName())) {
+        return columnStatistics.getStatsData();
+      }
+    }
+
+    return null;
+  }
+
+  private Map<String, Object> createColumnInfo(FieldSchema column, ColumnStatisticsData statistics) {
+    Map<String, Object> result = MapBuilder.create()
+        .put(COLUMN_NAME, column.getName())
+        .put(COLUMN_TYPE, column.getType())
+        .put(COLUMN_COMMENT, column.getComment())
+        .build();
+
+    if (statistics != null) {
+      if (statistics.isSetBinaryStats()) {
+        if (statistics.getBinaryStats().isSetNumNulls()) {
+          result.put(COLUMN_NUM_NULLS, statistics.getBinaryStats().getNumNulls());
+        }
+        if (statistics.getBinaryStats().isSetAvgColLen()) {
+          result.put(COLUMN_AVG_LENGTH, statistics.getBinaryStats().getAvgColLen());
+        }
+        if (statistics.getBinaryStats().isSetMaxColLen()) {
+          result.put(COLUMN_MAX_LENGTH, statistics.getBinaryStats().getMaxColLen());
+        }
+      } else if (statistics.isSetStringStats()) {
+        if (statistics.getStringStats().isSetNumNulls()) {
+          result.put(COLUMN_NUM_NULLS, statistics.getStringStats().getNumNulls());
+        }
+        if (statistics.getStringStats().isSetNumDVs()) {
+          result.put(COLUMN_DISTINCT_COUNT, statistics.getStringStats().getNumDVs());
+        }
+        if (statistics.getStringStats().isSetAvgColLen()) {
+          result.put(COLUMN_AVG_LENGTH, statistics.getStringStats().getAvgColLen());
+        }
+        if (statistics.getStringStats().isSetMaxColLen()) {
+          result.put(COLUMN_MAX_LENGTH, statistics.getStringStats().getMaxColLen());
+        }
+      } else if (statistics.isSetBooleanStats()) {
+        if (statistics.getBooleanStats().isSetNumNulls()) {
+          result.put(COLUMN_NUM_NULLS, statistics.getBooleanStats().getNumNulls());
+        }
+        if (statistics.getBooleanStats().isSetNumTrues()) {
+          result.put(COLUMN_NUM_TRUES, statistics.getBooleanStats().getNumTrues());
+        }
+        if (statistics.getBooleanStats().isSetNumFalses()) {
+          result.put(COLUMN_NUM_FALSES, statistics.getBooleanStats().getNumFalses());
+        }
+      } else if (statistics.isSetDecimalStats()) {
+        if (statistics.getDecimalStats().isSetLowValue()) {
+          result.put(COLUMN_MIN, MetaDataFormatUtils.convertToString(statistics.getDecimalStats().getLowValue()));
+        }
+        if (statistics.getDecimalStats().isSetHighValue()) {
+          result.put(COLUMN_MAX, MetaDataFormatUtils.convertToString(statistics.getDecimalStats().getHighValue()));
+        }
+        if (statistics.getDecimalStats().isSetNumNulls()) {
+          result.put(COLUMN_NUM_NULLS, statistics.getDecimalStats().getNumNulls());
+        }
+        if (statistics.getDecimalStats().isSetNumDVs()) {
+          result.put(COLUMN_DISTINCT_COUNT, statistics.getDecimalStats().getNumDVs());
+        }
+      } else if (statistics.isSetDoubleStats()) {
+        if (statistics.getDoubleStats().isSetLowValue()) {
+          result.put(COLUMN_MIN, statistics.getDoubleStats().getLowValue());
+        }
+        if (statistics.getDoubleStats().isSetHighValue()) {
+          result.put(COLUMN_MAX, statistics.getDoubleStats().getHighValue());
+        }
+        if (statistics.getDoubleStats().isSetNumNulls()) {
+          result.put(COLUMN_NUM_NULLS, statistics.getDoubleStats().getNumNulls());
+        }
+        if (statistics.getDoubleStats().isSetNumDVs()) {
+          result.put(COLUMN_DISTINCT_COUNT, statistics.getDoubleStats().getNumDVs());
+        }
+      } else if (statistics.isSetLongStats()) {
+        if (statistics.getLongStats().isSetLowValue()) {
+          result.put(COLUMN_MIN, statistics.getLongStats().getLowValue());
+        }
+        if (statistics.getLongStats().isSetHighValue()) {
+          result.put(COLUMN_MAX, statistics.getLongStats().getHighValue());
+        }
+        if (statistics.getLongStats().isSetNumNulls()) {
+          result.put(COLUMN_NUM_NULLS, statistics.getLongStats().getNumNulls());
+        }
+        if (statistics.getLongStats().isSetNumDVs()) {
+          result.put(COLUMN_DISTINCT_COUNT, statistics.getLongStats().getNumDVs());
+        }
+      } else if (statistics.isSetDateStats()) {
+        if (statistics.getDateStats().isSetLowValue()) {
+          result.put(COLUMN_MIN, MetaDataFormatUtils.convertToString(statistics.getDateStats().getLowValue()));
+        }
+        if (statistics.getDateStats().isSetHighValue()) {
+          result.put(COLUMN_MAX, MetaDataFormatUtils.convertToString(statistics.getDateStats().getHighValue()));
+        }
+        if (statistics.getDateStats().isSetNumNulls()) {
+          result.put(COLUMN_NUM_NULLS, statistics.getDateStats().getNumNulls());
+        }
+        if (statistics.getDateStats().isSetNumDVs()) {
+          result.put(COLUMN_DISTINCT_COUNT, statistics.getDateStats().getNumDVs());
+        }
+      } else if (statistics.isSetTimestampStats()) {
+        if (statistics.getTimestampStats().isSetLowValue()) {
+          result.put(COLUMN_MIN, MetaDataFormatUtils.convertToString(statistics.getTimestampStats().getLowValue()));
+        }
+        if (statistics.getTimestampStats().isSetHighValue()) {
+          result.put(COLUMN_MAX, MetaDataFormatUtils.convertToString(statistics.getTimestampStats().getHighValue()));
+        }
+        if (statistics.getTimestampStats().isSetNumNulls()) {
+          result.put(COLUMN_NUM_NULLS, statistics.getTimestampStats().getNumNulls());
+        }
+        if (statistics.getTimestampStats().isSetNumDVs()) {
+          result.put(COLUMN_DISTINCT_COUNT, statistics.getTimestampStats().getNumDVs());
+        }
+      }
+    }
+
+    return result;
+  }
+
+  @Override
+  public void showTableStatus(DataOutputStream out, Hive db, HiveConf conf,
+      List<Table> tbls, Map<String, String> part, Partition par)
+          throws HiveException {
+    asJson(out, MapBuilder.create().put(
+        "tables", makeAllTableStatus(db, conf, tbls, part, par)).build());
+  }
+
+  private List<Map<String, Object>> makeAllTableStatus(Hive db, HiveConf conf,
+      List<Table> tbls, Map<String, String> part, Partition par)
+          throws HiveException {
+    try {
+      ArrayList<Map<String, Object>> res = new ArrayList<Map<String, Object>>();
+      for (Table tbl : tbls) {
+        res.add(makeOneTableStatus(tbl, db, conf, part, par));
+      }
+      return res;
+    } catch(IOException e) {
+      throw new HiveException(e);
+    }
+  }
+
+  private Map<String, Object> makeOneTableStatus(Table tbl, Hive db,
+      HiveConf conf, Map<String, String> part, Partition par)
+          throws HiveException, IOException {
+    String tblLoc = null;
+    String inputFormattCls = null;
+    String outputFormattCls = null;
+    if (part != null) {
+      if (par != null) {
+        if (par.getLocation() != null) {
+          tblLoc = par.getDataLocation().toString();
+        }
+        inputFormattCls = par.getInputFormatClass() == null ? null : par.getInputFormatClass().getName();
+        outputFormattCls = par.getOutputFormatClass() == null ? null : par.getOutputFormatClass().getName();
+      }
+    } else {
+      if (tbl.getPath() != null) {
+        tblLoc = tbl.getDataLocation().toString();
+      }
+      inputFormattCls = tbl.getInputFormatClass() == null ? null : tbl.getInputFormatClass().getName();
+      outputFormattCls = tbl.getOutputFormatClass() == null ? null : tbl.getOutputFormatClass().getName();
+    }
+
+    MapBuilder builder = MapBuilder.create();
+
+    builder.put("tableName", tbl.getTableName());
+    builder.put("ownerType", (tbl.getOwnerType() != null) ? tbl.getOwnerType().name() : "null");
+    builder.put("owner", tbl.getOwner());
+    builder.put("location", tblLoc);
+    builder.put("inputFormat", inputFormattCls);
+    builder.put("outputFormat", outputFormattCls);
+    builder.put("columns", createColumnsInfo(tbl.getCols(), new ArrayList<ColumnStatisticsObj>()));
+
+    builder.put("partitioned", tbl.isPartitioned());
+    if (tbl.isPartitioned()) {
+      builder.put("partitionColumns", createColumnsInfo(tbl.getPartCols(), new ArrayList<ColumnStatisticsObj>()));
+    }
+    if(tbl.getTableType() != TableType.VIRTUAL_VIEW) {
+      //tbl.getPath() is null for views
+      putFileSystemsStats(builder, makeTableStatusLocations(tbl, db, par),
+        conf, tbl.getPath());
+    }
+
+    return builder.build();
+  }
+
+  private List<Path> makeTableStatusLocations(Table tbl, Hive db, Partition par)
+      throws HiveException {
+    // output file system information
+    Path tblPath = tbl.getPath();
+    List<Path> locations = new ArrayList<Path>();
+    if (tbl.isPartitioned()) {
+      if (par == null) {
+        for (Partition curPart : db.getPartitions(tbl)) {
+          if (curPart.getLocation() != null) {
+            locations.add(new Path(curPart.getLocation()));
+          }
+        }
+      } else {
+        if (par.getLocation() != null) {
+          locations.add(new Path(par.getLocation()));
+        }
+      }
+    } else {
+      if (tblPath != null) {
+        locations.add(tblPath);
+      }
+    }
+
+    return locations;
+  }
+
+  /**
+   * @param tblPath not NULL
+   * @throws IOException
+   */
+  // Duplicates logic in TextMetaDataFormatter
+  private void putFileSystemsStats(MapBuilder builder, List<Path> locations,
+      HiveConf conf, Path tblPath)
+          throws IOException {
+    long totalFileSize = 0;
+    long maxFileSize = 0;
+    long minFileSize = Long.MAX_VALUE;
+    long lastAccessTime = 0;
+    long lastUpdateTime = 0;
+    int numOfFiles = 0;
+
+    boolean unknown = false;
+    FileSystem fs = tblPath.getFileSystem(conf);
+    // in case all files in locations do not exist
+    try {
+      FileStatus tmpStatus = fs.getFileStatus(tblPath);
+      lastAccessTime = tmpStatus.getAccessTime();
+      lastUpdateTime = tmpStatus.getModificationTime();
+    } catch (IOException e) {
+      LOG.warn(
+          "Cannot access File System. File System status will be unknown: ", e);
+      unknown = true;
+    }
+
+    if (!unknown) {
+      for (Path loc : locations) {
+        try {
+          FileStatus status = fs.getFileStatus(tblPath);
+          FileStatus[] files = fs.listStatus(loc);
+          long accessTime = status.getAccessTime();
+          long updateTime = status.getModificationTime();
+          // no matter loc is the table location or part location, it must be a
+          // directory.
+          if (!status.isDir()) {
+            continue;
+          }
+          if (accessTime > lastAccessTime) {
+            lastAccessTime = accessTime;
+          }
+          if (updateTime > lastUpdateTime) {
+            lastUpdateTime = updateTime;
+          }
+          for (FileStatus currentStatus : files) {
+            if (currentStatus.isDir()) {
+              continue;
+            }
+            numOfFiles++;
+            long fileLen = currentStatus.getLen();
+            totalFileSize += fileLen;
+            if (fileLen > maxFileSize) {
+              maxFileSize = fileLen;
+            }
+            if (fileLen < minFileSize) {
+              minFileSize = fileLen;
+            }
+            accessTime = currentStatus.getAccessTime();
+            updateTime = currentStatus.getModificationTime();
+            if (accessTime > lastAccessTime) {
+              lastAccessTime = accessTime;
+            }
+            if (updateTime > lastUpdateTime) {
+              lastUpdateTime = updateTime;
+            }
+          }
+        } catch (IOException e) {
+          // ignore
+        }
+      }
+    }
+
+    builder
+    .put("totalNumberFiles", numOfFiles, ! unknown)
+    .put("totalFileSize",    totalFileSize, ! unknown)
+    .put("maxFileSize",      maxFileSize, ! unknown)
+    .put("minFileSize",      numOfFiles > 0 ? minFileSize : 0, ! unknown)
+    .put("lastAccessTime",   lastAccessTime, ! (unknown  || lastAccessTime < 0))
+    .put("lastUpdateTime",   lastUpdateTime, ! unknown);
+  }
+
+  /**
+   * Show the table partitions.
+   */
+  @Override
+  public void showTablePartitions(DataOutputStream out, List<String> parts)
+      throws HiveException {
+    asJson(out, MapBuilder.create().put("partitions",
+        makeTablePartions(parts)).build());
+  }
+
+  private List<Map<String, Object>> makeTablePartions(List<String> parts) {
+    ArrayList<Map<String, Object>> res =
+        new ArrayList<Map<String, Object>>(parts.size());
+    for (String part : parts) {
+      res.add(makeOneTablePartition(part));
+    }
+    return res;
+  }
+
+  // This seems like a very wrong implementation.
+  private Map<String, Object> makeOneTablePartition(String partIdent) {
+    ArrayList<Map<String, Object>> res = new ArrayList<Map<String, Object>>();
+
+    ArrayList<String> names = new ArrayList<String>();
+    for (String part : StringUtils.split(partIdent, "/")) {
+      String name = part;
+      String val = null;
+      String[] kv = StringUtils.split(part, "=", 2);
+      if (kv != null) {
+        name = kv[0];
+        if (kv.length > 1) {
+          try {
+            val = URLDecoder.decode(kv[1], StandardCharsets.UTF_8.name());
+          } catch (UnsupportedEncodingException e) {
+          }
+        }
+      }
+      if (val != null) {
+        names.add(name + "='" + val + "'");
+      }
+      else {
+        names.add(name);
+      }
+
+      res.add(MapBuilder.create()
+          .put("columnName", name)
+          .put("columnValue", val)
+          .build());
+    }
+
+    return MapBuilder.create()
+        .put("name", StringUtils.join(names, ","))
+        .put("values", res)
+        .build();
+  }
+
+  /**
+   * Show a list of databases
+   */
+  @Override
+  public void showDatabases(DataOutputStream out, List<String> databases)
+      throws HiveException {
+    asJson(out, MapBuilder.create().put("databases", databases).build());
+  }
+
+  /**
+   * Show the description of a database
+   */
+  @Override
+  public void showDatabaseDescription(DataOutputStream out, String database, String comment,
+      String location, String managedLocation, String ownerName, PrincipalType ownerType, String connectorName, String remoteDbName, Map<String, String> params)
+          throws HiveException {
+    MapBuilder builder = MapBuilder.create().put("database", database).put("comment", comment)
+        .put("location", location);
+    if (null != managedLocation) {
+      builder.put("managedLocation", managedLocation);
+    }
+    if (null != ownerName) {
+      builder.put("owner", ownerName);
+    }
+    if (null != ownerType) {
+      builder.put("ownerType", ownerType.name());
+    }
+    if (null != connectorName) {
+      builder.put("connector_name", connectorName);
+    }
+    if (null != remoteDbName) {
+      builder.put("remote_dbname", remoteDbName);
+    }
+    if (null != params && !params.isEmpty()) {
+      builder.put("params", params);
+    }
+    asJson(out, builder.build());
+  }
+
+  /**
+   * Show a list of dataconnectors
+   */
+  @Override
+  public void showDataConnectors(DataOutputStream out, List<String> connectors)
+      throws HiveException {
+    asJson(out, MapBuilder.create().put("connectors", connectors).build());
+  }
+
+  /**
+   * Show the description of a dataconnector
+   */
+  @Override
+  public void showDataConnectorDescription(DataOutputStream out, String dcName, String type,
+      String url, String ownerName, PrincipalType ownerType, String comment, Map<String, String> params)
+          throws HiveException {
+    MapBuilder builder = MapBuilder.create().put("connector", dcName).put("type", type)
+        .put("url", url);
+    if (null != ownerName) {
+      builder.put("owner", ownerName);
+    }
+    if (null != ownerType) {
+      builder.put("ownerType", ownerType.name());
+    }
+    if (null != comment) {
+      builder.put("comment", comment);
+    }
+    if (null != params && !params.isEmpty()) {
+      builder.put("params", params);
+    }
+    asJson(out, builder.build());
+  }
+
+  @Override
+  public void showResourcePlans(DataOutputStream out, List<WMResourcePlan> resourcePlans)
+      throws HiveException {
+    JsonGenerator generator = null;
+    try {
+      generator = new ObjectMapper().getJsonFactory().createJsonGenerator(out);
+      generator.writeStartArray();
+      for (WMResourcePlan plan : resourcePlans) {
+        generator.writeStartObject();
+        generator.writeStringField("name", plan.getName());
+        generator.writeStringField("status", plan.getStatus().name());
+        if (plan.isSetQueryParallelism()) {
+          generator.writeNumberField("queryParallelism", plan.getQueryParallelism());
+        }
+        if (plan.isSetDefaultPoolPath()) {
+          generator.writeStringField("defaultPoolPath", plan.getDefaultPoolPath());
+        }
+        generator.writeEndObject();
+      }
+      generator.writeEndArray();
+      generator.close();
+    } catch (IOException e) {
+      throw new HiveException(e);
+    } finally {
+      if (generator != null) {
+        IOUtils.closeQuietly(generator);
+      }
+    }
+  }
+
+  /**
+   * Formats a resource plan into a json object, the structure is as follows:
+   * {
+   *    name: "<rp_name>",
+   *    parallelism: "<parallelism>",
+   *    defaultQueue: "<defaultQueue>",
+   *    pools : [
+   *      {
+   *        name: "<pool_name>",
+   *        parallelism: "<parallelism>",
+   *        schedulingPolicy: "<policy>",
+   *        triggers: [
+   *          { name: "<triggerName>", trigger: "<trigExpression>", action: "<actionExpr">}
+   *          ...
+   *        ]
+   *      }
+   *      ...
+   *    ]
+   * }
+   */
+  private static class JsonRPFormatter implements MetaDataFormatUtils.RPFormatter, Closeable {
+    private final JsonGenerator generator;
+
+    JsonRPFormatter(DataOutputStream out) throws IOException {
+      generator = new ObjectMapper().getJsonFactory().createJsonGenerator(out);
+    }
+
+    private void writeNameAndFields(String name, Object ... kvPairs) throws IOException {
+      if (kvPairs.length % 2 != 0) {
+        throw new IllegalArgumentException("Expected pairs");
+      }
+      generator.writeStringField("name", name);
+      for (int i = 0; i < kvPairs.length; i += 2) {
+        generator.writeObjectField(kvPairs[i].toString(), kvPairs[i + 1]);
+      }
+    }
+
+    @Override
+    public void startRP(String rpName, Object ... kvPairs) throws IOException {
+      generator.writeStartObject();
+      writeNameAndFields(rpName, kvPairs);
+    }
+
+    @Override
+    public void endRP() throws IOException {
+      // End the root rp object.
+      generator.writeEndObject();
+    }
+
+    @Override
+    public void startPools() throws IOException {
+      generator.writeArrayFieldStart("pools");
+    }
+
+    @Override
+    public void endPools() throws IOException {
+      // End the pools array.
+      generator.writeEndArray();
+    }
+
+    @Override
+    public void startPool(String poolName, Object ... kvPairs) throws IOException {
+      generator.writeStartObject();
+      writeNameAndFields(poolName, kvPairs);
+    }
+
+    @Override
+    public void startTriggers() throws IOException {
+      generator.writeArrayFieldStart("triggers");
+    }
+
+    @Override
+    public void endTriggers() throws IOException {
+      generator.writeEndArray();
+    }
+
+    @Override
+    public void startMappings() throws IOException {
+      generator.writeArrayFieldStart("mappings");
+    }
+
+    @Override
+    public void endMappings() throws IOException {
+      generator.writeEndArray();
+    }
+
+    @Override
+    public void endPool() throws IOException {
+      generator.writeEndObject();
+    }
+
+    @Override
+    public void formatTrigger(String triggerName, String actionExpression,
+        String triggerExpression) throws IOException {
+      generator.writeStartObject();
+      writeNameAndFields(triggerName, "action", actionExpression, "trigger", triggerExpression);
+      generator.writeEndObject();
+    }
+
+    @Override
+    public void formatMappingType(String type, List<String> names) throws IOException {
+      generator.writeStartObject();
+      generator.writeStringField("type", type);
+      generator.writeArrayFieldStart("values");
+      for (String name : names) {
+        generator.writeString(name);
+      }
+      generator.writeEndArray();
+      generator.writeEndObject();
+    }
+
+    @Override
+    public void close() throws IOException {
+      generator.close();
+    }
+  }
+
+  public void showFullResourcePlan(DataOutputStream out, WMFullResourcePlan resourcePlan)
+      throws HiveException {
+    try (JsonRPFormatter formatter = new JsonRPFormatter(out)) {
+      MetaDataFormatUtils.formatFullRP(formatter, resourcePlan);
+    } catch (IOException e) {
+      throw new HiveException(e);
+    }
+>>>>>>> External metastore: clean after rebase
+  }
+
   @Override
   public void showErrors(DataOutputStream out, WMValidateResourcePlanResponse response) throws HiveException {
     try (JsonGenerator generator = new ObjectMapper().getJsonFactory().createJsonGenerator(out)) {
diff --git a/ql/src/java/org/apache/hadoop/hive/ql/parse/BaseSemanticAnalyzer.java b/ql/src/java/org/apache/hadoop/hive/ql/parse/BaseSemanticAnalyzer.java
index 6769f49..3f58661 100644
--- a/ql/src/java/org/apache/hadoop/hive/ql/parse/BaseSemanticAnalyzer.java
+++ b/ql/src/java/org/apache/hadoop/hive/ql/parse/BaseSemanticAnalyzer.java
@@ -45,6 +45,7 @@ import org.apache.hadoop.hive.common.TableName;
 import org.apache.hadoop.hive.common.type.Date;
 import org.apache.hadoop.hive.conf.Constants;
 import org.apache.hadoop.hive.conf.HiveConf;
+import org.apache.hadoop.hive.metastore.api.DataConnector;
 import org.apache.hadoop.hive.metastore.api.Database;
 import org.apache.hadoop.hive.metastore.api.FieldSchema;
 import org.apache.hadoop.hive.metastore.api.Order;
@@ -1719,6 +1720,23 @@ public abstract class BaseSemanticAnalyzer {
     return database;
   }
 
+  protected DataConnector getDataConnector(String dbName) throws SemanticException {
+    return getDataConnector(dbName, true);
+  }
+
+  protected DataConnector getDataConnector(String dcName, boolean throwException) throws SemanticException {
+    DataConnector connector;
+    try {
+      connector = db.getDataConnector(dcName);
+    } catch (Exception e) {
+      throw new SemanticException(e.getMessage(), e);
+    }
+    if (connector == null && throwException) {
+      throw new SemanticException(ErrorMsg.DATACONNECTOR_NOT_EXISTS.getMsg(dcName));
+    }
+    return connector;
+  }
+
   protected Table getTable(TableName tn) throws SemanticException {
     return getTable(tn, true);
   }
diff --git a/ql/src/java/org/apache/hadoop/hive/ql/plan/HiveOperation.java b/ql/src/java/org/apache/hadoop/hive/ql/plan/HiveOperation.java
index 7bbbf2b..c25b189 100644
--- a/ql/src/java/org/apache/hadoop/hive/ql/plan/HiveOperation.java
+++ b/ql/src/java/org/apache/hadoop/hive/ql/plan/HiveOperation.java
@@ -33,7 +33,9 @@ public enum HiveOperation {
   REPLLOAD("REPLLOAD", HiveParser.TOK_REPL_LOAD, null, new Privilege[]{Privilege.ALL}),
   REPLSTATUS("REPLSTATUS", HiveParser.TOK_REPL_STATUS, new Privilege[]{Privilege.SELECT}, null),
   CREATEDATABASE("CREATEDATABASE", HiveParser.TOK_CREATEDATABASE, null, new Privilege[]{Privilege.CREATE}),
+  CREATEDATACONNECTOR("CREATEDATACONNECTOR", HiveParser.TOK_CREATEDATACONNECTOR, null, new Privilege[]{Privilege.CREATE}),
   DROPDATABASE("DROPDATABASE", HiveParser.TOK_DROPDATABASE, null, new Privilege[]{Privilege.DROP}),
+  DROPDATACONNECTOR("DROPDATACONNECTOR", HiveParser.TOK_DROPDATACONNECTOR, null, new Privilege[]{Privilege.DROP}),
   SWITCHDATABASE("SWITCHDATABASE", HiveParser.TOK_SWITCHDATABASE, null, null, true, false),
   LOCKDB("LOCKDATABASE", HiveParser.TOK_LOCKDB, new Privilege[]{Privilege.LOCK}, null),
   UNLOCKDB("UNLOCKDATABASE", HiveParser.TOK_UNLOCKDB, new Privilege[]{Privilege.LOCK}, null),
@@ -93,6 +95,8 @@ public enum HiveOperation {
       new Privilege[]{Privilege.ALTER_METADATA}, null),
   SHOWDATABASES("SHOWDATABASES", HiveParser.TOK_SHOWDATABASES, new Privilege[]{Privilege.SHOW_DATABASE}, null, true,
       false),
+  SHOWDATACONNECTORS("SHOWDATACONNECTORS", HiveParser.TOK_SHOWDATACONNECTORS, new Privilege[]{Privilege.SHOW_DATABASE}, null, true,
+      false),
   SHOWTABLES("SHOWTABLES", HiveParser.TOK_SHOWTABLES, null, null, true, false),
   SHOWCOLUMNS("SHOWCOLUMNS", HiveParser.TOK_SHOWCOLUMNS, null, null, true, false),
   SHOW_TABLESTATUS("SHOW_TABLESTATUS", HiveParser.TOK_SHOW_TABLESTATUS, null, null, true, false),
@@ -158,6 +162,10 @@ public enum HiveOperation {
       new int[] {HiveParser.TOK_ALTERDATABASE_LOCATION, HiveParser.TOK_ALTERDATABASE_MANAGEDLOCATION},
       new Privilege[]{Privilege.ALTER_DATA}, null),
   DESCDATABASE("DESCDATABASE", HiveParser.TOK_DESCDATABASE, null, null),
+  ALTERDATACONNECTOR("ALTERDATACONNECTOR", HiveParser.TOK_ALTERDATACONNECTOR_PROPERTIES, null, null),
+  ALTERDATACONNECTOR_OWNER("ALTERDATABASE_OWNER", HiveParser.TOK_ALTERDATACONNECTOR_OWNER, null, null),
+  ALTERDATACONNECTOR_URL("ALTERDATACONNECTOR_", HiveParser.TOK_ALTERDATACONNECTOR_URL, null, null),
+  DESCDATACONNECTOR("DESCDATACONNECTOR", HiveParser.TOK_DESCDATACONNECTOR, null, null),
   ALTERTABLE_MERGEFILES("ALTER_TABLE_MERGE", HiveParser.TOK_ALTERTABLE_MERGEFILES, new Privilege[] {Privilege.SELECT},
       new Privilege[] {Privilege.ALTER_DATA}),
   ALTERPARTITION_MERGEFILES("ALTER_PARTITION_MERGE", HiveParser.TOK_ALTERPARTITION_MERGEFILES,
diff --git a/ql/src/java/org/apache/hadoop/hive/ql/security/authorization/Privilege.java b/ql/src/java/org/apache/hadoop/hive/ql/security/authorization/Privilege.java
index a8afcd6..9ce8b07 100644
--- a/ql/src/java/org/apache/hadoop/hive/ql/security/authorization/Privilege.java
+++ b/ql/src/java/org/apache/hadoop/hive/ql/security/authorization/Privilege.java
@@ -120,4 +120,7 @@ public class Privilege {
   public static Privilege SHOW_DATABASE = new Privilege(PrivilegeType.SHOW_DATABASE,
       EnumSet.of(PrivilegeScope.USER_LEVEL_SCOPE));
 
+  public static Privilege SHOW_DATACONNECTOR = new Privilege(PrivilegeType.SHOW_DATABASE,
+      EnumSet.of(PrivilegeScope.USER_LEVEL_SCOPE));
+
 }
diff --git a/standalone-metastore/metastore-common/pom.xml b/standalone-metastore/metastore-common/pom.xml
index 4119a10..4af0495 100644
--- a/standalone-metastore/metastore-common/pom.xml
+++ b/standalone-metastore/metastore-common/pom.xml
@@ -589,6 +589,7 @@
         <artifactId>apache-rat-plugin</artifactId>
         <configuration>
           <excludes>
+            <exclude>*.patch</exclude>
             <exclude>binary-package-licenses/**</exclude>
             <exclude>DEV-README</exclude>
             <exclude>**/src/main/sql/**</exclude>
diff --git a/standalone-metastore/metastore-common/src/gen/thrift/gen-cpp/ThriftHiveMetastore.cpp b/standalone-metastore/metastore-common/src/gen/thrift/gen-cpp/ThriftHiveMetastore.cpp
index 1544437..4cd965e 100644
--- a/standalone-metastore/metastore-common/src/gen/thrift/gen-cpp/ThriftHiveMetastore.cpp
+++ b/standalone-metastore/metastore-common/src/gen/thrift/gen-cpp/ThriftHiveMetastore.cpp
@@ -2561,6 +2561,7 @@ uint32_t ThriftHiveMetastore_get_databases_result::read(::apache::thrift::protoc
         if (ftype == ::apache::thrift::protocol::T_LIST) {
           {
             this->success.clear();
+<<<<<<< HEAD
             uint32_t _size1651;
             ::apache::thrift::protocol::TType _etype1654;
             xfer += iprot->readListBegin(_etype1654, _size1651);
@@ -2569,6 +2570,16 @@ uint32_t ThriftHiveMetastore_get_databases_result::read(::apache::thrift::protoc
             for (_i1655 = 0; _i1655 < _size1651; ++_i1655)
             {
               xfer += iprot->readString(this->success[_i1655]);
+=======
+            uint32_t _size1668;
+            ::apache::thrift::protocol::TType _etype1671;
+            xfer += iprot->readListBegin(_etype1671, _size1668);
+            this->success.resize(_size1668);
+            uint32_t _i1672;
+            for (_i1672 = 0; _i1672 < _size1668; ++_i1672)
+            {
+              xfer += iprot->readString(this->success[_i1672]);
+>>>>>>> External metastore: clean after rebase
             }
             xfer += iprot->readListEnd();
           }
@@ -2607,10 +2618,17 @@ uint32_t ThriftHiveMetastore_get_databases_result::write(::apache::thrift::proto
     xfer += oprot->writeFieldBegin("success", ::apache::thrift::protocol::T_LIST, 0);
     {
       xfer += oprot->writeListBegin(::apache::thrift::protocol::T_STRING, static_cast<uint32_t>(this->success.size()));
+<<<<<<< HEAD
       std::vector<std::string> ::const_iterator _iter1656;
       for (_iter1656 = this->success.begin(); _iter1656 != this->success.end(); ++_iter1656)
       {
         xfer += oprot->writeString((*_iter1656));
+=======
+      std::vector<std::string> ::const_iterator _iter1673;
+      for (_iter1673 = this->success.begin(); _iter1673 != this->success.end(); ++_iter1673)
+      {
+        xfer += oprot->writeString((*_iter1673));
+>>>>>>> External metastore: clean after rebase
       }
       xfer += oprot->writeListEnd();
     }
@@ -2655,6 +2673,7 @@ uint32_t ThriftHiveMetastore_get_databases_presult::read(::apache::thrift::proto
         if (ftype == ::apache::thrift::protocol::T_LIST) {
           {
             (*(this->success)).clear();
+<<<<<<< HEAD
             uint32_t _size1657;
             ::apache::thrift::protocol::TType _etype1660;
             xfer += iprot->readListBegin(_etype1660, _size1657);
@@ -2663,6 +2682,16 @@ uint32_t ThriftHiveMetastore_get_databases_presult::read(::apache::thrift::proto
             for (_i1661 = 0; _i1661 < _size1657; ++_i1661)
             {
               xfer += iprot->readString((*(this->success))[_i1661]);
+=======
+            uint32_t _size1674;
+            ::apache::thrift::protocol::TType _etype1677;
+            xfer += iprot->readListBegin(_etype1677, _size1674);
+            (*(this->success)).resize(_size1674);
+            uint32_t _i1678;
+            for (_i1678 = 0; _i1678 < _size1674; ++_i1678)
+            {
+              xfer += iprot->readString((*(this->success))[_i1678]);
+>>>>>>> External metastore: clean after rebase
             }
             xfer += iprot->readListEnd();
           }
@@ -2779,6 +2808,7 @@ uint32_t ThriftHiveMetastore_get_all_databases_result::read(::apache::thrift::pr
         if (ftype == ::apache::thrift::protocol::T_LIST) {
           {
             this->success.clear();
+<<<<<<< HEAD
             uint32_t _size1662;
             ::apache::thrift::protocol::TType _etype1665;
             xfer += iprot->readListBegin(_etype1665, _size1662);
@@ -2787,6 +2817,16 @@ uint32_t ThriftHiveMetastore_get_all_databases_result::read(::apache::thrift::pr
             for (_i1666 = 0; _i1666 < _size1662; ++_i1666)
             {
               xfer += iprot->readString(this->success[_i1666]);
+=======
+            uint32_t _size1679;
+            ::apache::thrift::protocol::TType _etype1682;
+            xfer += iprot->readListBegin(_etype1682, _size1679);
+            this->success.resize(_size1679);
+            uint32_t _i1683;
+            for (_i1683 = 0; _i1683 < _size1679; ++_i1683)
+            {
+              xfer += iprot->readString(this->success[_i1683]);
+>>>>>>> External metastore: clean after rebase
             }
             xfer += iprot->readListEnd();
           }
@@ -2825,10 +2865,17 @@ uint32_t ThriftHiveMetastore_get_all_databases_result::write(::apache::thrift::p
     xfer += oprot->writeFieldBegin("success", ::apache::thrift::protocol::T_LIST, 0);
     {
       xfer += oprot->writeListBegin(::apache::thrift::protocol::T_STRING, static_cast<uint32_t>(this->success.size()));
+<<<<<<< HEAD
       std::vector<std::string> ::const_iterator _iter1667;
       for (_iter1667 = this->success.begin(); _iter1667 != this->success.end(); ++_iter1667)
       {
         xfer += oprot->writeString((*_iter1667));
+=======
+      std::vector<std::string> ::const_iterator _iter1684;
+      for (_iter1684 = this->success.begin(); _iter1684 != this->success.end(); ++_iter1684)
+      {
+        xfer += oprot->writeString((*_iter1684));
+>>>>>>> External metastore: clean after rebase
       }
       xfer += oprot->writeListEnd();
     }
@@ -2873,6 +2920,7 @@ uint32_t ThriftHiveMetastore_get_all_databases_presult::read(::apache::thrift::p
         if (ftype == ::apache::thrift::protocol::T_LIST) {
           {
             (*(this->success)).clear();
+<<<<<<< HEAD
             uint32_t _size1668;
             ::apache::thrift::protocol::TType _etype1671;
             xfer += iprot->readListBegin(_etype1671, _size1668);
@@ -2881,6 +2929,16 @@ uint32_t ThriftHiveMetastore_get_all_databases_presult::read(::apache::thrift::p
             for (_i1672 = 0; _i1672 < _size1668; ++_i1672)
             {
               xfer += iprot->readString((*(this->success))[_i1672]);
+=======
+            uint32_t _size1685;
+            ::apache::thrift::protocol::TType _etype1688;
+            xfer += iprot->readListBegin(_etype1688, _size1685);
+            (*(this->success)).resize(_size1685);
+            uint32_t _i1689;
+            for (_i1689 = 0; _i1689 < _size1685; ++_i1689)
+            {
+              xfer += iprot->readString((*(this->success))[_i1689]);
+>>>>>>> External metastore: clean after rebase
             }
             xfer += iprot->readListEnd();
           }
@@ -3133,11 +3191,11 @@ uint32_t ThriftHiveMetastore_alter_database_presult::read(::apache::thrift::prot
 }
 
 
-ThriftHiveMetastore_get_type_args::~ThriftHiveMetastore_get_type_args() noexcept {
+ThriftHiveMetastore_create_dataconnector_args::~ThriftHiveMetastore_create_dataconnector_args() noexcept {
 }
 
 
-uint32_t ThriftHiveMetastore_get_type_args::read(::apache::thrift::protocol::TProtocol* iprot) {
+uint32_t ThriftHiveMetastore_create_dataconnector_args::read(::apache::thrift::protocol::TProtocol* iprot) {
 
   ::apache::thrift::protocol::TInputRecursionTracker tracker(*iprot);
   uint32_t xfer = 0;
@@ -3159,104 +3217,9 @@ uint32_t ThriftHiveMetastore_get_type_args::read(::apache::thrift::protocol::TPr
     switch (fid)
     {
       case 1:
-        if (ftype == ::apache::thrift::protocol::T_STRING) {
-          xfer += iprot->readString(this->name);
-          this->__isset.name = true;
-        } else {
-          xfer += iprot->skip(ftype);
-        }
-        break;
-      default:
-        xfer += iprot->skip(ftype);
-        break;
-    }
-    xfer += iprot->readFieldEnd();
-  }
-
-  xfer += iprot->readStructEnd();
-
-  return xfer;
-}
-
-uint32_t ThriftHiveMetastore_get_type_args::write(::apache::thrift::protocol::TProtocol* oprot) const {
-  uint32_t xfer = 0;
-  ::apache::thrift::protocol::TOutputRecursionTracker tracker(*oprot);
-  xfer += oprot->writeStructBegin("ThriftHiveMetastore_get_type_args");
-
-  xfer += oprot->writeFieldBegin("name", ::apache::thrift::protocol::T_STRING, 1);
-  xfer += oprot->writeString(this->name);
-  xfer += oprot->writeFieldEnd();
-
-  xfer += oprot->writeFieldStop();
-  xfer += oprot->writeStructEnd();
-  return xfer;
-}
-
-
-ThriftHiveMetastore_get_type_pargs::~ThriftHiveMetastore_get_type_pargs() noexcept {
-}
-
-
-uint32_t ThriftHiveMetastore_get_type_pargs::write(::apache::thrift::protocol::TProtocol* oprot) const {
-  uint32_t xfer = 0;
-  ::apache::thrift::protocol::TOutputRecursionTracker tracker(*oprot);
-  xfer += oprot->writeStructBegin("ThriftHiveMetastore_get_type_pargs");
-
-  xfer += oprot->writeFieldBegin("name", ::apache::thrift::protocol::T_STRING, 1);
-  xfer += oprot->writeString((*(this->name)));
-  xfer += oprot->writeFieldEnd();
-
-  xfer += oprot->writeFieldStop();
-  xfer += oprot->writeStructEnd();
-  return xfer;
-}
-
-
-ThriftHiveMetastore_get_type_result::~ThriftHiveMetastore_get_type_result() noexcept {
-}
-
-
-uint32_t ThriftHiveMetastore_get_type_result::read(::apache::thrift::protocol::TProtocol* iprot) {
-
-  ::apache::thrift::protocol::TInputRecursionTracker tracker(*iprot);
-  uint32_t xfer = 0;
-  std::string fname;
-  ::apache::thrift::protocol::TType ftype;
-  int16_t fid;
-
-  xfer += iprot->readStructBegin(fname);
-
-  using ::apache::thrift::protocol::TProtocolException;
-
-
-  while (true)
-  {
-    xfer += iprot->readFieldBegin(fname, ftype, fid);
-    if (ftype == ::apache::thrift::protocol::T_STOP) {
-      break;
-    }
-    switch (fid)
-    {
-      case 0:
         if (ftype == ::apache::thrift::protocol::T_STRUCT) {
-          xfer += this->success.read(iprot);
-          this->__isset.success = true;
-        } else {
-          xfer += iprot->skip(ftype);
-        }
-        break;
-      case 1:
-        if (ftype == ::apache::thrift::protocol::T_STRUCT) {
-          xfer += this->o1.read(iprot);
-          this->__isset.o1 = true;
-        } else {
-          xfer += iprot->skip(ftype);
-        }
-        break;
-      case 2:
-        if (ftype == ::apache::thrift::protocol::T_STRUCT) {
-          xfer += this->o2.read(iprot);
-          this->__isset.o2 = true;
+          xfer += this->connector.read(iprot);
+          this->__isset.connector = true;
         } else {
           xfer += iprot->skip(ftype);
         }
@@ -3273,145 +3236,13 @@ uint32_t ThriftHiveMetastore_get_type_result::read(::apache::thrift::protocol::T
   return xfer;
 }
 
-uint32_t ThriftHiveMetastore_get_type_result::write(::apache::thrift::protocol::TProtocol* oprot) const {
-
-  uint32_t xfer = 0;
-
-  xfer += oprot->writeStructBegin("ThriftHiveMetastore_get_type_result");
-
-  if (this->__isset.success) {
-    xfer += oprot->writeFieldBegin("success", ::apache::thrift::protocol::T_STRUCT, 0);
-    xfer += this->success.write(oprot);
-    xfer += oprot->writeFieldEnd();
-  } else if (this->__isset.o1) {
-    xfer += oprot->writeFieldBegin("o1", ::apache::thrift::protocol::T_STRUCT, 1);
-    xfer += this->o1.write(oprot);
-    xfer += oprot->writeFieldEnd();
-  } else if (this->__isset.o2) {
-    xfer += oprot->writeFieldBegin("o2", ::apache::thrift::protocol::T_STRUCT, 2);
-    xfer += this->o2.write(oprot);
-    xfer += oprot->writeFieldEnd();
-  }
-  xfer += oprot->writeFieldStop();
-  xfer += oprot->writeStructEnd();
-  return xfer;
-}
-
-
-ThriftHiveMetastore_get_type_presult::~ThriftHiveMetastore_get_type_presult() noexcept {
-}
-
-
-uint32_t ThriftHiveMetastore_get_type_presult::read(::apache::thrift::protocol::TProtocol* iprot) {
-
-  ::apache::thrift::protocol::TInputRecursionTracker tracker(*iprot);
-  uint32_t xfer = 0;
-  std::string fname;
-  ::apache::thrift::protocol::TType ftype;
-  int16_t fid;
-
-  xfer += iprot->readStructBegin(fname);
-
-  using ::apache::thrift::protocol::TProtocolException;
-
-
-  while (true)
-  {
-    xfer += iprot->readFieldBegin(fname, ftype, fid);
-    if (ftype == ::apache::thrift::protocol::T_STOP) {
-      break;
-    }
-    switch (fid)
-    {
-      case 0:
-        if (ftype == ::apache::thrift::protocol::T_STRUCT) {
-          xfer += (*(this->success)).read(iprot);
-          this->__isset.success = true;
-        } else {
-          xfer += iprot->skip(ftype);
-        }
-        break;
-      case 1:
-        if (ftype == ::apache::thrift::protocol::T_STRUCT) {
-          xfer += this->o1.read(iprot);
-          this->__isset.o1 = true;
-        } else {
-          xfer += iprot->skip(ftype);
-        }
-        break;
-      case 2:
-        if (ftype == ::apache::thrift::protocol::T_STRUCT) {
-          xfer += this->o2.read(iprot);
-          this->__isset.o2 = true;
-        } else {
-          xfer += iprot->skip(ftype);
-        }
-        break;
-      default:
-        xfer += iprot->skip(ftype);
-        break;
-    }
-    xfer += iprot->readFieldEnd();
-  }
-
-  xfer += iprot->readStructEnd();
-
-  return xfer;
-}
-
-
-ThriftHiveMetastore_create_type_args::~ThriftHiveMetastore_create_type_args() noexcept {
-}
-
-
-uint32_t ThriftHiveMetastore_create_type_args::read(::apache::thrift::protocol::TProtocol* iprot) {
-
-  ::apache::thrift::protocol::TInputRecursionTracker tracker(*iprot);
-  uint32_t xfer = 0;
-  std::string fname;
-  ::apache::thrift::protocol::TType ftype;
-  int16_t fid;
-
-  xfer += iprot->readStructBegin(fname);
-
-  using ::apache::thrift::protocol::TProtocolException;
-
-
-  while (true)
-  {
-    xfer += iprot->readFieldBegin(fname, ftype, fid);
-    if (ftype == ::apache::thrift::protocol::T_STOP) {
-      break;
-    }
-    switch (fid)
-    {
-      case 1:
-        if (ftype == ::apache::thrift::protocol::T_STRUCT) {
-          xfer += this->type.read(iprot);
-          this->__isset.type = true;
-        } else {
-          xfer += iprot->skip(ftype);
-        }
-        break;
-      default:
-        xfer += iprot->skip(ftype);
-        break;
-    }
-    xfer += iprot->readFieldEnd();
-  }
-
-  xfer += iprot->readStructEnd();
-
-  return xfer;
-}
-
-uint32_t ThriftHiveMetastore_create_type_args::write(::apache::thrift::protocol::TProtocol* oprot) const {
+uint32_t ThriftHiveMetastore_create_dataconnector_args::write(::apache::thrift::protocol::TProtocol* oprot) const {
   uint32_t xfer = 0;
   ::apache::thrift::protocol::TOutputRecursionTracker tracker(*oprot);
-  xfer += oprot->writeStructBegin("ThriftHiveMetastore_create_type_args");
+  xfer += oprot->writeStructBegin("ThriftHiveMetastore_create_dataconnector_args");
 
-  xfer += oprot->writeFieldBegin("type", ::apache::thrift::protocol::T_STRUCT, 1);
-  xfer += this->type.write(oprot);
+  xfer += oprot->writeFieldBegin("connector", ::apache::thrift::protocol::T_STRUCT, 1);
+  xfer += this->connector.write(oprot);
   xfer += oprot->writeFieldEnd();
 
   xfer += oprot->writeFieldStop();
@@ -3420,17 +3251,17 @@ uint32_t ThriftHiveMetastore_create_type_args::write(::apache::thrift::protocol:
 }
 
 
-ThriftHiveMetastore_create_type_pargs::~ThriftHiveMetastore_create_type_pargs() noexcept {
+ThriftHiveMetastore_create_dataconnector_pargs::~ThriftHiveMetastore_create_dataconnector_pargs() noexcept {
 }
 
 
-uint32_t ThriftHiveMetastore_create_type_pargs::write(::apache::thrift::protocol::TProtocol* oprot) const {
+uint32_t ThriftHiveMetastore_create_dataconnector_pargs::write(::apache::thrift::protocol::TProtocol* oprot) const {
   uint32_t xfer = 0;
   ::apache::thrift::protocol::TOutputRecursionTracker tracker(*oprot);
-  xfer += oprot->writeStructBegin("ThriftHiveMetastore_create_type_pargs");
+  xfer += oprot->writeStructBegin("ThriftHiveMetastore_create_dataconnector_pargs");
 
-  xfer += oprot->writeFieldBegin("type", ::apache::thrift::protocol::T_STRUCT, 1);
-  xfer += (*(this->type)).write(oprot);
+  xfer += oprot->writeFieldBegin("connector", ::apache::thrift::protocol::T_STRUCT, 1);
+  xfer += (*(this->connector)).write(oprot);
   xfer += oprot->writeFieldEnd();
 
   xfer += oprot->writeFieldStop();
@@ -3439,11 +3270,11 @@ uint32_t ThriftHiveMetastore_create_type_pargs::write(::apache::thrift::protocol
 }
 
 
-ThriftHiveMetastore_create_type_result::~ThriftHiveMetastore_create_type_result() noexcept {
+ThriftHiveMetastore_create_dataconnector_result::~ThriftHiveMetastore_create_dataconnector_result() noexcept {
 }
 
 
-uint32_t ThriftHiveMetastore_create_type_result::read(::apache::thrift::protocol::TProtocol* iprot) {
+uint32_t ThriftHiveMetastore_create_dataconnector_result::read(::apache::thrift::protocol::TProtocol* iprot) {
 
   ::apache::thrift::protocol::TInputRecursionTracker tracker(*iprot);
   uint32_t xfer = 0;
@@ -3464,14 +3295,6 @@ uint32_t ThriftHiveMetastore_create_type_result::read(::apache::thrift::protocol
     }
     switch (fid)
     {
-      case 0:
-        if (ftype == ::apache::thrift::protocol::T_BOOL) {
-          xfer += iprot->readBool(this->success);
-          this->__isset.success = true;
-        } else {
-          xfer += iprot->skip(ftype);
-        }
-        break;
       case 1:
         if (ftype == ::apache::thrift::protocol::T_STRUCT) {
           xfer += this->o1.read(iprot);
@@ -3508,17 +3331,13 @@ uint32_t ThriftHiveMetastore_create_type_result::read(::apache::thrift::protocol
   return xfer;
 }
 
-uint32_t ThriftHiveMetastore_create_type_result::write(::apache::thrift::protocol::TProtocol* oprot) const {
+uint32_t ThriftHiveMetastore_create_dataconnector_result::write(::apache::thrift::protocol::TProtocol* oprot) const {
 
   uint32_t xfer = 0;
 
-  xfer += oprot->writeStructBegin("ThriftHiveMetastore_create_type_result");
+  xfer += oprot->writeStructBegin("ThriftHiveMetastore_create_dataconnector_result");
 
-  if (this->__isset.success) {
-    xfer += oprot->writeFieldBegin("success", ::apache::thrift::protocol::T_BOOL, 0);
-    xfer += oprot->writeBool(this->success);
-    xfer += oprot->writeFieldEnd();
-  } else if (this->__isset.o1) {
+  if (this->__isset.o1) {
     xfer += oprot->writeFieldBegin("o1", ::apache::thrift::protocol::T_STRUCT, 1);
     xfer += this->o1.write(oprot);
     xfer += oprot->writeFieldEnd();
@@ -3537,11 +3356,11 @@ uint32_t ThriftHiveMetastore_create_type_result::write(::apache::thrift::protoco
 }
 
 
-ThriftHiveMetastore_create_type_presult::~ThriftHiveMetastore_create_type_presult() noexcept {
+ThriftHiveMetastore_create_dataconnector_presult::~ThriftHiveMetastore_create_dataconnector_presult() noexcept {
 }
 
 
-uint32_t ThriftHiveMetastore_create_type_presult::read(::apache::thrift::protocol::TProtocol* iprot) {
+uint32_t ThriftHiveMetastore_create_dataconnector_presult::read(::apache::thrift::protocol::TProtocol* iprot) {
 
   ::apache::thrift::protocol::TInputRecursionTracker tracker(*iprot);
   uint32_t xfer = 0;
@@ -3562,14 +3381,6 @@ uint32_t ThriftHiveMetastore_create_type_presult::read(::apache::thrift::protoco
     }
     switch (fid)
     {
-      case 0:
-        if (ftype == ::apache::thrift::protocol::T_BOOL) {
-          xfer += iprot->readBool((*(this->success)));
-          this->__isset.success = true;
-        } else {
-          xfer += iprot->skip(ftype);
-        }
-        break;
       case 1:
         if (ftype == ::apache::thrift::protocol::T_STRUCT) {
           xfer += this->o1.read(iprot);
@@ -3607,11 +3418,11 @@ uint32_t ThriftHiveMetastore_create_type_presult::read(::apache::thrift::protoco
 }
 
 
-ThriftHiveMetastore_drop_type_args::~ThriftHiveMetastore_drop_type_args() noexcept {
+ThriftHiveMetastore_get_dataconnector_req_args::~ThriftHiveMetastore_get_dataconnector_req_args() noexcept {
 }
 
 
-uint32_t ThriftHiveMetastore_drop_type_args::read(::apache::thrift::protocol::TProtocol* iprot) {
+uint32_t ThriftHiveMetastore_get_dataconnector_req_args::read(::apache::thrift::protocol::TProtocol* iprot) {
 
   ::apache::thrift::protocol::TInputRecursionTracker tracker(*iprot);
   uint32_t xfer = 0;
@@ -3633,9 +3444,9 @@ uint32_t ThriftHiveMetastore_drop_type_args::read(::apache::thrift::protocol::TP
     switch (fid)
     {
       case 1:
-        if (ftype == ::apache::thrift::protocol::T_STRING) {
-          xfer += iprot->readString(this->type);
-          this->__isset.type = true;
+        if (ftype == ::apache::thrift::protocol::T_STRUCT) {
+          xfer += this->request.read(iprot);
+          this->__isset.request = true;
         } else {
           xfer += iprot->skip(ftype);
         }
@@ -3652,13 +3463,13 @@ uint32_t ThriftHiveMetastore_drop_type_args::read(::apache::thrift::protocol::TP
   return xfer;
 }
 
-uint32_t ThriftHiveMetastore_drop_type_args::write(::apache::thrift::protocol::TProtocol* oprot) const {
+uint32_t ThriftHiveMetastore_get_dataconnector_req_args::write(::apache::thrift::protocol::TProtocol* oprot) const {
   uint32_t xfer = 0;
   ::apache::thrift::protocol::TOutputRecursionTracker tracker(*oprot);
-  xfer += oprot->writeStructBegin("ThriftHiveMetastore_drop_type_args");
+  xfer += oprot->writeStructBegin("ThriftHiveMetastore_get_dataconnector_req_args");
 
-  xfer += oprot->writeFieldBegin("type", ::apache::thrift::protocol::T_STRING, 1);
-  xfer += oprot->writeString(this->type);
+  xfer += oprot->writeFieldBegin("request", ::apache::thrift::protocol::T_STRUCT, 1);
+  xfer += this->request.write(oprot);
   xfer += oprot->writeFieldEnd();
 
   xfer += oprot->writeFieldStop();
@@ -3667,17 +3478,17 @@ uint32_t ThriftHiveMetastore_drop_type_args::write(::apache::thrift::protocol::T
 }
 
 
-ThriftHiveMetastore_drop_type_pargs::~ThriftHiveMetastore_drop_type_pargs() noexcept {
+ThriftHiveMetastore_get_dataconnector_req_pargs::~ThriftHiveMetastore_get_dataconnector_req_pargs() noexcept {
 }
 
 
-uint32_t ThriftHiveMetastore_drop_type_pargs::write(::apache::thrift::protocol::TProtocol* oprot) const {
+uint32_t ThriftHiveMetastore_get_dataconnector_req_pargs::write(::apache::thrift::protocol::TProtocol* oprot) const {
   uint32_t xfer = 0;
   ::apache::thrift::protocol::TOutputRecursionTracker tracker(*oprot);
-  xfer += oprot->writeStructBegin("ThriftHiveMetastore_drop_type_pargs");
+  xfer += oprot->writeStructBegin("ThriftHiveMetastore_get_dataconnector_req_pargs");
 
-  xfer += oprot->writeFieldBegin("type", ::apache::thrift::protocol::T_STRING, 1);
-  xfer += oprot->writeString((*(this->type)));
+  xfer += oprot->writeFieldBegin("request", ::apache::thrift::protocol::T_STRUCT, 1);
+  xfer += (*(this->request)).write(oprot);
   xfer += oprot->writeFieldEnd();
 
   xfer += oprot->writeFieldStop();
@@ -3686,11 +3497,11 @@ uint32_t ThriftHiveMetastore_drop_type_pargs::write(::apache::thrift::protocol::
 }
 
 
-ThriftHiveMetastore_drop_type_result::~ThriftHiveMetastore_drop_type_result() noexcept {
+ThriftHiveMetastore_get_dataconnector_req_result::~ThriftHiveMetastore_get_dataconnector_req_result() noexcept {
 }
 
 
-uint32_t ThriftHiveMetastore_drop_type_result::read(::apache::thrift::protocol::TProtocol* iprot) {
+uint32_t ThriftHiveMetastore_get_dataconnector_req_result::read(::apache::thrift::protocol::TProtocol* iprot) {
 
   ::apache::thrift::protocol::TInputRecursionTracker tracker(*iprot);
   uint32_t xfer = 0;
@@ -3712,8 +3523,8 @@ uint32_t ThriftHiveMetastore_drop_type_result::read(::apache::thrift::protocol::
     switch (fid)
     {
       case 0:
-        if (ftype == ::apache::thrift::protocol::T_BOOL) {
-          xfer += iprot->readBool(this->success);
+        if (ftype == ::apache::thrift::protocol::T_STRUCT) {
+          xfer += this->success.read(iprot);
           this->__isset.success = true;
         } else {
           xfer += iprot->skip(ftype);
@@ -3747,15 +3558,15 @@ uint32_t ThriftHiveMetastore_drop_type_result::read(::apache::thrift::protocol::
   return xfer;
 }
 
-uint32_t ThriftHiveMetastore_drop_type_result::write(::apache::thrift::protocol::TProtocol* oprot) const {
+uint32_t ThriftHiveMetastore_get_dataconnector_req_result::write(::apache::thrift::protocol::TProtocol* oprot) const {
 
   uint32_t xfer = 0;
 
-  xfer += oprot->writeStructBegin("ThriftHiveMetastore_drop_type_result");
+  xfer += oprot->writeStructBegin("ThriftHiveMetastore_get_dataconnector_req_result");
 
   if (this->__isset.success) {
-    xfer += oprot->writeFieldBegin("success", ::apache::thrift::protocol::T_BOOL, 0);
-    xfer += oprot->writeBool(this->success);
+    xfer += oprot->writeFieldBegin("success", ::apache::thrift::protocol::T_STRUCT, 0);
+    xfer += this->success.write(oprot);
     xfer += oprot->writeFieldEnd();
   } else if (this->__isset.o1) {
     xfer += oprot->writeFieldBegin("o1", ::apache::thrift::protocol::T_STRUCT, 1);
@@ -3772,11 +3583,11 @@ uint32_t ThriftHiveMetastore_drop_type_result::write(::apache::thrift::protocol:
 }
 
 
-ThriftHiveMetastore_drop_type_presult::~ThriftHiveMetastore_drop_type_presult() noexcept {
+ThriftHiveMetastore_get_dataconnector_req_presult::~ThriftHiveMetastore_get_dataconnector_req_presult() noexcept {
 }
 
 
-uint32_t ThriftHiveMetastore_drop_type_presult::read(::apache::thrift::protocol::TProtocol* iprot) {
+uint32_t ThriftHiveMetastore_get_dataconnector_req_presult::read(::apache::thrift::protocol::TProtocol* iprot) {
 
   ::apache::thrift::protocol::TInputRecursionTracker tracker(*iprot);
   uint32_t xfer = 0;
@@ -3798,8 +3609,8 @@ uint32_t ThriftHiveMetastore_drop_type_presult::read(::apache::thrift::protocol:
     switch (fid)
     {
       case 0:
-        if (ftype == ::apache::thrift::protocol::T_BOOL) {
-          xfer += iprot->readBool((*(this->success)));
+        if (ftype == ::apache::thrift::protocol::T_STRUCT) {
+          xfer += (*(this->success)).read(iprot);
           this->__isset.success = true;
         } else {
           xfer += iprot->skip(ftype);
@@ -3834,11 +3645,11 @@ uint32_t ThriftHiveMetastore_drop_type_presult::read(::apache::thrift::protocol:
 }
 
 
-ThriftHiveMetastore_get_type_all_args::~ThriftHiveMetastore_get_type_all_args() noexcept {
+ThriftHiveMetastore_drop_dataconnector_args::~ThriftHiveMetastore_drop_dataconnector_args() noexcept {
 }
 
 
-uint32_t ThriftHiveMetastore_get_type_all_args::read(::apache::thrift::protocol::TProtocol* iprot) {
+uint32_t ThriftHiveMetastore_drop_dataconnector_args::read(::apache::thrift::protocol::TProtocol* iprot) {
 
   ::apache::thrift::protocol::TInputRecursionTracker tracker(*iprot);
   uint32_t xfer = 0;
@@ -3867,6 +3678,22 @@ uint32_t ThriftHiveMetastore_get_type_all_args::read(::apache::thrift::protocol:
           xfer += iprot->skip(ftype);
         }
         break;
+      case -1:
+        if (ftype == ::apache::thrift::protocol::T_BOOL) {
+          xfer += iprot->readBool(this->ifNotExists);
+          this->__isset.ifNotExists = true;
+        } else {
+          xfer += iprot->skip(ftype);
+        }
+        break;
+      case -2:
+        if (ftype == ::apache::thrift::protocol::T_BOOL) {
+          xfer += iprot->readBool(this->checkReferences);
+          this->__isset.checkReferences = true;
+        } else {
+          xfer += iprot->skip(ftype);
+        }
+        break;
       default:
         xfer += iprot->skip(ftype);
         break;
@@ -3879,10 +3706,18 @@ uint32_t ThriftHiveMetastore_get_type_all_args::read(::apache::thrift::protocol:
   return xfer;
 }
 
-uint32_t ThriftHiveMetastore_get_type_all_args::write(::apache::thrift::protocol::TProtocol* oprot) const {
+uint32_t ThriftHiveMetastore_drop_dataconnector_args::write(::apache::thrift::protocol::TProtocol* oprot) const {
   uint32_t xfer = 0;
   ::apache::thrift::protocol::TOutputRecursionTracker tracker(*oprot);
-  xfer += oprot->writeStructBegin("ThriftHiveMetastore_get_type_all_args");
+  xfer += oprot->writeStructBegin("ThriftHiveMetastore_drop_dataconnector_args");
+
+  xfer += oprot->writeFieldBegin("checkReferences", ::apache::thrift::protocol::T_BOOL, -2);
+  xfer += oprot->writeBool(this->checkReferences);
+  xfer += oprot->writeFieldEnd();
+
+  xfer += oprot->writeFieldBegin("ifNotExists", ::apache::thrift::protocol::T_BOOL, -1);
+  xfer += oprot->writeBool(this->ifNotExists);
+  xfer += oprot->writeFieldEnd();
 
   xfer += oprot->writeFieldBegin("name", ::apache::thrift::protocol::T_STRING, 1);
   xfer += oprot->writeString(this->name);
@@ -3894,14 +3729,22 @@ uint32_t ThriftHiveMetastore_get_type_all_args::write(::apache::thrift::protocol
 }
 
 
-ThriftHiveMetastore_get_type_all_pargs::~ThriftHiveMetastore_get_type_all_pargs() noexcept {
+ThriftHiveMetastore_drop_dataconnector_pargs::~ThriftHiveMetastore_drop_dataconnector_pargs() noexcept {
 }
 
 
-uint32_t ThriftHiveMetastore_get_type_all_pargs::write(::apache::thrift::protocol::TProtocol* oprot) const {
+uint32_t ThriftHiveMetastore_drop_dataconnector_pargs::write(::apache::thrift::protocol::TProtocol* oprot) const {
   uint32_t xfer = 0;
   ::apache::thrift::protocol::TOutputRecursionTracker tracker(*oprot);
-  xfer += oprot->writeStructBegin("ThriftHiveMetastore_get_type_all_pargs");
+  xfer += oprot->writeStructBegin("ThriftHiveMetastore_drop_dataconnector_pargs");
+
+  xfer += oprot->writeFieldBegin("checkReferences", ::apache::thrift::protocol::T_BOOL, -2);
+  xfer += oprot->writeBool((*(this->checkReferences)));
+  xfer += oprot->writeFieldEnd();
+
+  xfer += oprot->writeFieldBegin("ifNotExists", ::apache::thrift::protocol::T_BOOL, -1);
+  xfer += oprot->writeBool((*(this->ifNotExists)));
+  xfer += oprot->writeFieldEnd();
 
   xfer += oprot->writeFieldBegin("name", ::apache::thrift::protocol::T_STRING, 1);
   xfer += oprot->writeString((*(this->name)));
@@ -3913,11 +3756,11 @@ uint32_t ThriftHiveMetastore_get_type_all_pargs::write(::apache::thrift::protoco
 }
 
 
-ThriftHiveMetastore_get_type_all_result::~ThriftHiveMetastore_get_type_all_result() noexcept {
+ThriftHiveMetastore_drop_dataconnector_result::~ThriftHiveMetastore_drop_dataconnector_result() noexcept {
 }
 
 
-uint32_t ThriftHiveMetastore_get_type_all_result::read(::apache::thrift::protocol::TProtocol* iprot) {
+uint32_t ThriftHiveMetastore_drop_dataconnector_result::read(::apache::thrift::protocol::TProtocol* iprot) {
 
   ::apache::thrift::protocol::TInputRecursionTracker tracker(*iprot);
   uint32_t xfer = 0;
@@ -3938,30 +3781,15 @@ uint32_t ThriftHiveMetastore_get_type_all_result::read(::apache::thrift::protoco
     }
     switch (fid)
     {
-      case 0:
-        if (ftype == ::apache::thrift::protocol::T_MAP) {
-          {
-            this->success.clear();
-            uint32_t _size1673;
-            ::apache::thrift::protocol::TType _ktype1674;
-            ::apache::thrift::protocol::TType _vtype1675;
-            xfer += iprot->readMapBegin(_ktype1674, _vtype1675, _size1673);
-            uint32_t _i1677;
-            for (_i1677 = 0; _i1677 < _size1673; ++_i1677)
-            {
-              std::string _key1678;
-              xfer += iprot->readString(_key1678);
-              Type& _val1679 = this->success[_key1678];
-              xfer += _val1679.read(iprot);
-            }
-            xfer += iprot->readMapEnd();
-          }
-          this->__isset.success = true;
+      case 1:
+        if (ftype == ::apache::thrift::protocol::T_STRUCT) {
+          xfer += this->o1.read(iprot);
+          this->__isset.o1 = true;
         } else {
           xfer += iprot->skip(ftype);
         }
         break;
-      case 1:
+      case 2:
         if (ftype == ::apache::thrift::protocol::T_STRUCT) {
           xfer += this->o2.read(iprot);
           this->__isset.o2 = true;
@@ -3969,6 +3797,14 @@ uint32_t ThriftHiveMetastore_get_type_all_result::read(::apache::thrift::protoco
           xfer += iprot->skip(ftype);
         }
         break;
+      case 3:
+        if (ftype == ::apache::thrift::protocol::T_STRUCT) {
+          xfer += this->o3.read(iprot);
+          this->__isset.o3 = true;
+        } else {
+          xfer += iprot->skip(ftype);
+        }
+        break;
       default:
         xfer += iprot->skip(ftype);
         break;
@@ -3981,29 +3817,24 @@ uint32_t ThriftHiveMetastore_get_type_all_result::read(::apache::thrift::protoco
   return xfer;
 }
 
-uint32_t ThriftHiveMetastore_get_type_all_result::write(::apache::thrift::protocol::TProtocol* oprot) const {
+uint32_t ThriftHiveMetastore_drop_dataconnector_result::write(::apache::thrift::protocol::TProtocol* oprot) const {
 
   uint32_t xfer = 0;
 
-  xfer += oprot->writeStructBegin("ThriftHiveMetastore_get_type_all_result");
+  xfer += oprot->writeStructBegin("ThriftHiveMetastore_drop_dataconnector_result");
 
-  if (this->__isset.success) {
-    xfer += oprot->writeFieldBegin("success", ::apache::thrift::protocol::T_MAP, 0);
-    {
-      xfer += oprot->writeMapBegin(::apache::thrift::protocol::T_STRING, ::apache::thrift::protocol::T_STRUCT, static_cast<uint32_t>(this->success.size()));
-      std::map<std::string, Type> ::const_iterator _iter1680;
-      for (_iter1680 = this->success.begin(); _iter1680 != this->success.end(); ++_iter1680)
-      {
-        xfer += oprot->writeString(_iter1680->first);
-        xfer += _iter1680->second.write(oprot);
-      }
-      xfer += oprot->writeMapEnd();
-    }
+  if (this->__isset.o1) {
+    xfer += oprot->writeFieldBegin("o1", ::apache::thrift::protocol::T_STRUCT, 1);
+    xfer += this->o1.write(oprot);
     xfer += oprot->writeFieldEnd();
   } else if (this->__isset.o2) {
-    xfer += oprot->writeFieldBegin("o2", ::apache::thrift::protocol::T_STRUCT, 1);
+    xfer += oprot->writeFieldBegin("o2", ::apache::thrift::protocol::T_STRUCT, 2);
     xfer += this->o2.write(oprot);
     xfer += oprot->writeFieldEnd();
+  } else if (this->__isset.o3) {
+    xfer += oprot->writeFieldBegin("o3", ::apache::thrift::protocol::T_STRUCT, 3);
+    xfer += this->o3.write(oprot);
+    xfer += oprot->writeFieldEnd();
   }
   xfer += oprot->writeFieldStop();
   xfer += oprot->writeStructEnd();
@@ -4011,11 +3842,11 @@ uint32_t ThriftHiveMetastore_get_type_all_result::write(::apache::thrift::protoc
 }
 
 
-ThriftHiveMetastore_get_type_all_presult::~ThriftHiveMetastore_get_type_all_presult() noexcept {
+ThriftHiveMetastore_drop_dataconnector_presult::~ThriftHiveMetastore_drop_dataconnector_presult() noexcept {
 }
 
 
-uint32_t ThriftHiveMetastore_get_type_all_presult::read(::apache::thrift::protocol::TProtocol* iprot) {
+uint32_t ThriftHiveMetastore_drop_dataconnector_presult::read(::apache::thrift::protocol::TProtocol* iprot) {
 
   ::apache::thrift::protocol::TInputRecursionTracker tracker(*iprot);
   uint32_t xfer = 0;
@@ -4036,30 +3867,15 @@ uint32_t ThriftHiveMetastore_get_type_all_presult::read(::apache::thrift::protoc
     }
     switch (fid)
     {
-      case 0:
-        if (ftype == ::apache::thrift::protocol::T_MAP) {
-          {
-            (*(this->success)).clear();
-            uint32_t _size1681;
-            ::apache::thrift::protocol::TType _ktype1682;
-            ::apache::thrift::protocol::TType _vtype1683;
-            xfer += iprot->readMapBegin(_ktype1682, _vtype1683, _size1681);
-            uint32_t _i1685;
-            for (_i1685 = 0; _i1685 < _size1681; ++_i1685)
-            {
-              std::string _key1686;
-              xfer += iprot->readString(_key1686);
-              Type& _val1687 = (*(this->success))[_key1686];
-              xfer += _val1687.read(iprot);
-            }
-            xfer += iprot->readMapEnd();
-          }
-          this->__isset.success = true;
+      case 1:
+        if (ftype == ::apache::thrift::protocol::T_STRUCT) {
+          xfer += this->o1.read(iprot);
+          this->__isset.o1 = true;
         } else {
           xfer += iprot->skip(ftype);
         }
         break;
-      case 1:
+      case 2:
         if (ftype == ::apache::thrift::protocol::T_STRUCT) {
           xfer += this->o2.read(iprot);
           this->__isset.o2 = true;
@@ -4067,6 +3883,14 @@ uint32_t ThriftHiveMetastore_get_type_all_presult::read(::apache::thrift::protoc
           xfer += iprot->skip(ftype);
         }
         break;
+      case 3:
+        if (ftype == ::apache::thrift::protocol::T_STRUCT) {
+          xfer += this->o3.read(iprot);
+          this->__isset.o3 = true;
+        } else {
+          xfer += iprot->skip(ftype);
+        }
+        break;
       default:
         xfer += iprot->skip(ftype);
         break;
@@ -4080,11 +3904,11 @@ uint32_t ThriftHiveMetastore_get_type_all_presult::read(::apache::thrift::protoc
 }
 
 
-ThriftHiveMetastore_get_fields_args::~ThriftHiveMetastore_get_fields_args() noexcept {
+ThriftHiveMetastore_get_dataconnectors_args::~ThriftHiveMetastore_get_dataconnectors_args() noexcept {
 }
 
 
-uint32_t ThriftHiveMetastore_get_fields_args::read(::apache::thrift::protocol::TProtocol* iprot) {
+uint32_t ThriftHiveMetastore_get_dataconnectors_args::read(::apache::thrift::protocol::TProtocol* iprot) {
 
   ::apache::thrift::protocol::TInputRecursionTracker tracker(*iprot);
   uint32_t xfer = 0;
@@ -4103,28 +3927,7 @@ uint32_t ThriftHiveMetastore_get_fields_args::read(::apache::thrift::protocol::T
     if (ftype == ::apache::thrift::protocol::T_STOP) {
       break;
     }
-    switch (fid)
-    {
-      case 1:
-        if (ftype == ::apache::thrift::protocol::T_STRING) {
-          xfer += iprot->readString(this->db_name);
-          this->__isset.db_name = true;
-        } else {
-          xfer += iprot->skip(ftype);
-        }
-        break;
-      case 2:
-        if (ftype == ::apache::thrift::protocol::T_STRING) {
-          xfer += iprot->readString(this->table_name);
-          this->__isset.table_name = true;
-        } else {
-          xfer += iprot->skip(ftype);
-        }
-        break;
-      default:
-        xfer += iprot->skip(ftype);
-        break;
-    }
+    xfer += iprot->skip(ftype);
     xfer += iprot->readFieldEnd();
   }
 
@@ -4133,18 +3936,10 @@ uint32_t ThriftHiveMetastore_get_fields_args::read(::apache::thrift::protocol::T
   return xfer;
 }
 
-uint32_t ThriftHiveMetastore_get_fields_args::write(::apache::thrift::protocol::TProtocol* oprot) const {
+uint32_t ThriftHiveMetastore_get_dataconnectors_args::write(::apache::thrift::protocol::TProtocol* oprot) const {
   uint32_t xfer = 0;
   ::apache::thrift::protocol::TOutputRecursionTracker tracker(*oprot);
-  xfer += oprot->writeStructBegin("ThriftHiveMetastore_get_fields_args");
-
-  xfer += oprot->writeFieldBegin("db_name", ::apache::thrift::protocol::T_STRING, 1);
-  xfer += oprot->writeString(this->db_name);
-  xfer += oprot->writeFieldEnd();
-
-  xfer += oprot->writeFieldBegin("table_name", ::apache::thrift::protocol::T_STRING, 2);
-  xfer += oprot->writeString(this->table_name);
-  xfer += oprot->writeFieldEnd();
+  xfer += oprot->writeStructBegin("ThriftHiveMetastore_get_dataconnectors_args");
 
   xfer += oprot->writeFieldStop();
   xfer += oprot->writeStructEnd();
@@ -4152,22 +3947,14 @@ uint32_t ThriftHiveMetastore_get_fields_args::write(::apache::thrift::protocol::
 }
 
 
-ThriftHiveMetastore_get_fields_pargs::~ThriftHiveMetastore_get_fields_pargs() noexcept {
+ThriftHiveMetastore_get_dataconnectors_pargs::~ThriftHiveMetastore_get_dataconnectors_pargs() noexcept {
 }
 
 
-uint32_t ThriftHiveMetastore_get_fields_pargs::write(::apache::thrift::protocol::TProtocol* oprot) const {
+uint32_t ThriftHiveMetastore_get_dataconnectors_pargs::write(::apache::thrift::protocol::TProtocol* oprot) const {
   uint32_t xfer = 0;
   ::apache::thrift::protocol::TOutputRecursionTracker tracker(*oprot);
-  xfer += oprot->writeStructBegin("ThriftHiveMetastore_get_fields_pargs");
-
-  xfer += oprot->writeFieldBegin("db_name", ::apache::thrift::protocol::T_STRING, 1);
-  xfer += oprot->writeString((*(this->db_name)));
-  xfer += oprot->writeFieldEnd();
-
-  xfer += oprot->writeFieldBegin("table_name", ::apache::thrift::protocol::T_STRING, 2);
-  xfer += oprot->writeString((*(this->table_name)));
-  xfer += oprot->writeFieldEnd();
+  xfer += oprot->writeStructBegin("ThriftHiveMetastore_get_dataconnectors_pargs");
 
   xfer += oprot->writeFieldStop();
   xfer += oprot->writeStructEnd();
@@ -4175,11 +3962,11 @@ uint32_t ThriftHiveMetastore_get_fields_pargs::write(::apache::thrift::protocol:
 }
 
 
-ThriftHiveMetastore_get_fields_result::~ThriftHiveMetastore_get_fields_result() noexcept {
+ThriftHiveMetastore_get_dataconnectors_result::~ThriftHiveMetastore_get_dataconnectors_result() noexcept {
 }
 
 
-uint32_t ThriftHiveMetastore_get_fields_result::read(::apache::thrift::protocol::TProtocol* iprot) {
+uint32_t ThriftHiveMetastore_get_dataconnectors_result::read(::apache::thrift::protocol::TProtocol* iprot) {
 
   ::apache::thrift::protocol::TInputRecursionTracker tracker(*iprot);
   uint32_t xfer = 0;
@@ -4204,14 +3991,28 @@ uint32_t ThriftHiveMetastore_get_fields_result::read(::apache::thrift::protocol:
         if (ftype == ::apache::thrift::protocol::T_LIST) {
           {
             this->success.clear();
-            uint32_t _size1688;
-            ::apache::thrift::protocol::TType _etype1691;
-            xfer += iprot->readListBegin(_etype1691, _size1688);
-            this->success.resize(_size1688);
-            uint32_t _i1692;
-            for (_i1692 = 0; _i1692 < _size1688; ++_i1692)
+<<<<<<< HEAD
+            uint32_t _size1673;
+            ::apache::thrift::protocol::TType _ktype1674;
+            ::apache::thrift::protocol::TType _vtype1675;
+            xfer += iprot->readMapBegin(_ktype1674, _vtype1675, _size1673);
+            uint32_t _i1677;
+            for (_i1677 = 0; _i1677 < _size1673; ++_i1677)
             {
-              xfer += this->success[_i1692].read(iprot);
+              std::string _key1678;
+              xfer += iprot->readString(_key1678);
+              Type& _val1679 = this->success[_key1678];
+              xfer += _val1679.read(iprot);
+=======
+            uint32_t _size1690;
+            ::apache::thrift::protocol::TType _etype1693;
+            xfer += iprot->readListBegin(_etype1693, _size1690);
+            this->success.resize(_size1690);
+            uint32_t _i1694;
+            for (_i1694 = 0; _i1694 < _size1690; ++_i1694)
+            {
+              xfer += iprot->readString(this->success[_i1694]);
+>>>>>>> External metastore: clean after rebase
             }
             xfer += iprot->readListEnd();
           }
@@ -4228,22 +4029,6 @@ uint32_t ThriftHiveMetastore_get_fields_result::read(::apache::thrift::protocol:
           xfer += iprot->skip(ftype);
         }
         break;
-      case 2:
-        if (ftype == ::apache::thrift::protocol::T_STRUCT) {
-          xfer += this->o2.read(iprot);
-          this->__isset.o2 = true;
-        } else {
-          xfer += iprot->skip(ftype);
-        }
-        break;
-      case 3:
-        if (ftype == ::apache::thrift::protocol::T_STRUCT) {
-          xfer += this->o3.read(iprot);
-          this->__isset.o3 = true;
-        } else {
-          xfer += iprot->skip(ftype);
-        }
-        break;
       default:
         xfer += iprot->skip(ftype);
         break;
@@ -4256,20 +4041,29 @@ uint32_t ThriftHiveMetastore_get_fields_result::read(::apache::thrift::protocol:
   return xfer;
 }
 
-uint32_t ThriftHiveMetastore_get_fields_result::write(::apache::thrift::protocol::TProtocol* oprot) const {
+uint32_t ThriftHiveMetastore_get_dataconnectors_result::write(::apache::thrift::protocol::TProtocol* oprot) const {
 
   uint32_t xfer = 0;
 
-  xfer += oprot->writeStructBegin("ThriftHiveMetastore_get_fields_result");
+  xfer += oprot->writeStructBegin("ThriftHiveMetastore_get_dataconnectors_result");
 
   if (this->__isset.success) {
     xfer += oprot->writeFieldBegin("success", ::apache::thrift::protocol::T_LIST, 0);
     {
-      xfer += oprot->writeListBegin(::apache::thrift::protocol::T_STRUCT, static_cast<uint32_t>(this->success.size()));
-      std::vector<FieldSchema> ::const_iterator _iter1693;
-      for (_iter1693 = this->success.begin(); _iter1693 != this->success.end(); ++_iter1693)
+<<<<<<< HEAD
+      xfer += oprot->writeMapBegin(::apache::thrift::protocol::T_STRING, ::apache::thrift::protocol::T_STRUCT, static_cast<uint32_t>(this->success.size()));
+      std::map<std::string, Type> ::const_iterator _iter1680;
+      for (_iter1680 = this->success.begin(); _iter1680 != this->success.end(); ++_iter1680)
       {
-        xfer += (*_iter1693).write(oprot);
+        xfer += oprot->writeString(_iter1680->first);
+        xfer += _iter1680->second.write(oprot);
+=======
+      xfer += oprot->writeListBegin(::apache::thrift::protocol::T_STRING, static_cast<uint32_t>(this->success.size()));
+      std::vector<std::string> ::const_iterator _iter1695;
+      for (_iter1695 = this->success.begin(); _iter1695 != this->success.end(); ++_iter1695)
+      {
+        xfer += oprot->writeString((*_iter1695));
+>>>>>>> External metastore: clean after rebase
       }
       xfer += oprot->writeListEnd();
     }
@@ -4278,14 +4072,6 @@ uint32_t ThriftHiveMetastore_get_fields_result::write(::apache::thrift::protocol
     xfer += oprot->writeFieldBegin("o1", ::apache::thrift::protocol::T_STRUCT, 1);
     xfer += this->o1.write(oprot);
     xfer += oprot->writeFieldEnd();
-  } else if (this->__isset.o2) {
-    xfer += oprot->writeFieldBegin("o2", ::apache::thrift::protocol::T_STRUCT, 2);
-    xfer += this->o2.write(oprot);
-    xfer += oprot->writeFieldEnd();
-  } else if (this->__isset.o3) {
-    xfer += oprot->writeFieldBegin("o3", ::apache::thrift::protocol::T_STRUCT, 3);
-    xfer += this->o3.write(oprot);
-    xfer += oprot->writeFieldEnd();
   }
   xfer += oprot->writeFieldStop();
   xfer += oprot->writeStructEnd();
@@ -4293,11 +4079,11 @@ uint32_t ThriftHiveMetastore_get_fields_result::write(::apache::thrift::protocol
 }
 
 
-ThriftHiveMetastore_get_fields_presult::~ThriftHiveMetastore_get_fields_presult() noexcept {
+ThriftHiveMetastore_get_dataconnectors_presult::~ThriftHiveMetastore_get_dataconnectors_presult() noexcept {
 }
 
 
-uint32_t ThriftHiveMetastore_get_fields_presult::read(::apache::thrift::protocol::TProtocol* iprot) {
+uint32_t ThriftHiveMetastore_get_dataconnectors_presult::read(::apache::thrift::protocol::TProtocol* iprot) {
 
   ::apache::thrift::protocol::TInputRecursionTracker tracker(*iprot);
   uint32_t xfer = 0;
@@ -4322,14 +4108,28 @@ uint32_t ThriftHiveMetastore_get_fields_presult::read(::apache::thrift::protocol
         if (ftype == ::apache::thrift::protocol::T_LIST) {
           {
             (*(this->success)).clear();
-            uint32_t _size1694;
-            ::apache::thrift::protocol::TType _etype1697;
-            xfer += iprot->readListBegin(_etype1697, _size1694);
-            (*(this->success)).resize(_size1694);
-            uint32_t _i1698;
-            for (_i1698 = 0; _i1698 < _size1694; ++_i1698)
+<<<<<<< HEAD
+            uint32_t _size1681;
+            ::apache::thrift::protocol::TType _ktype1682;
+            ::apache::thrift::protocol::TType _vtype1683;
+            xfer += iprot->readMapBegin(_ktype1682, _vtype1683, _size1681);
+            uint32_t _i1685;
+            for (_i1685 = 0; _i1685 < _size1681; ++_i1685)
             {
-              xfer += (*(this->success))[_i1698].read(iprot);
+              std::string _key1686;
+              xfer += iprot->readString(_key1686);
+              Type& _val1687 = (*(this->success))[_key1686];
+              xfer += _val1687.read(iprot);
+=======
+            uint32_t _size1696;
+            ::apache::thrift::protocol::TType _etype1699;
+            xfer += iprot->readListBegin(_etype1699, _size1696);
+            (*(this->success)).resize(_size1696);
+            uint32_t _i1700;
+            for (_i1700 = 0; _i1700 < _size1696; ++_i1700)
+            {
+              xfer += iprot->readString((*(this->success))[_i1700]);
+>>>>>>> External metastore: clean after rebase
             }
             xfer += iprot->readListEnd();
           }
@@ -4346,22 +4146,6 @@ uint32_t ThriftHiveMetastore_get_fields_presult::read(::apache::thrift::protocol
           xfer += iprot->skip(ftype);
         }
         break;
-      case 2:
-        if (ftype == ::apache::thrift::protocol::T_STRUCT) {
-          xfer += this->o2.read(iprot);
-          this->__isset.o2 = true;
-        } else {
-          xfer += iprot->skip(ftype);
-        }
-        break;
-      case 3:
-        if (ftype == ::apache::thrift::protocol::T_STRUCT) {
-          xfer += this->o3.read(iprot);
-          this->__isset.o3 = true;
-        } else {
-          xfer += iprot->skip(ftype);
-        }
-        break;
       default:
         xfer += iprot->skip(ftype);
         break;
@@ -4375,11 +4159,11 @@ uint32_t ThriftHiveMetastore_get_fields_presult::read(::apache::thrift::protocol
 }
 
 
-ThriftHiveMetastore_get_fields_with_environment_context_args::~ThriftHiveMetastore_get_fields_with_environment_context_args() noexcept {
+ThriftHiveMetastore_alter_dataconnector_args::~ThriftHiveMetastore_alter_dataconnector_args() noexcept {
 }
 
 
-uint32_t ThriftHiveMetastore_get_fields_with_environment_context_args::read(::apache::thrift::protocol::TProtocol* iprot) {
+uint32_t ThriftHiveMetastore_alter_dataconnector_args::read(::apache::thrift::protocol::TProtocol* iprot) {
 
   ::apache::thrift::protocol::TInputRecursionTracker tracker(*iprot);
   uint32_t xfer = 0;
@@ -4402,24 +4186,16 @@ uint32_t ThriftHiveMetastore_get_fields_with_environment_context_args::read(::ap
     {
       case 1:
         if (ftype == ::apache::thrift::protocol::T_STRING) {
-          xfer += iprot->readString(this->db_name);
-          this->__isset.db_name = true;
+          xfer += iprot->readString(this->name);
+          this->__isset.name = true;
         } else {
           xfer += iprot->skip(ftype);
         }
         break;
       case 2:
-        if (ftype == ::apache::thrift::protocol::T_STRING) {
-          xfer += iprot->readString(this->table_name);
-          this->__isset.table_name = true;
-        } else {
-          xfer += iprot->skip(ftype);
-        }
-        break;
-      case 3:
         if (ftype == ::apache::thrift::protocol::T_STRUCT) {
-          xfer += this->environment_context.read(iprot);
-          this->__isset.environment_context = true;
+          xfer += this->connector.read(iprot);
+          this->__isset.connector = true;
         } else {
           xfer += iprot->skip(ftype);
         }
@@ -4436,21 +4212,17 @@ uint32_t ThriftHiveMetastore_get_fields_with_environment_context_args::read(::ap
   return xfer;
 }
 
-uint32_t ThriftHiveMetastore_get_fields_with_environment_context_args::write(::apache::thrift::protocol::TProtocol* oprot) const {
+uint32_t ThriftHiveMetastore_alter_dataconnector_args::write(::apache::thrift::protocol::TProtocol* oprot) const {
   uint32_t xfer = 0;
   ::apache::thrift::protocol::TOutputRecursionTracker tracker(*oprot);
-  xfer += oprot->writeStructBegin("ThriftHiveMetastore_get_fields_with_environment_context_args");
+  xfer += oprot->writeStructBegin("ThriftHiveMetastore_alter_dataconnector_args");
 
-  xfer += oprot->writeFieldBegin("db_name", ::apache::thrift::protocol::T_STRING, 1);
-  xfer += oprot->writeString(this->db_name);
-  xfer += oprot->writeFieldEnd();
-
-  xfer += oprot->writeFieldBegin("table_name", ::apache::thrift::protocol::T_STRING, 2);
-  xfer += oprot->writeString(this->table_name);
+  xfer += oprot->writeFieldBegin("name", ::apache::thrift::protocol::T_STRING, 1);
+  xfer += oprot->writeString(this->name);
   xfer += oprot->writeFieldEnd();
 
-  xfer += oprot->writeFieldBegin("environment_context", ::apache::thrift::protocol::T_STRUCT, 3);
-  xfer += this->environment_context.write(oprot);
+  xfer += oprot->writeFieldBegin("connector", ::apache::thrift::protocol::T_STRUCT, 2);
+  xfer += this->connector.write(oprot);
   xfer += oprot->writeFieldEnd();
 
   xfer += oprot->writeFieldStop();
@@ -4459,25 +4231,21 @@ uint32_t ThriftHiveMetastore_get_fields_with_environment_context_args::write(::a
 }
 
 
-ThriftHiveMetastore_get_fields_with_environment_context_pargs::~ThriftHiveMetastore_get_fields_with_environment_context_pargs() noexcept {
+ThriftHiveMetastore_alter_dataconnector_pargs::~ThriftHiveMetastore_alter_dataconnector_pargs() noexcept {
 }
 
 
-uint32_t ThriftHiveMetastore_get_fields_with_environment_context_pargs::write(::apache::thrift::protocol::TProtocol* oprot) const {
+uint32_t ThriftHiveMetastore_alter_dataconnector_pargs::write(::apache::thrift::protocol::TProtocol* oprot) const {
   uint32_t xfer = 0;
   ::apache::thrift::protocol::TOutputRecursionTracker tracker(*oprot);
-  xfer += oprot->writeStructBegin("ThriftHiveMetastore_get_fields_with_environment_context_pargs");
-
-  xfer += oprot->writeFieldBegin("db_name", ::apache::thrift::protocol::T_STRING, 1);
-  xfer += oprot->writeString((*(this->db_name)));
-  xfer += oprot->writeFieldEnd();
+  xfer += oprot->writeStructBegin("ThriftHiveMetastore_alter_dataconnector_pargs");
 
-  xfer += oprot->writeFieldBegin("table_name", ::apache::thrift::protocol::T_STRING, 2);
-  xfer += oprot->writeString((*(this->table_name)));
+  xfer += oprot->writeFieldBegin("name", ::apache::thrift::protocol::T_STRING, 1);
+  xfer += oprot->writeString((*(this->name)));
   xfer += oprot->writeFieldEnd();
 
-  xfer += oprot->writeFieldBegin("environment_context", ::apache::thrift::protocol::T_STRUCT, 3);
-  xfer += (*(this->environment_context)).write(oprot);
+  xfer += oprot->writeFieldBegin("connector", ::apache::thrift::protocol::T_STRUCT, 2);
+  xfer += (*(this->connector)).write(oprot);
   xfer += oprot->writeFieldEnd();
 
   xfer += oprot->writeFieldStop();
@@ -4486,11 +4254,11 @@ uint32_t ThriftHiveMetastore_get_fields_with_environment_context_pargs::write(::
 }
 
 
-ThriftHiveMetastore_get_fields_with_environment_context_result::~ThriftHiveMetastore_get_fields_with_environment_context_result() noexcept {
+ThriftHiveMetastore_alter_dataconnector_result::~ThriftHiveMetastore_alter_dataconnector_result() noexcept {
 }
 
 
-uint32_t ThriftHiveMetastore_get_fields_with_environment_context_result::read(::apache::thrift::protocol::TProtocol* iprot) {
+uint32_t ThriftHiveMetastore_alter_dataconnector_result::read(::apache::thrift::protocol::TProtocol* iprot) {
 
   ::apache::thrift::protocol::TInputRecursionTracker tracker(*iprot);
   uint32_t xfer = 0;
@@ -4511,18 +4279,19 @@ uint32_t ThriftHiveMetastore_get_fields_with_environment_context_result::read(::
     }
     switch (fid)
     {
+<<<<<<< HEAD
       case 0:
         if (ftype == ::apache::thrift::protocol::T_LIST) {
           {
             this->success.clear();
-            uint32_t _size1699;
-            ::apache::thrift::protocol::TType _etype1702;
-            xfer += iprot->readListBegin(_etype1702, _size1699);
-            this->success.resize(_size1699);
-            uint32_t _i1703;
-            for (_i1703 = 0; _i1703 < _size1699; ++_i1703)
+            uint32_t _size1688;
+            ::apache::thrift::protocol::TType _etype1691;
+            xfer += iprot->readListBegin(_etype1691, _size1688);
+            this->success.resize(_size1688);
+            uint32_t _i1692;
+            for (_i1692 = 0; _i1692 < _size1688; ++_i1692)
             {
-              xfer += this->success[_i1703].read(iprot);
+              xfer += this->success[_i1692].read(iprot);
             }
             xfer += iprot->readListEnd();
           }
@@ -4531,6 +4300,8 @@ uint32_t ThriftHiveMetastore_get_fields_with_environment_context_result::read(::
           xfer += iprot->skip(ftype);
         }
         break;
+=======
+>>>>>>> External metastore: clean after rebase
       case 1:
         if (ftype == ::apache::thrift::protocol::T_STRUCT) {
           xfer += this->o1.read(iprot);
@@ -4547,14 +4318,6 @@ uint32_t ThriftHiveMetastore_get_fields_with_environment_context_result::read(::
           xfer += iprot->skip(ftype);
         }
         break;
-      case 3:
-        if (ftype == ::apache::thrift::protocol::T_STRUCT) {
-          xfer += this->o3.read(iprot);
-          this->__isset.o3 = true;
-        } else {
-          xfer += iprot->skip(ftype);
-        }
-        break;
       default:
         xfer += iprot->skip(ftype);
         break;
@@ -4567,25 +4330,29 @@ uint32_t ThriftHiveMetastore_get_fields_with_environment_context_result::read(::
   return xfer;
 }
 
-uint32_t ThriftHiveMetastore_get_fields_with_environment_context_result::write(::apache::thrift::protocol::TProtocol* oprot) const {
+uint32_t ThriftHiveMetastore_alter_dataconnector_result::write(::apache::thrift::protocol::TProtocol* oprot) const {
 
   uint32_t xfer = 0;
 
-  xfer += oprot->writeStructBegin("ThriftHiveMetastore_get_fields_with_environment_context_result");
+  xfer += oprot->writeStructBegin("ThriftHiveMetastore_alter_dataconnector_result");
 
+<<<<<<< HEAD
   if (this->__isset.success) {
     xfer += oprot->writeFieldBegin("success", ::apache::thrift::protocol::T_LIST, 0);
     {
       xfer += oprot->writeListBegin(::apache::thrift::protocol::T_STRUCT, static_cast<uint32_t>(this->success.size()));
-      std::vector<FieldSchema> ::const_iterator _iter1704;
-      for (_iter1704 = this->success.begin(); _iter1704 != this->success.end(); ++_iter1704)
+      std::vector<FieldSchema> ::const_iterator _iter1693;
+      for (_iter1693 = this->success.begin(); _iter1693 != this->success.end(); ++_iter1693)
       {
-        xfer += (*_iter1704).write(oprot);
+        xfer += (*_iter1693).write(oprot);
       }
       xfer += oprot->writeListEnd();
     }
     xfer += oprot->writeFieldEnd();
   } else if (this->__isset.o1) {
+=======
+  if (this->__isset.o1) {
+>>>>>>> External metastore: clean after rebase
     xfer += oprot->writeFieldBegin("o1", ::apache::thrift::protocol::T_STRUCT, 1);
     xfer += this->o1.write(oprot);
     xfer += oprot->writeFieldEnd();
@@ -4593,10 +4360,6 @@ uint32_t ThriftHiveMetastore_get_fields_with_environment_context_result::write(:
     xfer += oprot->writeFieldBegin("o2", ::apache::thrift::protocol::T_STRUCT, 2);
     xfer += this->o2.write(oprot);
     xfer += oprot->writeFieldEnd();
-  } else if (this->__isset.o3) {
-    xfer += oprot->writeFieldBegin("o3", ::apache::thrift::protocol::T_STRUCT, 3);
-    xfer += this->o3.write(oprot);
-    xfer += oprot->writeFieldEnd();
   }
   xfer += oprot->writeFieldStop();
   xfer += oprot->writeStructEnd();
@@ -4604,11 +4367,11 @@ uint32_t ThriftHiveMetastore_get_fields_with_environment_context_result::write(:
 }
 
 
-ThriftHiveMetastore_get_fields_with_environment_context_presult::~ThriftHiveMetastore_get_fields_with_environment_context_presult() noexcept {
+ThriftHiveMetastore_alter_dataconnector_presult::~ThriftHiveMetastore_alter_dataconnector_presult() noexcept {
 }
 
 
-uint32_t ThriftHiveMetastore_get_fields_with_environment_context_presult::read(::apache::thrift::protocol::TProtocol* iprot) {
+uint32_t ThriftHiveMetastore_alter_dataconnector_presult::read(::apache::thrift::protocol::TProtocol* iprot) {
 
   ::apache::thrift::protocol::TInputRecursionTracker tracker(*iprot);
   uint32_t xfer = 0;
@@ -4629,18 +4392,19 @@ uint32_t ThriftHiveMetastore_get_fields_with_environment_context_presult::read(:
     }
     switch (fid)
     {
+<<<<<<< HEAD
       case 0:
         if (ftype == ::apache::thrift::protocol::T_LIST) {
           {
             (*(this->success)).clear();
-            uint32_t _size1705;
-            ::apache::thrift::protocol::TType _etype1708;
-            xfer += iprot->readListBegin(_etype1708, _size1705);
-            (*(this->success)).resize(_size1705);
-            uint32_t _i1709;
-            for (_i1709 = 0; _i1709 < _size1705; ++_i1709)
+            uint32_t _size1694;
+            ::apache::thrift::protocol::TType _etype1697;
+            xfer += iprot->readListBegin(_etype1697, _size1694);
+            (*(this->success)).resize(_size1694);
+            uint32_t _i1698;
+            for (_i1698 = 0; _i1698 < _size1694; ++_i1698)
             {
-              xfer += (*(this->success))[_i1709].read(iprot);
+              xfer += (*(this->success))[_i1698].read(iprot);
             }
             xfer += iprot->readListEnd();
           }
@@ -4649,6 +4413,8 @@ uint32_t ThriftHiveMetastore_get_fields_with_environment_context_presult::read(:
           xfer += iprot->skip(ftype);
         }
         break;
+=======
+>>>>>>> External metastore: clean after rebase
       case 1:
         if (ftype == ::apache::thrift::protocol::T_STRUCT) {
           xfer += this->o1.read(iprot);
@@ -4665,14 +4431,6 @@ uint32_t ThriftHiveMetastore_get_fields_with_environment_context_presult::read(:
           xfer += iprot->skip(ftype);
         }
         break;
-      case 3:
-        if (ftype == ::apache::thrift::protocol::T_STRUCT) {
-          xfer += this->o3.read(iprot);
-          this->__isset.o3 = true;
-        } else {
-          xfer += iprot->skip(ftype);
-        }
-        break;
       default:
         xfer += iprot->skip(ftype);
         break;
@@ -4686,11 +4444,11 @@ uint32_t ThriftHiveMetastore_get_fields_with_environment_context_presult::read(:
 }
 
 
-ThriftHiveMetastore_get_fields_req_args::~ThriftHiveMetastore_get_fields_req_args() noexcept {
+ThriftHiveMetastore_get_type_args::~ThriftHiveMetastore_get_type_args() noexcept {
 }
 
 
-uint32_t ThriftHiveMetastore_get_fields_req_args::read(::apache::thrift::protocol::TProtocol* iprot) {
+uint32_t ThriftHiveMetastore_get_type_args::read(::apache::thrift::protocol::TProtocol* iprot) {
 
   ::apache::thrift::protocol::TInputRecursionTracker tracker(*iprot);
   uint32_t xfer = 0;
@@ -4712,9 +4470,9 @@ uint32_t ThriftHiveMetastore_get_fields_req_args::read(::apache::thrift::protoco
     switch (fid)
     {
       case 1:
-        if (ftype == ::apache::thrift::protocol::T_STRUCT) {
-          xfer += this->req.read(iprot);
-          this->__isset.req = true;
+        if (ftype == ::apache::thrift::protocol::T_STRING) {
+          xfer += iprot->readString(this->name);
+          this->__isset.name = true;
         } else {
           xfer += iprot->skip(ftype);
         }
@@ -4731,13 +4489,13 @@ uint32_t ThriftHiveMetastore_get_fields_req_args::read(::apache::thrift::protoco
   return xfer;
 }
 
-uint32_t ThriftHiveMetastore_get_fields_req_args::write(::apache::thrift::protocol::TProtocol* oprot) const {
+uint32_t ThriftHiveMetastore_get_type_args::write(::apache::thrift::protocol::TProtocol* oprot) const {
   uint32_t xfer = 0;
   ::apache::thrift::protocol::TOutputRecursionTracker tracker(*oprot);
-  xfer += oprot->writeStructBegin("ThriftHiveMetastore_get_fields_req_args");
+  xfer += oprot->writeStructBegin("ThriftHiveMetastore_get_type_args");
 
-  xfer += oprot->writeFieldBegin("req", ::apache::thrift::protocol::T_STRUCT, 1);
-  xfer += this->req.write(oprot);
+  xfer += oprot->writeFieldBegin("name", ::apache::thrift::protocol::T_STRING, 1);
+  xfer += oprot->writeString(this->name);
   xfer += oprot->writeFieldEnd();
 
   xfer += oprot->writeFieldStop();
@@ -4746,17 +4504,17 @@ uint32_t ThriftHiveMetastore_get_fields_req_args::write(::apache::thrift::protoc
 }
 
 
-ThriftHiveMetastore_get_fields_req_pargs::~ThriftHiveMetastore_get_fields_req_pargs() noexcept {
+ThriftHiveMetastore_get_type_pargs::~ThriftHiveMetastore_get_type_pargs() noexcept {
 }
 
 
-uint32_t ThriftHiveMetastore_get_fields_req_pargs::write(::apache::thrift::protocol::TProtocol* oprot) const {
+uint32_t ThriftHiveMetastore_get_type_pargs::write(::apache::thrift::protocol::TProtocol* oprot) const {
   uint32_t xfer = 0;
   ::apache::thrift::protocol::TOutputRecursionTracker tracker(*oprot);
-  xfer += oprot->writeStructBegin("ThriftHiveMetastore_get_fields_req_pargs");
+  xfer += oprot->writeStructBegin("ThriftHiveMetastore_get_type_pargs");
 
-  xfer += oprot->writeFieldBegin("req", ::apache::thrift::protocol::T_STRUCT, 1);
-  xfer += (*(this->req)).write(oprot);
+  xfer += oprot->writeFieldBegin("name", ::apache::thrift::protocol::T_STRING, 1);
+  xfer += oprot->writeString((*(this->name)));
   xfer += oprot->writeFieldEnd();
 
   xfer += oprot->writeFieldStop();
@@ -4765,11 +4523,11 @@ uint32_t ThriftHiveMetastore_get_fields_req_pargs::write(::apache::thrift::proto
 }
 
 
-ThriftHiveMetastore_get_fields_req_result::~ThriftHiveMetastore_get_fields_req_result() noexcept {
+ThriftHiveMetastore_get_type_result::~ThriftHiveMetastore_get_type_result() noexcept {
 }
 
 
-uint32_t ThriftHiveMetastore_get_fields_req_result::read(::apache::thrift::protocol::TProtocol* iprot) {
+uint32_t ThriftHiveMetastore_get_type_result::read(::apache::thrift::protocol::TProtocol* iprot) {
 
   ::apache::thrift::protocol::TInputRecursionTracker tracker(*iprot);
   uint32_t xfer = 0;
@@ -4791,8 +4549,25 @@ uint32_t ThriftHiveMetastore_get_fields_req_result::read(::apache::thrift::proto
     switch (fid)
     {
       case 0:
+<<<<<<< HEAD
+        if (ftype == ::apache::thrift::protocol::T_LIST) {
+          {
+            this->success.clear();
+            uint32_t _size1699;
+            ::apache::thrift::protocol::TType _etype1702;
+            xfer += iprot->readListBegin(_etype1702, _size1699);
+            this->success.resize(_size1699);
+            uint32_t _i1703;
+            for (_i1703 = 0; _i1703 < _size1699; ++_i1703)
+            {
+              xfer += this->success[_i1703].read(iprot);
+            }
+            xfer += iprot->readListEnd();
+          }
+=======
         if (ftype == ::apache::thrift::protocol::T_STRUCT) {
           xfer += this->success.read(iprot);
+>>>>>>> External metastore: clean after rebase
           this->__isset.success = true;
         } else {
           xfer += iprot->skip(ftype);
@@ -4814,14 +4589,6 @@ uint32_t ThriftHiveMetastore_get_fields_req_result::read(::apache::thrift::proto
           xfer += iprot->skip(ftype);
         }
         break;
-      case 3:
-        if (ftype == ::apache::thrift::protocol::T_STRUCT) {
-          xfer += this->o3.read(iprot);
-          this->__isset.o3 = true;
-        } else {
-          xfer += iprot->skip(ftype);
-        }
-        break;
       default:
         xfer += iprot->skip(ftype);
         break;
@@ -4834,15 +4601,28 @@ uint32_t ThriftHiveMetastore_get_fields_req_result::read(::apache::thrift::proto
   return xfer;
 }
 
-uint32_t ThriftHiveMetastore_get_fields_req_result::write(::apache::thrift::protocol::TProtocol* oprot) const {
+uint32_t ThriftHiveMetastore_get_type_result::write(::apache::thrift::protocol::TProtocol* oprot) const {
 
   uint32_t xfer = 0;
 
-  xfer += oprot->writeStructBegin("ThriftHiveMetastore_get_fields_req_result");
+  xfer += oprot->writeStructBegin("ThriftHiveMetastore_get_type_result");
 
   if (this->__isset.success) {
+<<<<<<< HEAD
+    xfer += oprot->writeFieldBegin("success", ::apache::thrift::protocol::T_LIST, 0);
+    {
+      xfer += oprot->writeListBegin(::apache::thrift::protocol::T_STRUCT, static_cast<uint32_t>(this->success.size()));
+      std::vector<FieldSchema> ::const_iterator _iter1704;
+      for (_iter1704 = this->success.begin(); _iter1704 != this->success.end(); ++_iter1704)
+      {
+        xfer += (*_iter1704).write(oprot);
+      }
+      xfer += oprot->writeListEnd();
+    }
+=======
     xfer += oprot->writeFieldBegin("success", ::apache::thrift::protocol::T_STRUCT, 0);
     xfer += this->success.write(oprot);
+>>>>>>> External metastore: clean after rebase
     xfer += oprot->writeFieldEnd();
   } else if (this->__isset.o1) {
     xfer += oprot->writeFieldBegin("o1", ::apache::thrift::protocol::T_STRUCT, 1);
@@ -4852,10 +4632,6 @@ uint32_t ThriftHiveMetastore_get_fields_req_result::write(::apache::thrift::prot
     xfer += oprot->writeFieldBegin("o2", ::apache::thrift::protocol::T_STRUCT, 2);
     xfer += this->o2.write(oprot);
     xfer += oprot->writeFieldEnd();
-  } else if (this->__isset.o3) {
-    xfer += oprot->writeFieldBegin("o3", ::apache::thrift::protocol::T_STRUCT, 3);
-    xfer += this->o3.write(oprot);
-    xfer += oprot->writeFieldEnd();
   }
   xfer += oprot->writeFieldStop();
   xfer += oprot->writeStructEnd();
@@ -4863,11 +4639,11 @@ uint32_t ThriftHiveMetastore_get_fields_req_result::write(::apache::thrift::prot
 }
 
 
-ThriftHiveMetastore_get_fields_req_presult::~ThriftHiveMetastore_get_fields_req_presult() noexcept {
+ThriftHiveMetastore_get_type_presult::~ThriftHiveMetastore_get_type_presult() noexcept {
 }
 
 
-uint32_t ThriftHiveMetastore_get_fields_req_presult::read(::apache::thrift::protocol::TProtocol* iprot) {
+uint32_t ThriftHiveMetastore_get_type_presult::read(::apache::thrift::protocol::TProtocol* iprot) {
 
   ::apache::thrift::protocol::TInputRecursionTracker tracker(*iprot);
   uint32_t xfer = 0;
@@ -4889,8 +4665,25 @@ uint32_t ThriftHiveMetastore_get_fields_req_presult::read(::apache::thrift::prot
     switch (fid)
     {
       case 0:
+<<<<<<< HEAD
+        if (ftype == ::apache::thrift::protocol::T_LIST) {
+          {
+            (*(this->success)).clear();
+            uint32_t _size1705;
+            ::apache::thrift::protocol::TType _etype1708;
+            xfer += iprot->readListBegin(_etype1708, _size1705);
+            (*(this->success)).resize(_size1705);
+            uint32_t _i1709;
+            for (_i1709 = 0; _i1709 < _size1705; ++_i1709)
+            {
+              xfer += (*(this->success))[_i1709].read(iprot);
+            }
+            xfer += iprot->readListEnd();
+          }
+=======
         if (ftype == ::apache::thrift::protocol::T_STRUCT) {
           xfer += (*(this->success)).read(iprot);
+>>>>>>> External metastore: clean after rebase
           this->__isset.success = true;
         } else {
           xfer += iprot->skip(ftype);
@@ -4912,14 +4705,6 @@ uint32_t ThriftHiveMetastore_get_fields_req_presult::read(::apache::thrift::prot
           xfer += iprot->skip(ftype);
         }
         break;
-      case 3:
-        if (ftype == ::apache::thrift::protocol::T_STRUCT) {
-          xfer += this->o3.read(iprot);
-          this->__isset.o3 = true;
-        } else {
-          xfer += iprot->skip(ftype);
-        }
-        break;
       default:
         xfer += iprot->skip(ftype);
         break;
@@ -4933,11 +4718,11 @@ uint32_t ThriftHiveMetastore_get_fields_req_presult::read(::apache::thrift::prot
 }
 
 
-ThriftHiveMetastore_get_schema_args::~ThriftHiveMetastore_get_schema_args() noexcept {
+ThriftHiveMetastore_create_type_args::~ThriftHiveMetastore_create_type_args() noexcept {
 }
 
 
-uint32_t ThriftHiveMetastore_get_schema_args::read(::apache::thrift::protocol::TProtocol* iprot) {
+uint32_t ThriftHiveMetastore_create_type_args::read(::apache::thrift::protocol::TProtocol* iprot) {
 
   ::apache::thrift::protocol::TInputRecursionTracker tracker(*iprot);
   uint32_t xfer = 0;
@@ -4959,17 +4744,9 @@ uint32_t ThriftHiveMetastore_get_schema_args::read(::apache::thrift::protocol::T
     switch (fid)
     {
       case 1:
-        if (ftype == ::apache::thrift::protocol::T_STRING) {
-          xfer += iprot->readString(this->db_name);
-          this->__isset.db_name = true;
-        } else {
-          xfer += iprot->skip(ftype);
-        }
-        break;
-      case 2:
-        if (ftype == ::apache::thrift::protocol::T_STRING) {
-          xfer += iprot->readString(this->table_name);
-          this->__isset.table_name = true;
+        if (ftype == ::apache::thrift::protocol::T_STRUCT) {
+          xfer += this->type.read(iprot);
+          this->__isset.type = true;
         } else {
           xfer += iprot->skip(ftype);
         }
@@ -4986,17 +4763,13 @@ uint32_t ThriftHiveMetastore_get_schema_args::read(::apache::thrift::protocol::T
   return xfer;
 }
 
-uint32_t ThriftHiveMetastore_get_schema_args::write(::apache::thrift::protocol::TProtocol* oprot) const {
+uint32_t ThriftHiveMetastore_create_type_args::write(::apache::thrift::protocol::TProtocol* oprot) const {
   uint32_t xfer = 0;
   ::apache::thrift::protocol::TOutputRecursionTracker tracker(*oprot);
-  xfer += oprot->writeStructBegin("ThriftHiveMetastore_get_schema_args");
-
-  xfer += oprot->writeFieldBegin("db_name", ::apache::thrift::protocol::T_STRING, 1);
-  xfer += oprot->writeString(this->db_name);
-  xfer += oprot->writeFieldEnd();
+  xfer += oprot->writeStructBegin("ThriftHiveMetastore_create_type_args");
 
-  xfer += oprot->writeFieldBegin("table_name", ::apache::thrift::protocol::T_STRING, 2);
-  xfer += oprot->writeString(this->table_name);
+  xfer += oprot->writeFieldBegin("type", ::apache::thrift::protocol::T_STRUCT, 1);
+  xfer += this->type.write(oprot);
   xfer += oprot->writeFieldEnd();
 
   xfer += oprot->writeFieldStop();
@@ -5005,21 +4778,17 @@ uint32_t ThriftHiveMetastore_get_schema_args::write(::apache::thrift::protocol::
 }
 
 
-ThriftHiveMetastore_get_schema_pargs::~ThriftHiveMetastore_get_schema_pargs() noexcept {
+ThriftHiveMetastore_create_type_pargs::~ThriftHiveMetastore_create_type_pargs() noexcept {
 }
 
 
-uint32_t ThriftHiveMetastore_get_schema_pargs::write(::apache::thrift::protocol::TProtocol* oprot) const {
+uint32_t ThriftHiveMetastore_create_type_pargs::write(::apache::thrift::protocol::TProtocol* oprot) const {
   uint32_t xfer = 0;
   ::apache::thrift::protocol::TOutputRecursionTracker tracker(*oprot);
-  xfer += oprot->writeStructBegin("ThriftHiveMetastore_get_schema_pargs");
-
-  xfer += oprot->writeFieldBegin("db_name", ::apache::thrift::protocol::T_STRING, 1);
-  xfer += oprot->writeString((*(this->db_name)));
-  xfer += oprot->writeFieldEnd();
+  xfer += oprot->writeStructBegin("ThriftHiveMetastore_create_type_pargs");
 
-  xfer += oprot->writeFieldBegin("table_name", ::apache::thrift::protocol::T_STRING, 2);
-  xfer += oprot->writeString((*(this->table_name)));
+  xfer += oprot->writeFieldBegin("type", ::apache::thrift::protocol::T_STRUCT, 1);
+  xfer += (*(this->type)).write(oprot);
   xfer += oprot->writeFieldEnd();
 
   xfer += oprot->writeFieldStop();
@@ -5028,11 +4797,11 @@ uint32_t ThriftHiveMetastore_get_schema_pargs::write(::apache::thrift::protocol:
 }
 
 
-ThriftHiveMetastore_get_schema_result::~ThriftHiveMetastore_get_schema_result() noexcept {
+ThriftHiveMetastore_create_type_result::~ThriftHiveMetastore_create_type_result() noexcept {
 }
 
 
-uint32_t ThriftHiveMetastore_get_schema_result::read(::apache::thrift::protocol::TProtocol* iprot) {
+uint32_t ThriftHiveMetastore_create_type_result::read(::apache::thrift::protocol::TProtocol* iprot) {
 
   ::apache::thrift::protocol::TInputRecursionTracker tracker(*iprot);
   uint32_t xfer = 0;
@@ -5054,20 +4823,8 @@ uint32_t ThriftHiveMetastore_get_schema_result::read(::apache::thrift::protocol:
     switch (fid)
     {
       case 0:
-        if (ftype == ::apache::thrift::protocol::T_LIST) {
-          {
-            this->success.clear();
-            uint32_t _size1710;
-            ::apache::thrift::protocol::TType _etype1713;
-            xfer += iprot->readListBegin(_etype1713, _size1710);
-            this->success.resize(_size1710);
-            uint32_t _i1714;
-            for (_i1714 = 0; _i1714 < _size1710; ++_i1714)
-            {
-              xfer += this->success[_i1714].read(iprot);
-            }
-            xfer += iprot->readListEnd();
-          }
+        if (ftype == ::apache::thrift::protocol::T_BOOL) {
+          xfer += iprot->readBool(this->success);
           this->__isset.success = true;
         } else {
           xfer += iprot->skip(ftype);
@@ -5109,23 +4866,15 @@ uint32_t ThriftHiveMetastore_get_schema_result::read(::apache::thrift::protocol:
   return xfer;
 }
 
-uint32_t ThriftHiveMetastore_get_schema_result::write(::apache::thrift::protocol::TProtocol* oprot) const {
+uint32_t ThriftHiveMetastore_create_type_result::write(::apache::thrift::protocol::TProtocol* oprot) const {
 
   uint32_t xfer = 0;
 
-  xfer += oprot->writeStructBegin("ThriftHiveMetastore_get_schema_result");
+  xfer += oprot->writeStructBegin("ThriftHiveMetastore_create_type_result");
 
   if (this->__isset.success) {
-    xfer += oprot->writeFieldBegin("success", ::apache::thrift::protocol::T_LIST, 0);
-    {
-      xfer += oprot->writeListBegin(::apache::thrift::protocol::T_STRUCT, static_cast<uint32_t>(this->success.size()));
-      std::vector<FieldSchema> ::const_iterator _iter1715;
-      for (_iter1715 = this->success.begin(); _iter1715 != this->success.end(); ++_iter1715)
-      {
-        xfer += (*_iter1715).write(oprot);
-      }
-      xfer += oprot->writeListEnd();
-    }
+    xfer += oprot->writeFieldBegin("success", ::apache::thrift::protocol::T_BOOL, 0);
+    xfer += oprot->writeBool(this->success);
     xfer += oprot->writeFieldEnd();
   } else if (this->__isset.o1) {
     xfer += oprot->writeFieldBegin("o1", ::apache::thrift::protocol::T_STRUCT, 1);
@@ -5146,11 +4895,11 @@ uint32_t ThriftHiveMetastore_get_schema_result::write(::apache::thrift::protocol
 }
 
 
-ThriftHiveMetastore_get_schema_presult::~ThriftHiveMetastore_get_schema_presult() noexcept {
+ThriftHiveMetastore_create_type_presult::~ThriftHiveMetastore_create_type_presult() noexcept {
 }
 
 
-uint32_t ThriftHiveMetastore_get_schema_presult::read(::apache::thrift::protocol::TProtocol* iprot) {
+uint32_t ThriftHiveMetastore_create_type_presult::read(::apache::thrift::protocol::TProtocol* iprot) {
 
   ::apache::thrift::protocol::TInputRecursionTracker tracker(*iprot);
   uint32_t xfer = 0;
@@ -5172,20 +4921,8 @@ uint32_t ThriftHiveMetastore_get_schema_presult::read(::apache::thrift::protocol
     switch (fid)
     {
       case 0:
-        if (ftype == ::apache::thrift::protocol::T_LIST) {
-          {
-            (*(this->success)).clear();
-            uint32_t _size1716;
-            ::apache::thrift::protocol::TType _etype1719;
-            xfer += iprot->readListBegin(_etype1719, _size1716);
-            (*(this->success)).resize(_size1716);
-            uint32_t _i1720;
-            for (_i1720 = 0; _i1720 < _size1716; ++_i1720)
-            {
-              xfer += (*(this->success))[_i1720].read(iprot);
-            }
-            xfer += iprot->readListEnd();
-          }
+        if (ftype == ::apache::thrift::protocol::T_BOOL) {
+          xfer += iprot->readBool((*(this->success)));
           this->__isset.success = true;
         } else {
           xfer += iprot->skip(ftype);
@@ -5228,11 +4965,11 @@ uint32_t ThriftHiveMetastore_get_schema_presult::read(::apache::thrift::protocol
 }
 
 
-ThriftHiveMetastore_get_schema_with_environment_context_args::~ThriftHiveMetastore_get_schema_with_environment_context_args() noexcept {
+ThriftHiveMetastore_drop_type_args::~ThriftHiveMetastore_drop_type_args() noexcept {
 }
 
 
-uint32_t ThriftHiveMetastore_get_schema_with_environment_context_args::read(::apache::thrift::protocol::TProtocol* iprot) {
+uint32_t ThriftHiveMetastore_drop_type_args::read(::apache::thrift::protocol::TProtocol* iprot) {
 
   ::apache::thrift::protocol::TInputRecursionTracker tracker(*iprot);
   uint32_t xfer = 0;
@@ -5255,24 +4992,8 @@ uint32_t ThriftHiveMetastore_get_schema_with_environment_context_args::read(::ap
     {
       case 1:
         if (ftype == ::apache::thrift::protocol::T_STRING) {
-          xfer += iprot->readString(this->db_name);
-          this->__isset.db_name = true;
-        } else {
-          xfer += iprot->skip(ftype);
-        }
-        break;
-      case 2:
-        if (ftype == ::apache::thrift::protocol::T_STRING) {
-          xfer += iprot->readString(this->table_name);
-          this->__isset.table_name = true;
-        } else {
-          xfer += iprot->skip(ftype);
-        }
-        break;
-      case 3:
-        if (ftype == ::apache::thrift::protocol::T_STRUCT) {
-          xfer += this->environment_context.read(iprot);
-          this->__isset.environment_context = true;
+          xfer += iprot->readString(this->type);
+          this->__isset.type = true;
         } else {
           xfer += iprot->skip(ftype);
         }
@@ -5289,21 +5010,13 @@ uint32_t ThriftHiveMetastore_get_schema_with_environment_context_args::read(::ap
   return xfer;
 }
 
-uint32_t ThriftHiveMetastore_get_schema_with_environment_context_args::write(::apache::thrift::protocol::TProtocol* oprot) const {
+uint32_t ThriftHiveMetastore_drop_type_args::write(::apache::thrift::protocol::TProtocol* oprot) const {
   uint32_t xfer = 0;
   ::apache::thrift::protocol::TOutputRecursionTracker tracker(*oprot);
-  xfer += oprot->writeStructBegin("ThriftHiveMetastore_get_schema_with_environment_context_args");
-
-  xfer += oprot->writeFieldBegin("db_name", ::apache::thrift::protocol::T_STRING, 1);
-  xfer += oprot->writeString(this->db_name);
-  xfer += oprot->writeFieldEnd();
-
-  xfer += oprot->writeFieldBegin("table_name", ::apache::thrift::protocol::T_STRING, 2);
-  xfer += oprot->writeString(this->table_name);
-  xfer += oprot->writeFieldEnd();
+  xfer += oprot->writeStructBegin("ThriftHiveMetastore_drop_type_args");
 
-  xfer += oprot->writeFieldBegin("environment_context", ::apache::thrift::protocol::T_STRUCT, 3);
-  xfer += this->environment_context.write(oprot);
+  xfer += oprot->writeFieldBegin("type", ::apache::thrift::protocol::T_STRING, 1);
+  xfer += oprot->writeString(this->type);
   xfer += oprot->writeFieldEnd();
 
   xfer += oprot->writeFieldStop();
@@ -5312,25 +5025,17 @@ uint32_t ThriftHiveMetastore_get_schema_with_environment_context_args::write(::a
 }
 
 
-ThriftHiveMetastore_get_schema_with_environment_context_pargs::~ThriftHiveMetastore_get_schema_with_environment_context_pargs() noexcept {
+ThriftHiveMetastore_drop_type_pargs::~ThriftHiveMetastore_drop_type_pargs() noexcept {
 }
 
 
-uint32_t ThriftHiveMetastore_get_schema_with_environment_context_pargs::write(::apache::thrift::protocol::TProtocol* oprot) const {
+uint32_t ThriftHiveMetastore_drop_type_pargs::write(::apache::thrift::protocol::TProtocol* oprot) const {
   uint32_t xfer = 0;
   ::apache::thrift::protocol::TOutputRecursionTracker tracker(*oprot);
-  xfer += oprot->writeStructBegin("ThriftHiveMetastore_get_schema_with_environment_context_pargs");
-
-  xfer += oprot->writeFieldBegin("db_name", ::apache::thrift::protocol::T_STRING, 1);
-  xfer += oprot->writeString((*(this->db_name)));
-  xfer += oprot->writeFieldEnd();
-
-  xfer += oprot->writeFieldBegin("table_name", ::apache::thrift::protocol::T_STRING, 2);
-  xfer += oprot->writeString((*(this->table_name)));
-  xfer += oprot->writeFieldEnd();
+  xfer += oprot->writeStructBegin("ThriftHiveMetastore_drop_type_pargs");
 
-  xfer += oprot->writeFieldBegin("environment_context", ::apache::thrift::protocol::T_STRUCT, 3);
-  xfer += (*(this->environment_context)).write(oprot);
+  xfer += oprot->writeFieldBegin("type", ::apache::thrift::protocol::T_STRING, 1);
+  xfer += oprot->writeString((*(this->type)));
   xfer += oprot->writeFieldEnd();
 
   xfer += oprot->writeFieldStop();
@@ -5339,11 +5044,11 @@ uint32_t ThriftHiveMetastore_get_schema_with_environment_context_pargs::write(::
 }
 
 
-ThriftHiveMetastore_get_schema_with_environment_context_result::~ThriftHiveMetastore_get_schema_with_environment_context_result() noexcept {
+ThriftHiveMetastore_drop_type_result::~ThriftHiveMetastore_drop_type_result() noexcept {
 }
 
 
-uint32_t ThriftHiveMetastore_get_schema_with_environment_context_result::read(::apache::thrift::protocol::TProtocol* iprot) {
+uint32_t ThriftHiveMetastore_drop_type_result::read(::apache::thrift::protocol::TProtocol* iprot) {
 
   ::apache::thrift::protocol::TInputRecursionTracker tracker(*iprot);
   uint32_t xfer = 0;
@@ -5365,20 +5070,25 @@ uint32_t ThriftHiveMetastore_get_schema_with_environment_context_result::read(::
     switch (fid)
     {
       case 0:
+<<<<<<< HEAD
         if (ftype == ::apache::thrift::protocol::T_LIST) {
           {
             this->success.clear();
-            uint32_t _size1721;
-            ::apache::thrift::protocol::TType _etype1724;
-            xfer += iprot->readListBegin(_etype1724, _size1721);
-            this->success.resize(_size1721);
-            uint32_t _i1725;
-            for (_i1725 = 0; _i1725 < _size1721; ++_i1725)
+            uint32_t _size1710;
+            ::apache::thrift::protocol::TType _etype1713;
+            xfer += iprot->readListBegin(_etype1713, _size1710);
+            this->success.resize(_size1710);
+            uint32_t _i1714;
+            for (_i1714 = 0; _i1714 < _size1710; ++_i1714)
             {
-              xfer += this->success[_i1725].read(iprot);
+              xfer += this->success[_i1714].read(iprot);
             }
             xfer += iprot->readListEnd();
           }
+=======
+        if (ftype == ::apache::thrift::protocol::T_BOOL) {
+          xfer += iprot->readBool(this->success);
+>>>>>>> External metastore: clean after rebase
           this->__isset.success = true;
         } else {
           xfer += iprot->skip(ftype);
@@ -5400,14 +5110,6 @@ uint32_t ThriftHiveMetastore_get_schema_with_environment_context_result::read(::
           xfer += iprot->skip(ftype);
         }
         break;
-      case 3:
-        if (ftype == ::apache::thrift::protocol::T_STRUCT) {
-          xfer += this->o3.read(iprot);
-          this->__isset.o3 = true;
-        } else {
-          xfer += iprot->skip(ftype);
-        }
-        break;
       default:
         xfer += iprot->skip(ftype);
         break;
@@ -5420,23 +5122,28 @@ uint32_t ThriftHiveMetastore_get_schema_with_environment_context_result::read(::
   return xfer;
 }
 
-uint32_t ThriftHiveMetastore_get_schema_with_environment_context_result::write(::apache::thrift::protocol::TProtocol* oprot) const {
+uint32_t ThriftHiveMetastore_drop_type_result::write(::apache::thrift::protocol::TProtocol* oprot) const {
 
   uint32_t xfer = 0;
 
-  xfer += oprot->writeStructBegin("ThriftHiveMetastore_get_schema_with_environment_context_result");
+  xfer += oprot->writeStructBegin("ThriftHiveMetastore_drop_type_result");
 
   if (this->__isset.success) {
+<<<<<<< HEAD
     xfer += oprot->writeFieldBegin("success", ::apache::thrift::protocol::T_LIST, 0);
     {
       xfer += oprot->writeListBegin(::apache::thrift::protocol::T_STRUCT, static_cast<uint32_t>(this->success.size()));
-      std::vector<FieldSchema> ::const_iterator _iter1726;
-      for (_iter1726 = this->success.begin(); _iter1726 != this->success.end(); ++_iter1726)
+      std::vector<FieldSchema> ::const_iterator _iter1715;
+      for (_iter1715 = this->success.begin(); _iter1715 != this->success.end(); ++_iter1715)
       {
-        xfer += (*_iter1726).write(oprot);
+        xfer += (*_iter1715).write(oprot);
       }
       xfer += oprot->writeListEnd();
     }
+=======
+    xfer += oprot->writeFieldBegin("success", ::apache::thrift::protocol::T_BOOL, 0);
+    xfer += oprot->writeBool(this->success);
+>>>>>>> External metastore: clean after rebase
     xfer += oprot->writeFieldEnd();
   } else if (this->__isset.o1) {
     xfer += oprot->writeFieldBegin("o1", ::apache::thrift::protocol::T_STRUCT, 1);
@@ -5446,10 +5153,6 @@ uint32_t ThriftHiveMetastore_get_schema_with_environment_context_result::write(:
     xfer += oprot->writeFieldBegin("o2", ::apache::thrift::protocol::T_STRUCT, 2);
     xfer += this->o2.write(oprot);
     xfer += oprot->writeFieldEnd();
-  } else if (this->__isset.o3) {
-    xfer += oprot->writeFieldBegin("o3", ::apache::thrift::protocol::T_STRUCT, 3);
-    xfer += this->o3.write(oprot);
-    xfer += oprot->writeFieldEnd();
   }
   xfer += oprot->writeFieldStop();
   xfer += oprot->writeStructEnd();
@@ -5457,11 +5160,11 @@ uint32_t ThriftHiveMetastore_get_schema_with_environment_context_result::write(:
 }
 
 
-ThriftHiveMetastore_get_schema_with_environment_context_presult::~ThriftHiveMetastore_get_schema_with_environment_context_presult() noexcept {
+ThriftHiveMetastore_drop_type_presult::~ThriftHiveMetastore_drop_type_presult() noexcept {
 }
 
 
-uint32_t ThriftHiveMetastore_get_schema_with_environment_context_presult::read(::apache::thrift::protocol::TProtocol* iprot) {
+uint32_t ThriftHiveMetastore_drop_type_presult::read(::apache::thrift::protocol::TProtocol* iprot) {
 
   ::apache::thrift::protocol::TInputRecursionTracker tracker(*iprot);
   uint32_t xfer = 0;
@@ -5483,20 +5186,25 @@ uint32_t ThriftHiveMetastore_get_schema_with_environment_context_presult::read(:
     switch (fid)
     {
       case 0:
+<<<<<<< HEAD
         if (ftype == ::apache::thrift::protocol::T_LIST) {
           {
             (*(this->success)).clear();
-            uint32_t _size1727;
-            ::apache::thrift::protocol::TType _etype1730;
-            xfer += iprot->readListBegin(_etype1730, _size1727);
-            (*(this->success)).resize(_size1727);
-            uint32_t _i1731;
-            for (_i1731 = 0; _i1731 < _size1727; ++_i1731)
+            uint32_t _size1716;
+            ::apache::thrift::protocol::TType _etype1719;
+            xfer += iprot->readListBegin(_etype1719, _size1716);
+            (*(this->success)).resize(_size1716);
+            uint32_t _i1720;
+            for (_i1720 = 0; _i1720 < _size1716; ++_i1720)
             {
-              xfer += (*(this->success))[_i1731].read(iprot);
+              xfer += (*(this->success))[_i1720].read(iprot);
             }
             xfer += iprot->readListEnd();
           }
+=======
+        if (ftype == ::apache::thrift::protocol::T_BOOL) {
+          xfer += iprot->readBool((*(this->success)));
+>>>>>>> External metastore: clean after rebase
           this->__isset.success = true;
         } else {
           xfer += iprot->skip(ftype);
@@ -5518,14 +5226,6 @@ uint32_t ThriftHiveMetastore_get_schema_with_environment_context_presult::read(:
           xfer += iprot->skip(ftype);
         }
         break;
-      case 3:
-        if (ftype == ::apache::thrift::protocol::T_STRUCT) {
-          xfer += this->o3.read(iprot);
-          this->__isset.o3 = true;
-        } else {
-          xfer += iprot->skip(ftype);
-        }
-        break;
       default:
         xfer += iprot->skip(ftype);
         break;
@@ -5539,11 +5239,11 @@ uint32_t ThriftHiveMetastore_get_schema_with_environment_context_presult::read(:
 }
 
 
-ThriftHiveMetastore_get_schema_req_args::~ThriftHiveMetastore_get_schema_req_args() noexcept {
+ThriftHiveMetastore_get_type_all_args::~ThriftHiveMetastore_get_type_all_args() noexcept {
 }
 
 
-uint32_t ThriftHiveMetastore_get_schema_req_args::read(::apache::thrift::protocol::TProtocol* iprot) {
+uint32_t ThriftHiveMetastore_get_type_all_args::read(::apache::thrift::protocol::TProtocol* iprot) {
 
   ::apache::thrift::protocol::TInputRecursionTracker tracker(*iprot);
   uint32_t xfer = 0;
@@ -5565,9 +5265,9 @@ uint32_t ThriftHiveMetastore_get_schema_req_args::read(::apache::thrift::protoco
     switch (fid)
     {
       case 1:
-        if (ftype == ::apache::thrift::protocol::T_STRUCT) {
-          xfer += this->req.read(iprot);
-          this->__isset.req = true;
+        if (ftype == ::apache::thrift::protocol::T_STRING) {
+          xfer += iprot->readString(this->name);
+          this->__isset.name = true;
         } else {
           xfer += iprot->skip(ftype);
         }
@@ -5584,13 +5284,13 @@ uint32_t ThriftHiveMetastore_get_schema_req_args::read(::apache::thrift::protoco
   return xfer;
 }
 
-uint32_t ThriftHiveMetastore_get_schema_req_args::write(::apache::thrift::protocol::TProtocol* oprot) const {
+uint32_t ThriftHiveMetastore_get_type_all_args::write(::apache::thrift::protocol::TProtocol* oprot) const {
   uint32_t xfer = 0;
   ::apache::thrift::protocol::TOutputRecursionTracker tracker(*oprot);
-  xfer += oprot->writeStructBegin("ThriftHiveMetastore_get_schema_req_args");
+  xfer += oprot->writeStructBegin("ThriftHiveMetastore_get_type_all_args");
 
-  xfer += oprot->writeFieldBegin("req", ::apache::thrift::protocol::T_STRUCT, 1);
-  xfer += this->req.write(oprot);
+  xfer += oprot->writeFieldBegin("name", ::apache::thrift::protocol::T_STRING, 1);
+  xfer += oprot->writeString(this->name);
   xfer += oprot->writeFieldEnd();
 
   xfer += oprot->writeFieldStop();
@@ -5599,17 +5299,17 @@ uint32_t ThriftHiveMetastore_get_schema_req_args::write(::apache::thrift::protoc
 }
 
 
-ThriftHiveMetastore_get_schema_req_pargs::~ThriftHiveMetastore_get_schema_req_pargs() noexcept {
+ThriftHiveMetastore_get_type_all_pargs::~ThriftHiveMetastore_get_type_all_pargs() noexcept {
 }
 
 
-uint32_t ThriftHiveMetastore_get_schema_req_pargs::write(::apache::thrift::protocol::TProtocol* oprot) const {
+uint32_t ThriftHiveMetastore_get_type_all_pargs::write(::apache::thrift::protocol::TProtocol* oprot) const {
   uint32_t xfer = 0;
   ::apache::thrift::protocol::TOutputRecursionTracker tracker(*oprot);
-  xfer += oprot->writeStructBegin("ThriftHiveMetastore_get_schema_req_pargs");
+  xfer += oprot->writeStructBegin("ThriftHiveMetastore_get_type_all_pargs");
 
-  xfer += oprot->writeFieldBegin("req", ::apache::thrift::protocol::T_STRUCT, 1);
-  xfer += (*(this->req)).write(oprot);
+  xfer += oprot->writeFieldBegin("name", ::apache::thrift::protocol::T_STRING, 1);
+  xfer += oprot->writeString((*(this->name)));
   xfer += oprot->writeFieldEnd();
 
   xfer += oprot->writeFieldStop();
@@ -5618,11 +5318,11 @@ uint32_t ThriftHiveMetastore_get_schema_req_pargs::write(::apache::thrift::proto
 }
 
 
-ThriftHiveMetastore_get_schema_req_result::~ThriftHiveMetastore_get_schema_req_result() noexcept {
+ThriftHiveMetastore_get_type_all_result::~ThriftHiveMetastore_get_type_all_result() noexcept {
 }
 
 
-uint32_t ThriftHiveMetastore_get_schema_req_result::read(::apache::thrift::protocol::TProtocol* iprot) {
+uint32_t ThriftHiveMetastore_get_type_all_result::read(::apache::thrift::protocol::TProtocol* iprot) {
 
   ::apache::thrift::protocol::TInputRecursionTracker tracker(*iprot);
   uint32_t xfer = 0;
@@ -5644,8 +5344,34 @@ uint32_t ThriftHiveMetastore_get_schema_req_result::read(::apache::thrift::proto
     switch (fid)
     {
       case 0:
-        if (ftype == ::apache::thrift::protocol::T_STRUCT) {
-          xfer += this->success.read(iprot);
+        if (ftype == ::apache::thrift::protocol::T_MAP) {
+          {
+            this->success.clear();
+<<<<<<< HEAD
+            uint32_t _size1721;
+            ::apache::thrift::protocol::TType _etype1724;
+            xfer += iprot->readListBegin(_etype1724, _size1721);
+            this->success.resize(_size1721);
+            uint32_t _i1725;
+            for (_i1725 = 0; _i1725 < _size1721; ++_i1725)
+            {
+              xfer += this->success[_i1725].read(iprot);
+=======
+            uint32_t _size1701;
+            ::apache::thrift::protocol::TType _ktype1702;
+            ::apache::thrift::protocol::TType _vtype1703;
+            xfer += iprot->readMapBegin(_ktype1702, _vtype1703, _size1701);
+            uint32_t _i1705;
+            for (_i1705 = 0; _i1705 < _size1701; ++_i1705)
+            {
+              std::string _key1706;
+              xfer += iprot->readString(_key1706);
+              Type& _val1707 = this->success[_key1706];
+              xfer += _val1707.read(iprot);
+>>>>>>> External metastore: clean after rebase
+            }
+            xfer += iprot->readMapEnd();
+          }
           this->__isset.success = true;
         } else {
           xfer += iprot->skip(ftype);
@@ -5653,28 +5379,12 @@ uint32_t ThriftHiveMetastore_get_schema_req_result::read(::apache::thrift::proto
         break;
       case 1:
         if (ftype == ::apache::thrift::protocol::T_STRUCT) {
-          xfer += this->o1.read(iprot);
-          this->__isset.o1 = true;
-        } else {
-          xfer += iprot->skip(ftype);
-        }
-        break;
-      case 2:
-        if (ftype == ::apache::thrift::protocol::T_STRUCT) {
           xfer += this->o2.read(iprot);
           this->__isset.o2 = true;
         } else {
           xfer += iprot->skip(ftype);
         }
         break;
-      case 3:
-        if (ftype == ::apache::thrift::protocol::T_STRUCT) {
-          xfer += this->o3.read(iprot);
-          this->__isset.o3 = true;
-        } else {
-          xfer += iprot->skip(ftype);
-        }
-        break;
       default:
         xfer += iprot->skip(ftype);
         break;
@@ -5687,28 +5397,37 @@ uint32_t ThriftHiveMetastore_get_schema_req_result::read(::apache::thrift::proto
   return xfer;
 }
 
-uint32_t ThriftHiveMetastore_get_schema_req_result::write(::apache::thrift::protocol::TProtocol* oprot) const {
+uint32_t ThriftHiveMetastore_get_type_all_result::write(::apache::thrift::protocol::TProtocol* oprot) const {
 
   uint32_t xfer = 0;
 
-  xfer += oprot->writeStructBegin("ThriftHiveMetastore_get_schema_req_result");
+  xfer += oprot->writeStructBegin("ThriftHiveMetastore_get_type_all_result");
 
   if (this->__isset.success) {
-    xfer += oprot->writeFieldBegin("success", ::apache::thrift::protocol::T_STRUCT, 0);
-    xfer += this->success.write(oprot);
-    xfer += oprot->writeFieldEnd();
-  } else if (this->__isset.o1) {
-    xfer += oprot->writeFieldBegin("o1", ::apache::thrift::protocol::T_STRUCT, 1);
-    xfer += this->o1.write(oprot);
+    xfer += oprot->writeFieldBegin("success", ::apache::thrift::protocol::T_MAP, 0);
+    {
+<<<<<<< HEAD
+      xfer += oprot->writeListBegin(::apache::thrift::protocol::T_STRUCT, static_cast<uint32_t>(this->success.size()));
+      std::vector<FieldSchema> ::const_iterator _iter1726;
+      for (_iter1726 = this->success.begin(); _iter1726 != this->success.end(); ++_iter1726)
+      {
+        xfer += (*_iter1726).write(oprot);
+=======
+      xfer += oprot->writeMapBegin(::apache::thrift::protocol::T_STRING, ::apache::thrift::protocol::T_STRUCT, static_cast<uint32_t>(this->success.size()));
+      std::map<std::string, Type> ::const_iterator _iter1708;
+      for (_iter1708 = this->success.begin(); _iter1708 != this->success.end(); ++_iter1708)
+      {
+        xfer += oprot->writeString(_iter1708->first);
+        xfer += _iter1708->second.write(oprot);
+>>>>>>> External metastore: clean after rebase
+      }
+      xfer += oprot->writeMapEnd();
+    }
     xfer += oprot->writeFieldEnd();
   } else if (this->__isset.o2) {
-    xfer += oprot->writeFieldBegin("o2", ::apache::thrift::protocol::T_STRUCT, 2);
+    xfer += oprot->writeFieldBegin("o2", ::apache::thrift::protocol::T_STRUCT, 1);
     xfer += this->o2.write(oprot);
     xfer += oprot->writeFieldEnd();
-  } else if (this->__isset.o3) {
-    xfer += oprot->writeFieldBegin("o3", ::apache::thrift::protocol::T_STRUCT, 3);
-    xfer += this->o3.write(oprot);
-    xfer += oprot->writeFieldEnd();
   }
   xfer += oprot->writeFieldStop();
   xfer += oprot->writeStructEnd();
@@ -5716,11 +5435,11 @@ uint32_t ThriftHiveMetastore_get_schema_req_result::write(::apache::thrift::prot
 }
 
 
-ThriftHiveMetastore_get_schema_req_presult::~ThriftHiveMetastore_get_schema_req_presult() noexcept {
+ThriftHiveMetastore_get_type_all_presult::~ThriftHiveMetastore_get_type_all_presult() noexcept {
 }
 
 
-uint32_t ThriftHiveMetastore_get_schema_req_presult::read(::apache::thrift::protocol::TProtocol* iprot) {
+uint32_t ThriftHiveMetastore_get_type_all_presult::read(::apache::thrift::protocol::TProtocol* iprot) {
 
   ::apache::thrift::protocol::TInputRecursionTracker tracker(*iprot);
   uint32_t xfer = 0;
@@ -5742,8 +5461,34 @@ uint32_t ThriftHiveMetastore_get_schema_req_presult::read(::apache::thrift::prot
     switch (fid)
     {
       case 0:
-        if (ftype == ::apache::thrift::protocol::T_STRUCT) {
-          xfer += (*(this->success)).read(iprot);
+        if (ftype == ::apache::thrift::protocol::T_MAP) {
+          {
+            (*(this->success)).clear();
+<<<<<<< HEAD
+            uint32_t _size1727;
+            ::apache::thrift::protocol::TType _etype1730;
+            xfer += iprot->readListBegin(_etype1730, _size1727);
+            (*(this->success)).resize(_size1727);
+            uint32_t _i1731;
+            for (_i1731 = 0; _i1731 < _size1727; ++_i1731)
+            {
+              xfer += (*(this->success))[_i1731].read(iprot);
+=======
+            uint32_t _size1709;
+            ::apache::thrift::protocol::TType _ktype1710;
+            ::apache::thrift::protocol::TType _vtype1711;
+            xfer += iprot->readMapBegin(_ktype1710, _vtype1711, _size1709);
+            uint32_t _i1713;
+            for (_i1713 = 0; _i1713 < _size1709; ++_i1713)
+            {
+              std::string _key1714;
+              xfer += iprot->readString(_key1714);
+              Type& _val1715 = (*(this->success))[_key1714];
+              xfer += _val1715.read(iprot);
+>>>>>>> External metastore: clean after rebase
+            }
+            xfer += iprot->readMapEnd();
+          }
           this->__isset.success = true;
         } else {
           xfer += iprot->skip(ftype);
@@ -5751,28 +5496,12 @@ uint32_t ThriftHiveMetastore_get_schema_req_presult::read(::apache::thrift::prot
         break;
       case 1:
         if (ftype == ::apache::thrift::protocol::T_STRUCT) {
-          xfer += this->o1.read(iprot);
-          this->__isset.o1 = true;
-        } else {
-          xfer += iprot->skip(ftype);
-        }
-        break;
-      case 2:
-        if (ftype == ::apache::thrift::protocol::T_STRUCT) {
           xfer += this->o2.read(iprot);
           this->__isset.o2 = true;
         } else {
           xfer += iprot->skip(ftype);
         }
         break;
-      case 3:
-        if (ftype == ::apache::thrift::protocol::T_STRUCT) {
-          xfer += this->o3.read(iprot);
-          this->__isset.o3 = true;
-        } else {
-          xfer += iprot->skip(ftype);
-        }
-        break;
       default:
         xfer += iprot->skip(ftype);
         break;
@@ -5786,11 +5515,11 @@ uint32_t ThriftHiveMetastore_get_schema_req_presult::read(::apache::thrift::prot
 }
 
 
-ThriftHiveMetastore_create_table_args::~ThriftHiveMetastore_create_table_args() noexcept {
+ThriftHiveMetastore_get_fields_args::~ThriftHiveMetastore_get_fields_args() noexcept {
 }
 
 
-uint32_t ThriftHiveMetastore_create_table_args::read(::apache::thrift::protocol::TProtocol* iprot) {
+uint32_t ThriftHiveMetastore_get_fields_args::read(::apache::thrift::protocol::TProtocol* iprot) {
 
   ::apache::thrift::protocol::TInputRecursionTracker tracker(*iprot);
   uint32_t xfer = 0;
@@ -5812,9 +5541,17 @@ uint32_t ThriftHiveMetastore_create_table_args::read(::apache::thrift::protocol:
     switch (fid)
     {
       case 1:
-        if (ftype == ::apache::thrift::protocol::T_STRUCT) {
-          xfer += this->tbl.read(iprot);
-          this->__isset.tbl = true;
+        if (ftype == ::apache::thrift::protocol::T_STRING) {
+          xfer += iprot->readString(this->db_name);
+          this->__isset.db_name = true;
+        } else {
+          xfer += iprot->skip(ftype);
+        }
+        break;
+      case 2:
+        if (ftype == ::apache::thrift::protocol::T_STRING) {
+          xfer += iprot->readString(this->table_name);
+          this->__isset.table_name = true;
         } else {
           xfer += iprot->skip(ftype);
         }
@@ -5831,13 +5568,17 @@ uint32_t ThriftHiveMetastore_create_table_args::read(::apache::thrift::protocol:
   return xfer;
 }
 
-uint32_t ThriftHiveMetastore_create_table_args::write(::apache::thrift::protocol::TProtocol* oprot) const {
+uint32_t ThriftHiveMetastore_get_fields_args::write(::apache::thrift::protocol::TProtocol* oprot) const {
   uint32_t xfer = 0;
   ::apache::thrift::protocol::TOutputRecursionTracker tracker(*oprot);
-  xfer += oprot->writeStructBegin("ThriftHiveMetastore_create_table_args");
+  xfer += oprot->writeStructBegin("ThriftHiveMetastore_get_fields_args");
 
-  xfer += oprot->writeFieldBegin("tbl", ::apache::thrift::protocol::T_STRUCT, 1);
-  xfer += this->tbl.write(oprot);
+  xfer += oprot->writeFieldBegin("db_name", ::apache::thrift::protocol::T_STRING, 1);
+  xfer += oprot->writeString(this->db_name);
+  xfer += oprot->writeFieldEnd();
+
+  xfer += oprot->writeFieldBegin("table_name", ::apache::thrift::protocol::T_STRING, 2);
+  xfer += oprot->writeString(this->table_name);
   xfer += oprot->writeFieldEnd();
 
   xfer += oprot->writeFieldStop();
@@ -5846,17 +5587,21 @@ uint32_t ThriftHiveMetastore_create_table_args::write(::apache::thrift::protocol
 }
 
 
-ThriftHiveMetastore_create_table_pargs::~ThriftHiveMetastore_create_table_pargs() noexcept {
+ThriftHiveMetastore_get_fields_pargs::~ThriftHiveMetastore_get_fields_pargs() noexcept {
 }
 
 
-uint32_t ThriftHiveMetastore_create_table_pargs::write(::apache::thrift::protocol::TProtocol* oprot) const {
+uint32_t ThriftHiveMetastore_get_fields_pargs::write(::apache::thrift::protocol::TProtocol* oprot) const {
   uint32_t xfer = 0;
   ::apache::thrift::protocol::TOutputRecursionTracker tracker(*oprot);
-  xfer += oprot->writeStructBegin("ThriftHiveMetastore_create_table_pargs");
+  xfer += oprot->writeStructBegin("ThriftHiveMetastore_get_fields_pargs");
 
-  xfer += oprot->writeFieldBegin("tbl", ::apache::thrift::protocol::T_STRUCT, 1);
-  xfer += (*(this->tbl)).write(oprot);
+  xfer += oprot->writeFieldBegin("db_name", ::apache::thrift::protocol::T_STRING, 1);
+  xfer += oprot->writeString((*(this->db_name)));
+  xfer += oprot->writeFieldEnd();
+
+  xfer += oprot->writeFieldBegin("table_name", ::apache::thrift::protocol::T_STRING, 2);
+  xfer += oprot->writeString((*(this->table_name)));
   xfer += oprot->writeFieldEnd();
 
   xfer += oprot->writeFieldStop();
@@ -5865,11 +5610,11 @@ uint32_t ThriftHiveMetastore_create_table_pargs::write(::apache::thrift::protoco
 }
 
 
-ThriftHiveMetastore_create_table_result::~ThriftHiveMetastore_create_table_result() noexcept {
+ThriftHiveMetastore_get_fields_result::~ThriftHiveMetastore_get_fields_result() noexcept {
 }
 
 
-uint32_t ThriftHiveMetastore_create_table_result::read(::apache::thrift::protocol::TProtocol* iprot) {
+uint32_t ThriftHiveMetastore_get_fields_result::read(::apache::thrift::protocol::TProtocol* iprot) {
 
   ::apache::thrift::protocol::TInputRecursionTracker tracker(*iprot);
   uint32_t xfer = 0;
@@ -5890,6 +5635,26 @@ uint32_t ThriftHiveMetastore_create_table_result::read(::apache::thrift::protoco
     }
     switch (fid)
     {
+      case 0:
+        if (ftype == ::apache::thrift::protocol::T_LIST) {
+          {
+            this->success.clear();
+            uint32_t _size1716;
+            ::apache::thrift::protocol::TType _etype1719;
+            xfer += iprot->readListBegin(_etype1719, _size1716);
+            this->success.resize(_size1716);
+            uint32_t _i1720;
+            for (_i1720 = 0; _i1720 < _size1716; ++_i1720)
+            {
+              xfer += this->success[_i1720].read(iprot);
+            }
+            xfer += iprot->readListEnd();
+          }
+          this->__isset.success = true;
+        } else {
+          xfer += iprot->skip(ftype);
+        }
+        break;
       case 1:
         if (ftype == ::apache::thrift::protocol::T_STRUCT) {
           xfer += this->o1.read(iprot);
@@ -5914,14 +5679,6 @@ uint32_t ThriftHiveMetastore_create_table_result::read(::apache::thrift::protoco
           xfer += iprot->skip(ftype);
         }
         break;
-      case 4:
-        if (ftype == ::apache::thrift::protocol::T_STRUCT) {
-          xfer += this->o4.read(iprot);
-          this->__isset.o4 = true;
-        } else {
-          xfer += iprot->skip(ftype);
-        }
-        break;
       default:
         xfer += iprot->skip(ftype);
         break;
@@ -5934,13 +5691,25 @@ uint32_t ThriftHiveMetastore_create_table_result::read(::apache::thrift::protoco
   return xfer;
 }
 
-uint32_t ThriftHiveMetastore_create_table_result::write(::apache::thrift::protocol::TProtocol* oprot) const {
+uint32_t ThriftHiveMetastore_get_fields_result::write(::apache::thrift::protocol::TProtocol* oprot) const {
 
   uint32_t xfer = 0;
 
-  xfer += oprot->writeStructBegin("ThriftHiveMetastore_create_table_result");
+  xfer += oprot->writeStructBegin("ThriftHiveMetastore_get_fields_result");
 
-  if (this->__isset.o1) {
+  if (this->__isset.success) {
+    xfer += oprot->writeFieldBegin("success", ::apache::thrift::protocol::T_LIST, 0);
+    {
+      xfer += oprot->writeListBegin(::apache::thrift::protocol::T_STRUCT, static_cast<uint32_t>(this->success.size()));
+      std::vector<FieldSchema> ::const_iterator _iter1721;
+      for (_iter1721 = this->success.begin(); _iter1721 != this->success.end(); ++_iter1721)
+      {
+        xfer += (*_iter1721).write(oprot);
+      }
+      xfer += oprot->writeListEnd();
+    }
+    xfer += oprot->writeFieldEnd();
+  } else if (this->__isset.o1) {
     xfer += oprot->writeFieldBegin("o1", ::apache::thrift::protocol::T_STRUCT, 1);
     xfer += this->o1.write(oprot);
     xfer += oprot->writeFieldEnd();
@@ -5952,10 +5721,6 @@ uint32_t ThriftHiveMetastore_create_table_result::write(::apache::thrift::protoc
     xfer += oprot->writeFieldBegin("o3", ::apache::thrift::protocol::T_STRUCT, 3);
     xfer += this->o3.write(oprot);
     xfer += oprot->writeFieldEnd();
-  } else if (this->__isset.o4) {
-    xfer += oprot->writeFieldBegin("o4", ::apache::thrift::protocol::T_STRUCT, 4);
-    xfer += this->o4.write(oprot);
-    xfer += oprot->writeFieldEnd();
   }
   xfer += oprot->writeFieldStop();
   xfer += oprot->writeStructEnd();
@@ -5963,11 +5728,11 @@ uint32_t ThriftHiveMetastore_create_table_result::write(::apache::thrift::protoc
 }
 
 
-ThriftHiveMetastore_create_table_presult::~ThriftHiveMetastore_create_table_presult() noexcept {
+ThriftHiveMetastore_get_fields_presult::~ThriftHiveMetastore_get_fields_presult() noexcept {
 }
 
 
-uint32_t ThriftHiveMetastore_create_table_presult::read(::apache::thrift::protocol::TProtocol* iprot) {
+uint32_t ThriftHiveMetastore_get_fields_presult::read(::apache::thrift::protocol::TProtocol* iprot) {
 
   ::apache::thrift::protocol::TInputRecursionTracker tracker(*iprot);
   uint32_t xfer = 0;
@@ -5988,6 +5753,26 @@ uint32_t ThriftHiveMetastore_create_table_presult::read(::apache::thrift::protoc
     }
     switch (fid)
     {
+      case 0:
+        if (ftype == ::apache::thrift::protocol::T_LIST) {
+          {
+            (*(this->success)).clear();
+            uint32_t _size1722;
+            ::apache::thrift::protocol::TType _etype1725;
+            xfer += iprot->readListBegin(_etype1725, _size1722);
+            (*(this->success)).resize(_size1722);
+            uint32_t _i1726;
+            for (_i1726 = 0; _i1726 < _size1722; ++_i1726)
+            {
+              xfer += (*(this->success))[_i1726].read(iprot);
+            }
+            xfer += iprot->readListEnd();
+          }
+          this->__isset.success = true;
+        } else {
+          xfer += iprot->skip(ftype);
+        }
+        break;
       case 1:
         if (ftype == ::apache::thrift::protocol::T_STRUCT) {
           xfer += this->o1.read(iprot);
@@ -6012,14 +5797,6 @@ uint32_t ThriftHiveMetastore_create_table_presult::read(::apache::thrift::protoc
           xfer += iprot->skip(ftype);
         }
         break;
-      case 4:
-        if (ftype == ::apache::thrift::protocol::T_STRUCT) {
-          xfer += this->o4.read(iprot);
-          this->__isset.o4 = true;
-        } else {
-          xfer += iprot->skip(ftype);
-        }
-        break;
       default:
         xfer += iprot->skip(ftype);
         break;
@@ -6033,11 +5810,11 @@ uint32_t ThriftHiveMetastore_create_table_presult::read(::apache::thrift::protoc
 }
 
 
-ThriftHiveMetastore_create_table_with_environment_context_args::~ThriftHiveMetastore_create_table_with_environment_context_args() noexcept {
+ThriftHiveMetastore_get_fields_with_environment_context_args::~ThriftHiveMetastore_get_fields_with_environment_context_args() noexcept {
 }
 
 
-uint32_t ThriftHiveMetastore_create_table_with_environment_context_args::read(::apache::thrift::protocol::TProtocol* iprot) {
+uint32_t ThriftHiveMetastore_get_fields_with_environment_context_args::read(::apache::thrift::protocol::TProtocol* iprot) {
 
   ::apache::thrift::protocol::TInputRecursionTracker tracker(*iprot);
   uint32_t xfer = 0;
@@ -6059,14 +5836,22 @@ uint32_t ThriftHiveMetastore_create_table_with_environment_context_args::read(::
     switch (fid)
     {
       case 1:
-        if (ftype == ::apache::thrift::protocol::T_STRUCT) {
-          xfer += this->tbl.read(iprot);
-          this->__isset.tbl = true;
+        if (ftype == ::apache::thrift::protocol::T_STRING) {
+          xfer += iprot->readString(this->db_name);
+          this->__isset.db_name = true;
         } else {
           xfer += iprot->skip(ftype);
         }
         break;
       case 2:
+        if (ftype == ::apache::thrift::protocol::T_STRING) {
+          xfer += iprot->readString(this->table_name);
+          this->__isset.table_name = true;
+        } else {
+          xfer += iprot->skip(ftype);
+        }
+        break;
+      case 3:
         if (ftype == ::apache::thrift::protocol::T_STRUCT) {
           xfer += this->environment_context.read(iprot);
           this->__isset.environment_context = true;
@@ -6086,16 +5871,20 @@ uint32_t ThriftHiveMetastore_create_table_with_environment_context_args::read(::
   return xfer;
 }
 
-uint32_t ThriftHiveMetastore_create_table_with_environment_context_args::write(::apache::thrift::protocol::TProtocol* oprot) const {
+uint32_t ThriftHiveMetastore_get_fields_with_environment_context_args::write(::apache::thrift::protocol::TProtocol* oprot) const {
   uint32_t xfer = 0;
   ::apache::thrift::protocol::TOutputRecursionTracker tracker(*oprot);
-  xfer += oprot->writeStructBegin("ThriftHiveMetastore_create_table_with_environment_context_args");
+  xfer += oprot->writeStructBegin("ThriftHiveMetastore_get_fields_with_environment_context_args");
 
-  xfer += oprot->writeFieldBegin("tbl", ::apache::thrift::protocol::T_STRUCT, 1);
-  xfer += this->tbl.write(oprot);
+  xfer += oprot->writeFieldBegin("db_name", ::apache::thrift::protocol::T_STRING, 1);
+  xfer += oprot->writeString(this->db_name);
   xfer += oprot->writeFieldEnd();
 
-  xfer += oprot->writeFieldBegin("environment_context", ::apache::thrift::protocol::T_STRUCT, 2);
+  xfer += oprot->writeFieldBegin("table_name", ::apache::thrift::protocol::T_STRING, 2);
+  xfer += oprot->writeString(this->table_name);
+  xfer += oprot->writeFieldEnd();
+
+  xfer += oprot->writeFieldBegin("environment_context", ::apache::thrift::protocol::T_STRUCT, 3);
   xfer += this->environment_context.write(oprot);
   xfer += oprot->writeFieldEnd();
 
@@ -6105,20 +5894,24 @@ uint32_t ThriftHiveMetastore_create_table_with_environment_context_args::write(:
 }
 
 
-ThriftHiveMetastore_create_table_with_environment_context_pargs::~ThriftHiveMetastore_create_table_with_environment_context_pargs() noexcept {
+ThriftHiveMetastore_get_fields_with_environment_context_pargs::~ThriftHiveMetastore_get_fields_with_environment_context_pargs() noexcept {
 }
 
 
-uint32_t ThriftHiveMetastore_create_table_with_environment_context_pargs::write(::apache::thrift::protocol::TProtocol* oprot) const {
+uint32_t ThriftHiveMetastore_get_fields_with_environment_context_pargs::write(::apache::thrift::protocol::TProtocol* oprot) const {
   uint32_t xfer = 0;
   ::apache::thrift::protocol::TOutputRecursionTracker tracker(*oprot);
-  xfer += oprot->writeStructBegin("ThriftHiveMetastore_create_table_with_environment_context_pargs");
+  xfer += oprot->writeStructBegin("ThriftHiveMetastore_get_fields_with_environment_context_pargs");
 
-  xfer += oprot->writeFieldBegin("tbl", ::apache::thrift::protocol::T_STRUCT, 1);
-  xfer += (*(this->tbl)).write(oprot);
+  xfer += oprot->writeFieldBegin("db_name", ::apache::thrift::protocol::T_STRING, 1);
+  xfer += oprot->writeString((*(this->db_name)));
   xfer += oprot->writeFieldEnd();
 
-  xfer += oprot->writeFieldBegin("environment_context", ::apache::thrift::protocol::T_STRUCT, 2);
+  xfer += oprot->writeFieldBegin("table_name", ::apache::thrift::protocol::T_STRING, 2);
+  xfer += oprot->writeString((*(this->table_name)));
+  xfer += oprot->writeFieldEnd();
+
+  xfer += oprot->writeFieldBegin("environment_context", ::apache::thrift::protocol::T_STRUCT, 3);
   xfer += (*(this->environment_context)).write(oprot);
   xfer += oprot->writeFieldEnd();
 
@@ -6128,11 +5921,11 @@ uint32_t ThriftHiveMetastore_create_table_with_environment_context_pargs::write(
 }
 
 
-ThriftHiveMetastore_create_table_with_environment_context_result::~ThriftHiveMetastore_create_table_with_environment_context_result() noexcept {
+ThriftHiveMetastore_get_fields_with_environment_context_result::~ThriftHiveMetastore_get_fields_with_environment_context_result() noexcept {
 }
 
 
-uint32_t ThriftHiveMetastore_create_table_with_environment_context_result::read(::apache::thrift::protocol::TProtocol* iprot) {
+uint32_t ThriftHiveMetastore_get_fields_with_environment_context_result::read(::apache::thrift::protocol::TProtocol* iprot) {
 
   ::apache::thrift::protocol::TInputRecursionTracker tracker(*iprot);
   uint32_t xfer = 0;
@@ -6153,6 +5946,26 @@ uint32_t ThriftHiveMetastore_create_table_with_environment_context_result::read(
     }
     switch (fid)
     {
+      case 0:
+        if (ftype == ::apache::thrift::protocol::T_LIST) {
+          {
+            this->success.clear();
+            uint32_t _size1727;
+            ::apache::thrift::protocol::TType _etype1730;
+            xfer += iprot->readListBegin(_etype1730, _size1727);
+            this->success.resize(_size1727);
+            uint32_t _i1731;
+            for (_i1731 = 0; _i1731 < _size1727; ++_i1731)
+            {
+              xfer += this->success[_i1731].read(iprot);
+            }
+            xfer += iprot->readListEnd();
+          }
+          this->__isset.success = true;
+        } else {
+          xfer += iprot->skip(ftype);
+        }
+        break;
       case 1:
         if (ftype == ::apache::thrift::protocol::T_STRUCT) {
           xfer += this->o1.read(iprot);
@@ -6177,14 +5990,6 @@ uint32_t ThriftHiveMetastore_create_table_with_environment_context_result::read(
           xfer += iprot->skip(ftype);
         }
         break;
-      case 4:
-        if (ftype == ::apache::thrift::protocol::T_STRUCT) {
-          xfer += this->o4.read(iprot);
-          this->__isset.o4 = true;
-        } else {
-          xfer += iprot->skip(ftype);
-        }
-        break;
       default:
         xfer += iprot->skip(ftype);
         break;
@@ -6197,13 +6002,25 @@ uint32_t ThriftHiveMetastore_create_table_with_environment_context_result::read(
   return xfer;
 }
 
-uint32_t ThriftHiveMetastore_create_table_with_environment_context_result::write(::apache::thrift::protocol::TProtocol* oprot) const {
+uint32_t ThriftHiveMetastore_get_fields_with_environment_context_result::write(::apache::thrift::protocol::TProtocol* oprot) const {
 
   uint32_t xfer = 0;
 
-  xfer += oprot->writeStructBegin("ThriftHiveMetastore_create_table_with_environment_context_result");
+  xfer += oprot->writeStructBegin("ThriftHiveMetastore_get_fields_with_environment_context_result");
 
-  if (this->__isset.o1) {
+  if (this->__isset.success) {
+    xfer += oprot->writeFieldBegin("success", ::apache::thrift::protocol::T_LIST, 0);
+    {
+      xfer += oprot->writeListBegin(::apache::thrift::protocol::T_STRUCT, static_cast<uint32_t>(this->success.size()));
+      std::vector<FieldSchema> ::const_iterator _iter1732;
+      for (_iter1732 = this->success.begin(); _iter1732 != this->success.end(); ++_iter1732)
+      {
+        xfer += (*_iter1732).write(oprot);
+      }
+      xfer += oprot->writeListEnd();
+    }
+    xfer += oprot->writeFieldEnd();
+  } else if (this->__isset.o1) {
     xfer += oprot->writeFieldBegin("o1", ::apache::thrift::protocol::T_STRUCT, 1);
     xfer += this->o1.write(oprot);
     xfer += oprot->writeFieldEnd();
@@ -6215,10 +6032,6 @@ uint32_t ThriftHiveMetastore_create_table_with_environment_context_result::write
     xfer += oprot->writeFieldBegin("o3", ::apache::thrift::protocol::T_STRUCT, 3);
     xfer += this->o3.write(oprot);
     xfer += oprot->writeFieldEnd();
-  } else if (this->__isset.o4) {
-    xfer += oprot->writeFieldBegin("o4", ::apache::thrift::protocol::T_STRUCT, 4);
-    xfer += this->o4.write(oprot);
-    xfer += oprot->writeFieldEnd();
   }
   xfer += oprot->writeFieldStop();
   xfer += oprot->writeStructEnd();
@@ -6226,11 +6039,1633 @@ uint32_t ThriftHiveMetastore_create_table_with_environment_context_result::write
 }
 
 
-ThriftHiveMetastore_create_table_with_environment_context_presult::~ThriftHiveMetastore_create_table_with_environment_context_presult() noexcept {
+ThriftHiveMetastore_get_fields_with_environment_context_presult::~ThriftHiveMetastore_get_fields_with_environment_context_presult() noexcept {
 }
 
 
-uint32_t ThriftHiveMetastore_create_table_with_environment_context_presult::read(::apache::thrift::protocol::TProtocol* iprot) {
+uint32_t ThriftHiveMetastore_get_fields_with_environment_context_presult::read(::apache::thrift::protocol::TProtocol* iprot) {
+
+  ::apache::thrift::protocol::TInputRecursionTracker tracker(*iprot);
+  uint32_t xfer = 0;
+  std::string fname;
+  ::apache::thrift::protocol::TType ftype;
+  int16_t fid;
+
+  xfer += iprot->readStructBegin(fname);
+
+  using ::apache::thrift::protocol::TProtocolException;
+
+
+  while (true)
+  {
+    xfer += iprot->readFieldBegin(fname, ftype, fid);
+    if (ftype == ::apache::thrift::protocol::T_STOP) {
+      break;
+    }
+    switch (fid)
+    {
+      case 0:
+        if (ftype == ::apache::thrift::protocol::T_LIST) {
+          {
+            (*(this->success)).clear();
+            uint32_t _size1733;
+            ::apache::thrift::protocol::TType _etype1736;
+            xfer += iprot->readListBegin(_etype1736, _size1733);
+            (*(this->success)).resize(_size1733);
+            uint32_t _i1737;
+            for (_i1737 = 0; _i1737 < _size1733; ++_i1737)
+            {
+              xfer += (*(this->success))[_i1737].read(iprot);
+            }
+            xfer += iprot->readListEnd();
+          }
+          this->__isset.success = true;
+        } else {
+          xfer += iprot->skip(ftype);
+        }
+        break;
+      case 1:
+        if (ftype == ::apache::thrift::protocol::T_STRUCT) {
+          xfer += this->o1.read(iprot);
+          this->__isset.o1 = true;
+        } else {
+          xfer += iprot->skip(ftype);
+        }
+        break;
+      case 2:
+        if (ftype == ::apache::thrift::protocol::T_STRUCT) {
+          xfer += this->o2.read(iprot);
+          this->__isset.o2 = true;
+        } else {
+          xfer += iprot->skip(ftype);
+        }
+        break;
+      case 3:
+        if (ftype == ::apache::thrift::protocol::T_STRUCT) {
+          xfer += this->o3.read(iprot);
+          this->__isset.o3 = true;
+        } else {
+          xfer += iprot->skip(ftype);
+        }
+        break;
+      default:
+        xfer += iprot->skip(ftype);
+        break;
+    }
+    xfer += iprot->readFieldEnd();
+  }
+
+  xfer += iprot->readStructEnd();
+
+  return xfer;
+}
+
+
+ThriftHiveMetastore_get_fields_req_args::~ThriftHiveMetastore_get_fields_req_args() noexcept {
+}
+
+
+uint32_t ThriftHiveMetastore_get_fields_req_args::read(::apache::thrift::protocol::TProtocol* iprot) {
+
+  ::apache::thrift::protocol::TInputRecursionTracker tracker(*iprot);
+  uint32_t xfer = 0;
+  std::string fname;
+  ::apache::thrift::protocol::TType ftype;
+  int16_t fid;
+
+  xfer += iprot->readStructBegin(fname);
+
+  using ::apache::thrift::protocol::TProtocolException;
+
+
+  while (true)
+  {
+    xfer += iprot->readFieldBegin(fname, ftype, fid);
+    if (ftype == ::apache::thrift::protocol::T_STOP) {
+      break;
+    }
+    switch (fid)
+    {
+      case 1:
+        if (ftype == ::apache::thrift::protocol::T_STRUCT) {
+          xfer += this->req.read(iprot);
+          this->__isset.req = true;
+        } else {
+          xfer += iprot->skip(ftype);
+        }
+        break;
+      default:
+        xfer += iprot->skip(ftype);
+        break;
+    }
+    xfer += iprot->readFieldEnd();
+  }
+
+  xfer += iprot->readStructEnd();
+
+  return xfer;
+}
+
+uint32_t ThriftHiveMetastore_get_fields_req_args::write(::apache::thrift::protocol::TProtocol* oprot) const {
+  uint32_t xfer = 0;
+  ::apache::thrift::protocol::TOutputRecursionTracker tracker(*oprot);
+  xfer += oprot->writeStructBegin("ThriftHiveMetastore_get_fields_req_args");
+
+  xfer += oprot->writeFieldBegin("req", ::apache::thrift::protocol::T_STRUCT, 1);
+  xfer += this->req.write(oprot);
+  xfer += oprot->writeFieldEnd();
+
+  xfer += oprot->writeFieldStop();
+  xfer += oprot->writeStructEnd();
+  return xfer;
+}
+
+
+ThriftHiveMetastore_get_fields_req_pargs::~ThriftHiveMetastore_get_fields_req_pargs() noexcept {
+}
+
+
+uint32_t ThriftHiveMetastore_get_fields_req_pargs::write(::apache::thrift::protocol::TProtocol* oprot) const {
+  uint32_t xfer = 0;
+  ::apache::thrift::protocol::TOutputRecursionTracker tracker(*oprot);
+  xfer += oprot->writeStructBegin("ThriftHiveMetastore_get_fields_req_pargs");
+
+  xfer += oprot->writeFieldBegin("req", ::apache::thrift::protocol::T_STRUCT, 1);
+  xfer += (*(this->req)).write(oprot);
+  xfer += oprot->writeFieldEnd();
+
+  xfer += oprot->writeFieldStop();
+  xfer += oprot->writeStructEnd();
+  return xfer;
+}
+
+
+ThriftHiveMetastore_get_fields_req_result::~ThriftHiveMetastore_get_fields_req_result() noexcept {
+}
+
+
+uint32_t ThriftHiveMetastore_get_fields_req_result::read(::apache::thrift::protocol::TProtocol* iprot) {
+
+  ::apache::thrift::protocol::TInputRecursionTracker tracker(*iprot);
+  uint32_t xfer = 0;
+  std::string fname;
+  ::apache::thrift::protocol::TType ftype;
+  int16_t fid;
+
+  xfer += iprot->readStructBegin(fname);
+
+  using ::apache::thrift::protocol::TProtocolException;
+
+
+  while (true)
+  {
+    xfer += iprot->readFieldBegin(fname, ftype, fid);
+    if (ftype == ::apache::thrift::protocol::T_STOP) {
+      break;
+    }
+    switch (fid)
+    {
+      case 0:
+        if (ftype == ::apache::thrift::protocol::T_STRUCT) {
+          xfer += this->success.read(iprot);
+          this->__isset.success = true;
+        } else {
+          xfer += iprot->skip(ftype);
+        }
+        break;
+      case 1:
+        if (ftype == ::apache::thrift::protocol::T_STRUCT) {
+          xfer += this->o1.read(iprot);
+          this->__isset.o1 = true;
+        } else {
+          xfer += iprot->skip(ftype);
+        }
+        break;
+      case 2:
+        if (ftype == ::apache::thrift::protocol::T_STRUCT) {
+          xfer += this->o2.read(iprot);
+          this->__isset.o2 = true;
+        } else {
+          xfer += iprot->skip(ftype);
+        }
+        break;
+      case 3:
+        if (ftype == ::apache::thrift::protocol::T_STRUCT) {
+          xfer += this->o3.read(iprot);
+          this->__isset.o3 = true;
+        } else {
+          xfer += iprot->skip(ftype);
+        }
+        break;
+      default:
+        xfer += iprot->skip(ftype);
+        break;
+    }
+    xfer += iprot->readFieldEnd();
+  }
+
+  xfer += iprot->readStructEnd();
+
+  return xfer;
+}
+
+uint32_t ThriftHiveMetastore_get_fields_req_result::write(::apache::thrift::protocol::TProtocol* oprot) const {
+
+  uint32_t xfer = 0;
+
+  xfer += oprot->writeStructBegin("ThriftHiveMetastore_get_fields_req_result");
+
+  if (this->__isset.success) {
+    xfer += oprot->writeFieldBegin("success", ::apache::thrift::protocol::T_STRUCT, 0);
+    xfer += this->success.write(oprot);
+    xfer += oprot->writeFieldEnd();
+  } else if (this->__isset.o1) {
+    xfer += oprot->writeFieldBegin("o1", ::apache::thrift::protocol::T_STRUCT, 1);
+    xfer += this->o1.write(oprot);
+    xfer += oprot->writeFieldEnd();
+  } else if (this->__isset.o2) {
+    xfer += oprot->writeFieldBegin("o2", ::apache::thrift::protocol::T_STRUCT, 2);
+    xfer += this->o2.write(oprot);
+    xfer += oprot->writeFieldEnd();
+  } else if (this->__isset.o3) {
+    xfer += oprot->writeFieldBegin("o3", ::apache::thrift::protocol::T_STRUCT, 3);
+    xfer += this->o3.write(oprot);
+    xfer += oprot->writeFieldEnd();
+  }
+  xfer += oprot->writeFieldStop();
+  xfer += oprot->writeStructEnd();
+  return xfer;
+}
+
+
+ThriftHiveMetastore_get_fields_req_presult::~ThriftHiveMetastore_get_fields_req_presult() noexcept {
+}
+
+
+uint32_t ThriftHiveMetastore_get_fields_req_presult::read(::apache::thrift::protocol::TProtocol* iprot) {
+
+  ::apache::thrift::protocol::TInputRecursionTracker tracker(*iprot);
+  uint32_t xfer = 0;
+  std::string fname;
+  ::apache::thrift::protocol::TType ftype;
+  int16_t fid;
+
+  xfer += iprot->readStructBegin(fname);
+
+  using ::apache::thrift::protocol::TProtocolException;
+
+
+  while (true)
+  {
+    xfer += iprot->readFieldBegin(fname, ftype, fid);
+    if (ftype == ::apache::thrift::protocol::T_STOP) {
+      break;
+    }
+    switch (fid)
+    {
+      case 0:
+        if (ftype == ::apache::thrift::protocol::T_STRUCT) {
+          xfer += (*(this->success)).read(iprot);
+          this->__isset.success = true;
+        } else {
+          xfer += iprot->skip(ftype);
+        }
+        break;
+      case 1:
+        if (ftype == ::apache::thrift::protocol::T_STRUCT) {
+          xfer += this->o1.read(iprot);
+          this->__isset.o1 = true;
+        } else {
+          xfer += iprot->skip(ftype);
+        }
+        break;
+      case 2:
+        if (ftype == ::apache::thrift::protocol::T_STRUCT) {
+          xfer += this->o2.read(iprot);
+          this->__isset.o2 = true;
+        } else {
+          xfer += iprot->skip(ftype);
+        }
+        break;
+      case 3:
+        if (ftype == ::apache::thrift::protocol::T_STRUCT) {
+          xfer += this->o3.read(iprot);
+          this->__isset.o3 = true;
+        } else {
+          xfer += iprot->skip(ftype);
+        }
+        break;
+      default:
+        xfer += iprot->skip(ftype);
+        break;
+    }
+    xfer += iprot->readFieldEnd();
+  }
+
+  xfer += iprot->readStructEnd();
+
+  return xfer;
+}
+
+
+ThriftHiveMetastore_get_schema_args::~ThriftHiveMetastore_get_schema_args() noexcept {
+}
+
+
+uint32_t ThriftHiveMetastore_get_schema_args::read(::apache::thrift::protocol::TProtocol* iprot) {
+
+  ::apache::thrift::protocol::TInputRecursionTracker tracker(*iprot);
+  uint32_t xfer = 0;
+  std::string fname;
+  ::apache::thrift::protocol::TType ftype;
+  int16_t fid;
+
+  xfer += iprot->readStructBegin(fname);
+
+  using ::apache::thrift::protocol::TProtocolException;
+
+
+  while (true)
+  {
+    xfer += iprot->readFieldBegin(fname, ftype, fid);
+    if (ftype == ::apache::thrift::protocol::T_STOP) {
+      break;
+    }
+    switch (fid)
+    {
+      case 1:
+        if (ftype == ::apache::thrift::protocol::T_STRING) {
+          xfer += iprot->readString(this->db_name);
+          this->__isset.db_name = true;
+        } else {
+          xfer += iprot->skip(ftype);
+        }
+        break;
+      case 2:
+        if (ftype == ::apache::thrift::protocol::T_STRING) {
+          xfer += iprot->readString(this->table_name);
+          this->__isset.table_name = true;
+        } else {
+          xfer += iprot->skip(ftype);
+        }
+        break;
+      default:
+        xfer += iprot->skip(ftype);
+        break;
+    }
+    xfer += iprot->readFieldEnd();
+  }
+
+  xfer += iprot->readStructEnd();
+
+  return xfer;
+}
+
+uint32_t ThriftHiveMetastore_get_schema_args::write(::apache::thrift::protocol::TProtocol* oprot) const {
+  uint32_t xfer = 0;
+  ::apache::thrift::protocol::TOutputRecursionTracker tracker(*oprot);
+  xfer += oprot->writeStructBegin("ThriftHiveMetastore_get_schema_args");
+
+  xfer += oprot->writeFieldBegin("db_name", ::apache::thrift::protocol::T_STRING, 1);
+  xfer += oprot->writeString(this->db_name);
+  xfer += oprot->writeFieldEnd();
+
+  xfer += oprot->writeFieldBegin("table_name", ::apache::thrift::protocol::T_STRING, 2);
+  xfer += oprot->writeString(this->table_name);
+  xfer += oprot->writeFieldEnd();
+
+  xfer += oprot->writeFieldStop();
+  xfer += oprot->writeStructEnd();
+  return xfer;
+}
+
+
+ThriftHiveMetastore_get_schema_pargs::~ThriftHiveMetastore_get_schema_pargs() noexcept {
+}
+
+
+uint32_t ThriftHiveMetastore_get_schema_pargs::write(::apache::thrift::protocol::TProtocol* oprot) const {
+  uint32_t xfer = 0;
+  ::apache::thrift::protocol::TOutputRecursionTracker tracker(*oprot);
+  xfer += oprot->writeStructBegin("ThriftHiveMetastore_get_schema_pargs");
+
+  xfer += oprot->writeFieldBegin("db_name", ::apache::thrift::protocol::T_STRING, 1);
+  xfer += oprot->writeString((*(this->db_name)));
+  xfer += oprot->writeFieldEnd();
+
+  xfer += oprot->writeFieldBegin("table_name", ::apache::thrift::protocol::T_STRING, 2);
+  xfer += oprot->writeString((*(this->table_name)));
+  xfer += oprot->writeFieldEnd();
+
+  xfer += oprot->writeFieldStop();
+  xfer += oprot->writeStructEnd();
+  return xfer;
+}
+
+
+ThriftHiveMetastore_get_schema_result::~ThriftHiveMetastore_get_schema_result() noexcept {
+}
+
+
+uint32_t ThriftHiveMetastore_get_schema_result::read(::apache::thrift::protocol::TProtocol* iprot) {
+
+  ::apache::thrift::protocol::TInputRecursionTracker tracker(*iprot);
+  uint32_t xfer = 0;
+  std::string fname;
+  ::apache::thrift::protocol::TType ftype;
+  int16_t fid;
+
+  xfer += iprot->readStructBegin(fname);
+
+  using ::apache::thrift::protocol::TProtocolException;
+
+
+  while (true)
+  {
+    xfer += iprot->readFieldBegin(fname, ftype, fid);
+    if (ftype == ::apache::thrift::protocol::T_STOP) {
+      break;
+    }
+    switch (fid)
+    {
+      case 0:
+        if (ftype == ::apache::thrift::protocol::T_LIST) {
+          {
+            this->success.clear();
+            uint32_t _size1738;
+            ::apache::thrift::protocol::TType _etype1741;
+            xfer += iprot->readListBegin(_etype1741, _size1738);
+            this->success.resize(_size1738);
+            uint32_t _i1742;
+            for (_i1742 = 0; _i1742 < _size1738; ++_i1742)
+            {
+              xfer += this->success[_i1742].read(iprot);
+            }
+            xfer += iprot->readListEnd();
+          }
+          this->__isset.success = true;
+        } else {
+          xfer += iprot->skip(ftype);
+        }
+        break;
+      case 1:
+        if (ftype == ::apache::thrift::protocol::T_STRUCT) {
+          xfer += this->o1.read(iprot);
+          this->__isset.o1 = true;
+        } else {
+          xfer += iprot->skip(ftype);
+        }
+        break;
+      case 2:
+        if (ftype == ::apache::thrift::protocol::T_STRUCT) {
+          xfer += this->o2.read(iprot);
+          this->__isset.o2 = true;
+        } else {
+          xfer += iprot->skip(ftype);
+        }
+        break;
+      case 3:
+        if (ftype == ::apache::thrift::protocol::T_STRUCT) {
+          xfer += this->o3.read(iprot);
+          this->__isset.o3 = true;
+        } else {
+          xfer += iprot->skip(ftype);
+        }
+        break;
+      default:
+        xfer += iprot->skip(ftype);
+        break;
+    }
+    xfer += iprot->readFieldEnd();
+  }
+
+  xfer += iprot->readStructEnd();
+
+  return xfer;
+}
+
+uint32_t ThriftHiveMetastore_get_schema_result::write(::apache::thrift::protocol::TProtocol* oprot) const {
+
+  uint32_t xfer = 0;
+
+  xfer += oprot->writeStructBegin("ThriftHiveMetastore_get_schema_result");
+
+  if (this->__isset.success) {
+    xfer += oprot->writeFieldBegin("success", ::apache::thrift::protocol::T_LIST, 0);
+    {
+      xfer += oprot->writeListBegin(::apache::thrift::protocol::T_STRUCT, static_cast<uint32_t>(this->success.size()));
+      std::vector<FieldSchema> ::const_iterator _iter1743;
+      for (_iter1743 = this->success.begin(); _iter1743 != this->success.end(); ++_iter1743)
+      {
+        xfer += (*_iter1743).write(oprot);
+      }
+      xfer += oprot->writeListEnd();
+    }
+    xfer += oprot->writeFieldEnd();
+  } else if (this->__isset.o1) {
+    xfer += oprot->writeFieldBegin("o1", ::apache::thrift::protocol::T_STRUCT, 1);
+    xfer += this->o1.write(oprot);
+    xfer += oprot->writeFieldEnd();
+  } else if (this->__isset.o2) {
+    xfer += oprot->writeFieldBegin("o2", ::apache::thrift::protocol::T_STRUCT, 2);
+    xfer += this->o2.write(oprot);
+    xfer += oprot->writeFieldEnd();
+  } else if (this->__isset.o3) {
+    xfer += oprot->writeFieldBegin("o3", ::apache::thrift::protocol::T_STRUCT, 3);
+    xfer += this->o3.write(oprot);
+    xfer += oprot->writeFieldEnd();
+  }
+  xfer += oprot->writeFieldStop();
+  xfer += oprot->writeStructEnd();
+  return xfer;
+}
+
+
+ThriftHiveMetastore_get_schema_presult::~ThriftHiveMetastore_get_schema_presult() noexcept {
+}
+
+
+uint32_t ThriftHiveMetastore_get_schema_presult::read(::apache::thrift::protocol::TProtocol* iprot) {
+
+  ::apache::thrift::protocol::TInputRecursionTracker tracker(*iprot);
+  uint32_t xfer = 0;
+  std::string fname;
+  ::apache::thrift::protocol::TType ftype;
+  int16_t fid;
+
+  xfer += iprot->readStructBegin(fname);
+
+  using ::apache::thrift::protocol::TProtocolException;
+
+
+  while (true)
+  {
+    xfer += iprot->readFieldBegin(fname, ftype, fid);
+    if (ftype == ::apache::thrift::protocol::T_STOP) {
+      break;
+    }
+    switch (fid)
+    {
+      case 0:
+        if (ftype == ::apache::thrift::protocol::T_LIST) {
+          {
+            (*(this->success)).clear();
+            uint32_t _size1744;
+            ::apache::thrift::protocol::TType _etype1747;
+            xfer += iprot->readListBegin(_etype1747, _size1744);
+            (*(this->success)).resize(_size1744);
+            uint32_t _i1748;
+            for (_i1748 = 0; _i1748 < _size1744; ++_i1748)
+            {
+              xfer += (*(this->success))[_i1748].read(iprot);
+            }
+            xfer += iprot->readListEnd();
+          }
+          this->__isset.success = true;
+        } else {
+          xfer += iprot->skip(ftype);
+        }
+        break;
+      case 1:
+        if (ftype == ::apache::thrift::protocol::T_STRUCT) {
+          xfer += this->o1.read(iprot);
+          this->__isset.o1 = true;
+        } else {
+          xfer += iprot->skip(ftype);
+        }
+        break;
+      case 2:
+        if (ftype == ::apache::thrift::protocol::T_STRUCT) {
+          xfer += this->o2.read(iprot);
+          this->__isset.o2 = true;
+        } else {
+          xfer += iprot->skip(ftype);
+        }
+        break;
+      case 3:
+        if (ftype == ::apache::thrift::protocol::T_STRUCT) {
+          xfer += this->o3.read(iprot);
+          this->__isset.o3 = true;
+        } else {
+          xfer += iprot->skip(ftype);
+        }
+        break;
+      default:
+        xfer += iprot->skip(ftype);
+        break;
+    }
+    xfer += iprot->readFieldEnd();
+  }
+
+  xfer += iprot->readStructEnd();
+
+  return xfer;
+}
+
+
+ThriftHiveMetastore_get_schema_with_environment_context_args::~ThriftHiveMetastore_get_schema_with_environment_context_args() noexcept {
+}
+
+
+uint32_t ThriftHiveMetastore_get_schema_with_environment_context_args::read(::apache::thrift::protocol::TProtocol* iprot) {
+
+  ::apache::thrift::protocol::TInputRecursionTracker tracker(*iprot);
+  uint32_t xfer = 0;
+  std::string fname;
+  ::apache::thrift::protocol::TType ftype;
+  int16_t fid;
+
+  xfer += iprot->readStructBegin(fname);
+
+  using ::apache::thrift::protocol::TProtocolException;
+
+
+  while (true)
+  {
+    xfer += iprot->readFieldBegin(fname, ftype, fid);
+    if (ftype == ::apache::thrift::protocol::T_STOP) {
+      break;
+    }
+    switch (fid)
+    {
+      case 1:
+        if (ftype == ::apache::thrift::protocol::T_STRING) {
+          xfer += iprot->readString(this->db_name);
+          this->__isset.db_name = true;
+        } else {
+          xfer += iprot->skip(ftype);
+        }
+        break;
+      case 2:
+        if (ftype == ::apache::thrift::protocol::T_STRING) {
+          xfer += iprot->readString(this->table_name);
+          this->__isset.table_name = true;
+        } else {
+          xfer += iprot->skip(ftype);
+        }
+        break;
+      case 3:
+        if (ftype == ::apache::thrift::protocol::T_STRUCT) {
+          xfer += this->environment_context.read(iprot);
+          this->__isset.environment_context = true;
+        } else {
+          xfer += iprot->skip(ftype);
+        }
+        break;
+      default:
+        xfer += iprot->skip(ftype);
+        break;
+    }
+    xfer += iprot->readFieldEnd();
+  }
+
+  xfer += iprot->readStructEnd();
+
+  return xfer;
+}
+
+uint32_t ThriftHiveMetastore_get_schema_with_environment_context_args::write(::apache::thrift::protocol::TProtocol* oprot) const {
+  uint32_t xfer = 0;
+  ::apache::thrift::protocol::TOutputRecursionTracker tracker(*oprot);
+  xfer += oprot->writeStructBegin("ThriftHiveMetastore_get_schema_with_environment_context_args");
+
+  xfer += oprot->writeFieldBegin("db_name", ::apache::thrift::protocol::T_STRING, 1);
+  xfer += oprot->writeString(this->db_name);
+  xfer += oprot->writeFieldEnd();
+
+  xfer += oprot->writeFieldBegin("table_name", ::apache::thrift::protocol::T_STRING, 2);
+  xfer += oprot->writeString(this->table_name);
+  xfer += oprot->writeFieldEnd();
+
+  xfer += oprot->writeFieldBegin("environment_context", ::apache::thrift::protocol::T_STRUCT, 3);
+  xfer += this->environment_context.write(oprot);
+  xfer += oprot->writeFieldEnd();
+
+  xfer += oprot->writeFieldStop();
+  xfer += oprot->writeStructEnd();
+  return xfer;
+}
+
+
+ThriftHiveMetastore_get_schema_with_environment_context_pargs::~ThriftHiveMetastore_get_schema_with_environment_context_pargs() noexcept {
+}
+
+
+uint32_t ThriftHiveMetastore_get_schema_with_environment_context_pargs::write(::apache::thrift::protocol::TProtocol* oprot) const {
+  uint32_t xfer = 0;
+  ::apache::thrift::protocol::TOutputRecursionTracker tracker(*oprot);
+  xfer += oprot->writeStructBegin("ThriftHiveMetastore_get_schema_with_environment_context_pargs");
+
+  xfer += oprot->writeFieldBegin("db_name", ::apache::thrift::protocol::T_STRING, 1);
+  xfer += oprot->writeString((*(this->db_name)));
+  xfer += oprot->writeFieldEnd();
+
+  xfer += oprot->writeFieldBegin("table_name", ::apache::thrift::protocol::T_STRING, 2);
+  xfer += oprot->writeString((*(this->table_name)));
+  xfer += oprot->writeFieldEnd();
+
+  xfer += oprot->writeFieldBegin("environment_context", ::apache::thrift::protocol::T_STRUCT, 3);
+  xfer += (*(this->environment_context)).write(oprot);
+  xfer += oprot->writeFieldEnd();
+
+  xfer += oprot->writeFieldStop();
+  xfer += oprot->writeStructEnd();
+  return xfer;
+}
+
+
+ThriftHiveMetastore_get_schema_with_environment_context_result::~ThriftHiveMetastore_get_schema_with_environment_context_result() noexcept {
+}
+
+
+uint32_t ThriftHiveMetastore_get_schema_with_environment_context_result::read(::apache::thrift::protocol::TProtocol* iprot) {
+
+  ::apache::thrift::protocol::TInputRecursionTracker tracker(*iprot);
+  uint32_t xfer = 0;
+  std::string fname;
+  ::apache::thrift::protocol::TType ftype;
+  int16_t fid;
+
+  xfer += iprot->readStructBegin(fname);
+
+  using ::apache::thrift::protocol::TProtocolException;
+
+
+  while (true)
+  {
+    xfer += iprot->readFieldBegin(fname, ftype, fid);
+    if (ftype == ::apache::thrift::protocol::T_STOP) {
+      break;
+    }
+    switch (fid)
+    {
+      case 0:
+        if (ftype == ::apache::thrift::protocol::T_LIST) {
+          {
+            this->success.clear();
+            uint32_t _size1749;
+            ::apache::thrift::protocol::TType _etype1752;
+            xfer += iprot->readListBegin(_etype1752, _size1749);
+            this->success.resize(_size1749);
+            uint32_t _i1753;
+            for (_i1753 = 0; _i1753 < _size1749; ++_i1753)
+            {
+              xfer += this->success[_i1753].read(iprot);
+            }
+            xfer += iprot->readListEnd();
+          }
+          this->__isset.success = true;
+        } else {
+          xfer += iprot->skip(ftype);
+        }
+        break;
+      case 1:
+        if (ftype == ::apache::thrift::protocol::T_STRUCT) {
+          xfer += this->o1.read(iprot);
+          this->__isset.o1 = true;
+        } else {
+          xfer += iprot->skip(ftype);
+        }
+        break;
+      case 2:
+        if (ftype == ::apache::thrift::protocol::T_STRUCT) {
+          xfer += this->o2.read(iprot);
+          this->__isset.o2 = true;
+        } else {
+          xfer += iprot->skip(ftype);
+        }
+        break;
+      case 3:
+        if (ftype == ::apache::thrift::protocol::T_STRUCT) {
+          xfer += this->o3.read(iprot);
+          this->__isset.o3 = true;
+        } else {
+          xfer += iprot->skip(ftype);
+        }
+        break;
+      default:
+        xfer += iprot->skip(ftype);
+        break;
+    }
+    xfer += iprot->readFieldEnd();
+  }
+
+  xfer += iprot->readStructEnd();
+
+  return xfer;
+}
+
+uint32_t ThriftHiveMetastore_get_schema_with_environment_context_result::write(::apache::thrift::protocol::TProtocol* oprot) const {
+
+  uint32_t xfer = 0;
+
+  xfer += oprot->writeStructBegin("ThriftHiveMetastore_get_schema_with_environment_context_result");
+
+  if (this->__isset.success) {
+    xfer += oprot->writeFieldBegin("success", ::apache::thrift::protocol::T_LIST, 0);
+    {
+      xfer += oprot->writeListBegin(::apache::thrift::protocol::T_STRUCT, static_cast<uint32_t>(this->success.size()));
+      std::vector<FieldSchema> ::const_iterator _iter1754;
+      for (_iter1754 = this->success.begin(); _iter1754 != this->success.end(); ++_iter1754)
+      {
+        xfer += (*_iter1754).write(oprot);
+      }
+      xfer += oprot->writeListEnd();
+    }
+    xfer += oprot->writeFieldEnd();
+  } else if (this->__isset.o1) {
+    xfer += oprot->writeFieldBegin("o1", ::apache::thrift::protocol::T_STRUCT, 1);
+    xfer += this->o1.write(oprot);
+    xfer += oprot->writeFieldEnd();
+  } else if (this->__isset.o2) {
+    xfer += oprot->writeFieldBegin("o2", ::apache::thrift::protocol::T_STRUCT, 2);
+    xfer += this->o2.write(oprot);
+    xfer += oprot->writeFieldEnd();
+  } else if (this->__isset.o3) {
+    xfer += oprot->writeFieldBegin("o3", ::apache::thrift::protocol::T_STRUCT, 3);
+    xfer += this->o3.write(oprot);
+    xfer += oprot->writeFieldEnd();
+  }
+  xfer += oprot->writeFieldStop();
+  xfer += oprot->writeStructEnd();
+  return xfer;
+}
+
+
+ThriftHiveMetastore_get_schema_with_environment_context_presult::~ThriftHiveMetastore_get_schema_with_environment_context_presult() noexcept {
+}
+
+
+uint32_t ThriftHiveMetastore_get_schema_with_environment_context_presult::read(::apache::thrift::protocol::TProtocol* iprot) {
+
+  ::apache::thrift::protocol::TInputRecursionTracker tracker(*iprot);
+  uint32_t xfer = 0;
+  std::string fname;
+  ::apache::thrift::protocol::TType ftype;
+  int16_t fid;
+
+  xfer += iprot->readStructBegin(fname);
+
+  using ::apache::thrift::protocol::TProtocolException;
+
+
+  while (true)
+  {
+    xfer += iprot->readFieldBegin(fname, ftype, fid);
+    if (ftype == ::apache::thrift::protocol::T_STOP) {
+      break;
+    }
+    switch (fid)
+    {
+      case 0:
+        if (ftype == ::apache::thrift::protocol::T_LIST) {
+          {
+            (*(this->success)).clear();
+            uint32_t _size1755;
+            ::apache::thrift::protocol::TType _etype1758;
+            xfer += iprot->readListBegin(_etype1758, _size1755);
+            (*(this->success)).resize(_size1755);
+            uint32_t _i1759;
+            for (_i1759 = 0; _i1759 < _size1755; ++_i1759)
+            {
+              xfer += (*(this->success))[_i1759].read(iprot);
+            }
+            xfer += iprot->readListEnd();
+          }
+          this->__isset.success = true;
+        } else {
+          xfer += iprot->skip(ftype);
+        }
+        break;
+      case 1:
+        if (ftype == ::apache::thrift::protocol::T_STRUCT) {
+          xfer += this->o1.read(iprot);
+          this->__isset.o1 = true;
+        } else {
+          xfer += iprot->skip(ftype);
+        }
+        break;
+      case 2:
+        if (ftype == ::apache::thrift::protocol::T_STRUCT) {
+          xfer += this->o2.read(iprot);
+          this->__isset.o2 = true;
+        } else {
+          xfer += iprot->skip(ftype);
+        }
+        break;
+      case 3:
+        if (ftype == ::apache::thrift::protocol::T_STRUCT) {
+          xfer += this->o3.read(iprot);
+          this->__isset.o3 = true;
+        } else {
+          xfer += iprot->skip(ftype);
+        }
+        break;
+      default:
+        xfer += iprot->skip(ftype);
+        break;
+    }
+    xfer += iprot->readFieldEnd();
+  }
+
+  xfer += iprot->readStructEnd();
+
+  return xfer;
+}
+
+
+ThriftHiveMetastore_get_schema_req_args::~ThriftHiveMetastore_get_schema_req_args() noexcept {
+}
+
+
+uint32_t ThriftHiveMetastore_get_schema_req_args::read(::apache::thrift::protocol::TProtocol* iprot) {
+
+  ::apache::thrift::protocol::TInputRecursionTracker tracker(*iprot);
+  uint32_t xfer = 0;
+  std::string fname;
+  ::apache::thrift::protocol::TType ftype;
+  int16_t fid;
+
+  xfer += iprot->readStructBegin(fname);
+
+  using ::apache::thrift::protocol::TProtocolException;
+
+
+  while (true)
+  {
+    xfer += iprot->readFieldBegin(fname, ftype, fid);
+    if (ftype == ::apache::thrift::protocol::T_STOP) {
+      break;
+    }
+    switch (fid)
+    {
+      case 1:
+        if (ftype == ::apache::thrift::protocol::T_STRUCT) {
+          xfer += this->req.read(iprot);
+          this->__isset.req = true;
+        } else {
+          xfer += iprot->skip(ftype);
+        }
+        break;
+      default:
+        xfer += iprot->skip(ftype);
+        break;
+    }
+    xfer += iprot->readFieldEnd();
+  }
+
+  xfer += iprot->readStructEnd();
+
+  return xfer;
+}
+
+uint32_t ThriftHiveMetastore_get_schema_req_args::write(::apache::thrift::protocol::TProtocol* oprot) const {
+  uint32_t xfer = 0;
+  ::apache::thrift::protocol::TOutputRecursionTracker tracker(*oprot);
+  xfer += oprot->writeStructBegin("ThriftHiveMetastore_get_schema_req_args");
+
+  xfer += oprot->writeFieldBegin("req", ::apache::thrift::protocol::T_STRUCT, 1);
+  xfer += this->req.write(oprot);
+  xfer += oprot->writeFieldEnd();
+
+  xfer += oprot->writeFieldStop();
+  xfer += oprot->writeStructEnd();
+  return xfer;
+}
+
+
+ThriftHiveMetastore_get_schema_req_pargs::~ThriftHiveMetastore_get_schema_req_pargs() noexcept {
+}
+
+
+uint32_t ThriftHiveMetastore_get_schema_req_pargs::write(::apache::thrift::protocol::TProtocol* oprot) const {
+  uint32_t xfer = 0;
+  ::apache::thrift::protocol::TOutputRecursionTracker tracker(*oprot);
+  xfer += oprot->writeStructBegin("ThriftHiveMetastore_get_schema_req_pargs");
+
+  xfer += oprot->writeFieldBegin("req", ::apache::thrift::protocol::T_STRUCT, 1);
+  xfer += (*(this->req)).write(oprot);
+  xfer += oprot->writeFieldEnd();
+
+  xfer += oprot->writeFieldStop();
+  xfer += oprot->writeStructEnd();
+  return xfer;
+}
+
+
+ThriftHiveMetastore_get_schema_req_result::~ThriftHiveMetastore_get_schema_req_result() noexcept {
+}
+
+
+uint32_t ThriftHiveMetastore_get_schema_req_result::read(::apache::thrift::protocol::TProtocol* iprot) {
+
+  ::apache::thrift::protocol::TInputRecursionTracker tracker(*iprot);
+  uint32_t xfer = 0;
+  std::string fname;
+  ::apache::thrift::protocol::TType ftype;
+  int16_t fid;
+
+  xfer += iprot->readStructBegin(fname);
+
+  using ::apache::thrift::protocol::TProtocolException;
+
+
+  while (true)
+  {
+    xfer += iprot->readFieldBegin(fname, ftype, fid);
+    if (ftype == ::apache::thrift::protocol::T_STOP) {
+      break;
+    }
+    switch (fid)
+    {
+      case 0:
+        if (ftype == ::apache::thrift::protocol::T_STRUCT) {
+          xfer += this->success.read(iprot);
+          this->__isset.success = true;
+        } else {
+          xfer += iprot->skip(ftype);
+        }
+        break;
+      case 1:
+        if (ftype == ::apache::thrift::protocol::T_STRUCT) {
+          xfer += this->o1.read(iprot);
+          this->__isset.o1 = true;
+        } else {
+          xfer += iprot->skip(ftype);
+        }
+        break;
+      case 2:
+        if (ftype == ::apache::thrift::protocol::T_STRUCT) {
+          xfer += this->o2.read(iprot);
+          this->__isset.o2 = true;
+        } else {
+          xfer += iprot->skip(ftype);
+        }
+        break;
+      case 3:
+        if (ftype == ::apache::thrift::protocol::T_STRUCT) {
+          xfer += this->o3.read(iprot);
+          this->__isset.o3 = true;
+        } else {
+          xfer += iprot->skip(ftype);
+        }
+        break;
+      default:
+        xfer += iprot->skip(ftype);
+        break;
+    }
+    xfer += iprot->readFieldEnd();
+  }
+
+  xfer += iprot->readStructEnd();
+
+  return xfer;
+}
+
+uint32_t ThriftHiveMetastore_get_schema_req_result::write(::apache::thrift::protocol::TProtocol* oprot) const {
+
+  uint32_t xfer = 0;
+
+  xfer += oprot->writeStructBegin("ThriftHiveMetastore_get_schema_req_result");
+
+  if (this->__isset.success) {
+    xfer += oprot->writeFieldBegin("success", ::apache::thrift::protocol::T_STRUCT, 0);
+    xfer += this->success.write(oprot);
+    xfer += oprot->writeFieldEnd();
+  } else if (this->__isset.o1) {
+    xfer += oprot->writeFieldBegin("o1", ::apache::thrift::protocol::T_STRUCT, 1);
+    xfer += this->o1.write(oprot);
+    xfer += oprot->writeFieldEnd();
+  } else if (this->__isset.o2) {
+    xfer += oprot->writeFieldBegin("o2", ::apache::thrift::protocol::T_STRUCT, 2);
+    xfer += this->o2.write(oprot);
+    xfer += oprot->writeFieldEnd();
+  } else if (this->__isset.o3) {
+    xfer += oprot->writeFieldBegin("o3", ::apache::thrift::protocol::T_STRUCT, 3);
+    xfer += this->o3.write(oprot);
+    xfer += oprot->writeFieldEnd();
+  }
+  xfer += oprot->writeFieldStop();
+  xfer += oprot->writeStructEnd();
+  return xfer;
+}
+
+
+ThriftHiveMetastore_get_schema_req_presult::~ThriftHiveMetastore_get_schema_req_presult() noexcept {
+}
+
+
+uint32_t ThriftHiveMetastore_get_schema_req_presult::read(::apache::thrift::protocol::TProtocol* iprot) {
+
+  ::apache::thrift::protocol::TInputRecursionTracker tracker(*iprot);
+  uint32_t xfer = 0;
+  std::string fname;
+  ::apache::thrift::protocol::TType ftype;
+  int16_t fid;
+
+  xfer += iprot->readStructBegin(fname);
+
+  using ::apache::thrift::protocol::TProtocolException;
+
+
+  while (true)
+  {
+    xfer += iprot->readFieldBegin(fname, ftype, fid);
+    if (ftype == ::apache::thrift::protocol::T_STOP) {
+      break;
+    }
+    switch (fid)
+    {
+      case 0:
+        if (ftype == ::apache::thrift::protocol::T_STRUCT) {
+          xfer += (*(this->success)).read(iprot);
+          this->__isset.success = true;
+        } else {
+          xfer += iprot->skip(ftype);
+        }
+        break;
+      case 1:
+        if (ftype == ::apache::thrift::protocol::T_STRUCT) {
+          xfer += this->o1.read(iprot);
+          this->__isset.o1 = true;
+        } else {
+          xfer += iprot->skip(ftype);
+        }
+        break;
+      case 2:
+        if (ftype == ::apache::thrift::protocol::T_STRUCT) {
+          xfer += this->o2.read(iprot);
+          this->__isset.o2 = true;
+        } else {
+          xfer += iprot->skip(ftype);
+        }
+        break;
+      case 3:
+        if (ftype == ::apache::thrift::protocol::T_STRUCT) {
+          xfer += this->o3.read(iprot);
+          this->__isset.o3 = true;
+        } else {
+          xfer += iprot->skip(ftype);
+        }
+        break;
+      default:
+        xfer += iprot->skip(ftype);
+        break;
+    }
+    xfer += iprot->readFieldEnd();
+  }
+
+  xfer += iprot->readStructEnd();
+
+  return xfer;
+}
+
+
+ThriftHiveMetastore_create_table_args::~ThriftHiveMetastore_create_table_args() noexcept {
+}
+
+
+uint32_t ThriftHiveMetastore_create_table_args::read(::apache::thrift::protocol::TProtocol* iprot) {
+
+  ::apache::thrift::protocol::TInputRecursionTracker tracker(*iprot);
+  uint32_t xfer = 0;
+  std::string fname;
+  ::apache::thrift::protocol::TType ftype;
+  int16_t fid;
+
+  xfer += iprot->readStructBegin(fname);
+
+  using ::apache::thrift::protocol::TProtocolException;
+
+
+  while (true)
+  {
+    xfer += iprot->readFieldBegin(fname, ftype, fid);
+    if (ftype == ::apache::thrift::protocol::T_STOP) {
+      break;
+    }
+    switch (fid)
+    {
+      case 1:
+        if (ftype == ::apache::thrift::protocol::T_STRUCT) {
+          xfer += this->tbl.read(iprot);
+          this->__isset.tbl = true;
+        } else {
+          xfer += iprot->skip(ftype);
+        }
+        break;
+      default:
+        xfer += iprot->skip(ftype);
+        break;
+    }
+    xfer += iprot->readFieldEnd();
+  }
+
+  xfer += iprot->readStructEnd();
+
+  return xfer;
+}
+
+uint32_t ThriftHiveMetastore_create_table_args::write(::apache::thrift::protocol::TProtocol* oprot) const {
+  uint32_t xfer = 0;
+  ::apache::thrift::protocol::TOutputRecursionTracker tracker(*oprot);
+  xfer += oprot->writeStructBegin("ThriftHiveMetastore_create_table_args");
+
+  xfer += oprot->writeFieldBegin("tbl", ::apache::thrift::protocol::T_STRUCT, 1);
+  xfer += this->tbl.write(oprot);
+  xfer += oprot->writeFieldEnd();
+
+  xfer += oprot->writeFieldStop();
+  xfer += oprot->writeStructEnd();
+  return xfer;
+}
+
+
+ThriftHiveMetastore_create_table_pargs::~ThriftHiveMetastore_create_table_pargs() noexcept {
+}
+
+
+uint32_t ThriftHiveMetastore_create_table_pargs::write(::apache::thrift::protocol::TProtocol* oprot) const {
+  uint32_t xfer = 0;
+  ::apache::thrift::protocol::TOutputRecursionTracker tracker(*oprot);
+  xfer += oprot->writeStructBegin("ThriftHiveMetastore_create_table_pargs");
+
+  xfer += oprot->writeFieldBegin("tbl", ::apache::thrift::protocol::T_STRUCT, 1);
+  xfer += (*(this->tbl)).write(oprot);
+  xfer += oprot->writeFieldEnd();
+
+  xfer += oprot->writeFieldStop();
+  xfer += oprot->writeStructEnd();
+  return xfer;
+}
+
+
+ThriftHiveMetastore_create_table_result::~ThriftHiveMetastore_create_table_result() noexcept {
+}
+
+
+uint32_t ThriftHiveMetastore_create_table_result::read(::apache::thrift::protocol::TProtocol* iprot) {
+
+  ::apache::thrift::protocol::TInputRecursionTracker tracker(*iprot);
+  uint32_t xfer = 0;
+  std::string fname;
+  ::apache::thrift::protocol::TType ftype;
+  int16_t fid;
+
+  xfer += iprot->readStructBegin(fname);
+
+  using ::apache::thrift::protocol::TProtocolException;
+
+
+  while (true)
+  {
+    xfer += iprot->readFieldBegin(fname, ftype, fid);
+    if (ftype == ::apache::thrift::protocol::T_STOP) {
+      break;
+    }
+    switch (fid)
+    {
+      case 1:
+        if (ftype == ::apache::thrift::protocol::T_STRUCT) {
+          xfer += this->o1.read(iprot);
+          this->__isset.o1 = true;
+        } else {
+          xfer += iprot->skip(ftype);
+        }
+        break;
+      case 2:
+        if (ftype == ::apache::thrift::protocol::T_STRUCT) {
+          xfer += this->o2.read(iprot);
+          this->__isset.o2 = true;
+        } else {
+          xfer += iprot->skip(ftype);
+        }
+        break;
+      case 3:
+        if (ftype == ::apache::thrift::protocol::T_STRUCT) {
+          xfer += this->o3.read(iprot);
+          this->__isset.o3 = true;
+        } else {
+          xfer += iprot->skip(ftype);
+        }
+        break;
+      case 4:
+        if (ftype == ::apache::thrift::protocol::T_STRUCT) {
+          xfer += this->o4.read(iprot);
+          this->__isset.o4 = true;
+        } else {
+          xfer += iprot->skip(ftype);
+        }
+        break;
+      default:
+        xfer += iprot->skip(ftype);
+        break;
+    }
+    xfer += iprot->readFieldEnd();
+  }
+
+  xfer += iprot->readStructEnd();
+
+  return xfer;
+}
+
+uint32_t ThriftHiveMetastore_create_table_result::write(::apache::thrift::protocol::TProtocol* oprot) const {
+
+  uint32_t xfer = 0;
+
+  xfer += oprot->writeStructBegin("ThriftHiveMetastore_create_table_result");
+
+  if (this->__isset.o1) {
+    xfer += oprot->writeFieldBegin("o1", ::apache::thrift::protocol::T_STRUCT, 1);
+    xfer += this->o1.write(oprot);
+    xfer += oprot->writeFieldEnd();
+  } else if (this->__isset.o2) {
+    xfer += oprot->writeFieldBegin("o2", ::apache::thrift::protocol::T_STRUCT, 2);
+    xfer += this->o2.write(oprot);
+    xfer += oprot->writeFieldEnd();
+  } else if (this->__isset.o3) {
+    xfer += oprot->writeFieldBegin("o3", ::apache::thrift::protocol::T_STRUCT, 3);
+    xfer += this->o3.write(oprot);
+    xfer += oprot->writeFieldEnd();
+  } else if (this->__isset.o4) {
+    xfer += oprot->writeFieldBegin("o4", ::apache::thrift::protocol::T_STRUCT, 4);
+    xfer += this->o4.write(oprot);
+    xfer += oprot->writeFieldEnd();
+  }
+  xfer += oprot->writeFieldStop();
+  xfer += oprot->writeStructEnd();
+  return xfer;
+}
+
+
+ThriftHiveMetastore_create_table_presult::~ThriftHiveMetastore_create_table_presult() noexcept {
+}
+
+
+uint32_t ThriftHiveMetastore_create_table_presult::read(::apache::thrift::protocol::TProtocol* iprot) {
+
+  ::apache::thrift::protocol::TInputRecursionTracker tracker(*iprot);
+  uint32_t xfer = 0;
+  std::string fname;
+  ::apache::thrift::protocol::TType ftype;
+  int16_t fid;
+
+  xfer += iprot->readStructBegin(fname);
+
+  using ::apache::thrift::protocol::TProtocolException;
+
+
+  while (true)
+  {
+    xfer += iprot->readFieldBegin(fname, ftype, fid);
+    if (ftype == ::apache::thrift::protocol::T_STOP) {
+      break;
+    }
+    switch (fid)
+    {
+      case 1:
+        if (ftype == ::apache::thrift::protocol::T_STRUCT) {
+          xfer += this->o1.read(iprot);
+          this->__isset.o1 = true;
+        } else {
+          xfer += iprot->skip(ftype);
+        }
+        break;
+      case 2:
+        if (ftype == ::apache::thrift::protocol::T_STRUCT) {
+          xfer += this->o2.read(iprot);
+          this->__isset.o2 = true;
+        } else {
+          xfer += iprot->skip(ftype);
+        }
+        break;
+      case 3:
+        if (ftype == ::apache::thrift::protocol::T_STRUCT) {
+          xfer += this->o3.read(iprot);
+          this->__isset.o3 = true;
+        } else {
+          xfer += iprot->skip(ftype);
+        }
+        break;
+      case 4:
+        if (ftype == ::apache::thrift::protocol::T_STRUCT) {
+          xfer += this->o4.read(iprot);
+          this->__isset.o4 = true;
+        } else {
+          xfer += iprot->skip(ftype);
+        }
+        break;
+      default:
+        xfer += iprot->skip(ftype);
+        break;
+    }
+    xfer += iprot->readFieldEnd();
+  }
+
+  xfer += iprot->readStructEnd();
+
+  return xfer;
+}
+
+
+ThriftHiveMetastore_create_table_with_environment_context_args::~ThriftHiveMetastore_create_table_with_environment_context_args() noexcept {
+}
+
+
+uint32_t ThriftHiveMetastore_create_table_with_environment_context_args::read(::apache::thrift::protocol::TProtocol* iprot) {
+
+  ::apache::thrift::protocol::TInputRecursionTracker tracker(*iprot);
+  uint32_t xfer = 0;
+  std::string fname;
+  ::apache::thrift::protocol::TType ftype;
+  int16_t fid;
+
+  xfer += iprot->readStructBegin(fname);
+
+  using ::apache::thrift::protocol::TProtocolException;
+
+
+  while (true)
+  {
+    xfer += iprot->readFieldBegin(fname, ftype, fid);
+    if (ftype == ::apache::thrift::protocol::T_STOP) {
+      break;
+    }
+    switch (fid)
+    {
+      case 1:
+        if (ftype == ::apache::thrift::protocol::T_STRUCT) {
+          xfer += this->tbl.read(iprot);
+          this->__isset.tbl = true;
+        } else {
+          xfer += iprot->skip(ftype);
+        }
+        break;
+      case 2:
+        if (ftype == ::apache::thrift::protocol::T_STRUCT) {
+          xfer += this->environment_context.read(iprot);
+          this->__isset.environment_context = true;
+        } else {
+          xfer += iprot->skip(ftype);
+        }
+        break;
+      default:
+        xfer += iprot->skip(ftype);
+        break;
+    }
+    xfer += iprot->readFieldEnd();
+  }
+
+  xfer += iprot->readStructEnd();
+
+  return xfer;
+}
+
+uint32_t ThriftHiveMetastore_create_table_with_environment_context_args::write(::apache::thrift::protocol::TProtocol* oprot) const {
+  uint32_t xfer = 0;
+  ::apache::thrift::protocol::TOutputRecursionTracker tracker(*oprot);
+  xfer += oprot->writeStructBegin("ThriftHiveMetastore_create_table_with_environment_context_args");
+
+  xfer += oprot->writeFieldBegin("tbl", ::apache::thrift::protocol::T_STRUCT, 1);
+  xfer += this->tbl.write(oprot);
+  xfer += oprot->writeFieldEnd();
+
+  xfer += oprot->writeFieldBegin("environment_context", ::apache::thrift::protocol::T_STRUCT, 2);
+  xfer += this->environment_context.write(oprot);
+  xfer += oprot->writeFieldEnd();
+
+  xfer += oprot->writeFieldStop();
+  xfer += oprot->writeStructEnd();
+  return xfer;
+}
+
+
+ThriftHiveMetastore_create_table_with_environment_context_pargs::~ThriftHiveMetastore_create_table_with_environment_context_pargs() noexcept {
+}
+
+
+uint32_t ThriftHiveMetastore_create_table_with_environment_context_pargs::write(::apache::thrift::protocol::TProtocol* oprot) const {
+  uint32_t xfer = 0;
+  ::apache::thrift::protocol::TOutputRecursionTracker tracker(*oprot);
+  xfer += oprot->writeStructBegin("ThriftHiveMetastore_create_table_with_environment_context_pargs");
+
+  xfer += oprot->writeFieldBegin("tbl", ::apache::thrift::protocol::T_STRUCT, 1);
+  xfer += (*(this->tbl)).write(oprot);
+  xfer += oprot->writeFieldEnd();
+
+  xfer += oprot->writeFieldBegin("environment_context", ::apache::thrift::protocol::T_STRUCT, 2);
+  xfer += (*(this->environment_context)).write(oprot);
+  xfer += oprot->writeFieldEnd();
+
+  xfer += oprot->writeFieldStop();
+  xfer += oprot->writeStructEnd();
+  return xfer;
+}
+
+
+ThriftHiveMetastore_create_table_with_environment_context_result::~ThriftHiveMetastore_create_table_with_environment_context_result() noexcept {
+}
+
+
+uint32_t ThriftHiveMetastore_create_table_with_environment_context_result::read(::apache::thrift::protocol::TProtocol* iprot) {
+
+  ::apache::thrift::protocol::TInputRecursionTracker tracker(*iprot);
+  uint32_t xfer = 0;
+  std::string fname;
+  ::apache::thrift::protocol::TType ftype;
+  int16_t fid;
+
+  xfer += iprot->readStructBegin(fname);
+
+  using ::apache::thrift::protocol::TProtocolException;
+
+
+  while (true)
+  {
+    xfer += iprot->readFieldBegin(fname, ftype, fid);
+    if (ftype == ::apache::thrift::protocol::T_STOP) {
+      break;
+    }
+    switch (fid)
+    {
+      case 1:
+        if (ftype == ::apache::thrift::protocol::T_STRUCT) {
+          xfer += this->o1.read(iprot);
+          this->__isset.o1 = true;
+        } else {
+          xfer += iprot->skip(ftype);
+        }
+        break;
+      case 2:
+        if (ftype == ::apache::thrift::protocol::T_STRUCT) {
+          xfer += this->o2.read(iprot);
+          this->__isset.o2 = true;
+        } else {
+          xfer += iprot->skip(ftype);
+        }
+        break;
+      case 3:
+        if (ftype == ::apache::thrift::protocol::T_STRUCT) {
+          xfer += this->o3.read(iprot);
+          this->__isset.o3 = true;
+        } else {
+          xfer += iprot->skip(ftype);
+        }
+        break;
+      case 4:
+        if (ftype == ::apache::thrift::protocol::T_STRUCT) {
+          xfer += this->o4.read(iprot);
+          this->__isset.o4 = true;
+        } else {
+          xfer += iprot->skip(ftype);
+        }
+        break;
+      default:
+        xfer += iprot->skip(ftype);
+        break;
+    }
+    xfer += iprot->readFieldEnd();
+  }
+
+  xfer += iprot->readStructEnd();
+
+  return xfer;
+}
+
+uint32_t ThriftHiveMetastore_create_table_with_environment_context_result::write(::apache::thrift::protocol::TProtocol* oprot) const {
+
+  uint32_t xfer = 0;
+
+  xfer += oprot->writeStructBegin("ThriftHiveMetastore_create_table_with_environment_context_result");
+
+  if (this->__isset.o1) {
+    xfer += oprot->writeFieldBegin("o1", ::apache::thrift::protocol::T_STRUCT, 1);
+    xfer += this->o1.write(oprot);
+    xfer += oprot->writeFieldEnd();
+  } else if (this->__isset.o2) {
+    xfer += oprot->writeFieldBegin("o2", ::apache::thrift::protocol::T_STRUCT, 2);
+    xfer += this->o2.write(oprot);
+    xfer += oprot->writeFieldEnd();
+  } else if (this->__isset.o3) {
+    xfer += oprot->writeFieldBegin("o3", ::apache::thrift::protocol::T_STRUCT, 3);
+    xfer += this->o3.write(oprot);
+    xfer += oprot->writeFieldEnd();
+  } else if (this->__isset.o4) {
+    xfer += oprot->writeFieldBegin("o4", ::apache::thrift::protocol::T_STRUCT, 4);
+    xfer += this->o4.write(oprot);
+    xfer += oprot->writeFieldEnd();
+  }
+  xfer += oprot->writeFieldStop();
+  xfer += oprot->writeStructEnd();
+  return xfer;
+}
+
+
+ThriftHiveMetastore_create_table_with_environment_context_presult::~ThriftHiveMetastore_create_table_with_environment_context_presult() noexcept {
+}
+
+
+uint32_t ThriftHiveMetastore_create_table_with_environment_context_presult::read(::apache::thrift::protocol::TProtocol* iprot) {
 
   ::apache::thrift::protocol::TInputRecursionTracker tracker(*iprot);
   uint32_t xfer = 0;
@@ -6333,6 +7768,7 @@ uint32_t ThriftHiveMetastore_create_table_with_constraints_args::read(::apache::
         if (ftype == ::apache::thrift::protocol::T_LIST) {
           {
             this->primaryKeys.clear();
+<<<<<<< HEAD
             uint32_t _size1732;
             ::apache::thrift::protocol::TType _etype1735;
             xfer += iprot->readListBegin(_etype1735, _size1732);
@@ -6341,6 +7777,16 @@ uint32_t ThriftHiveMetastore_create_table_with_constraints_args::read(::apache::
             for (_i1736 = 0; _i1736 < _size1732; ++_i1736)
             {
               xfer += this->primaryKeys[_i1736].read(iprot);
+=======
+            uint32_t _size1760;
+            ::apache::thrift::protocol::TType _etype1763;
+            xfer += iprot->readListBegin(_etype1763, _size1760);
+            this->primaryKeys.resize(_size1760);
+            uint32_t _i1764;
+            for (_i1764 = 0; _i1764 < _size1760; ++_i1764)
+            {
+              xfer += this->primaryKeys[_i1764].read(iprot);
+>>>>>>> External metastore: clean after rebase
             }
             xfer += iprot->readListEnd();
           }
@@ -6353,6 +7799,7 @@ uint32_t ThriftHiveMetastore_create_table_with_constraints_args::read(::apache::
         if (ftype == ::apache::thrift::protocol::T_LIST) {
           {
             this->foreignKeys.clear();
+<<<<<<< HEAD
             uint32_t _size1737;
             ::apache::thrift::protocol::TType _etype1740;
             xfer += iprot->readListBegin(_etype1740, _size1737);
@@ -6361,6 +7808,16 @@ uint32_t ThriftHiveMetastore_create_table_with_constraints_args::read(::apache::
             for (_i1741 = 0; _i1741 < _size1737; ++_i1741)
             {
               xfer += this->foreignKeys[_i1741].read(iprot);
+=======
+            uint32_t _size1765;
+            ::apache::thrift::protocol::TType _etype1768;
+            xfer += iprot->readListBegin(_etype1768, _size1765);
+            this->foreignKeys.resize(_size1765);
+            uint32_t _i1769;
+            for (_i1769 = 0; _i1769 < _size1765; ++_i1769)
+            {
+              xfer += this->foreignKeys[_i1769].read(iprot);
+>>>>>>> External metastore: clean after rebase
             }
             xfer += iprot->readListEnd();
           }
@@ -6373,6 +7830,7 @@ uint32_t ThriftHiveMetastore_create_table_with_constraints_args::read(::apache::
         if (ftype == ::apache::thrift::protocol::T_LIST) {
           {
             this->uniqueConstraints.clear();
+<<<<<<< HEAD
             uint32_t _size1742;
             ::apache::thrift::protocol::TType _etype1745;
             xfer += iprot->readListBegin(_etype1745, _size1742);
@@ -6381,6 +7839,16 @@ uint32_t ThriftHiveMetastore_create_table_with_constraints_args::read(::apache::
             for (_i1746 = 0; _i1746 < _size1742; ++_i1746)
             {
               xfer += this->uniqueConstraints[_i1746].read(iprot);
+=======
+            uint32_t _size1770;
+            ::apache::thrift::protocol::TType _etype1773;
+            xfer += iprot->readListBegin(_etype1773, _size1770);
+            this->uniqueConstraints.resize(_size1770);
+            uint32_t _i1774;
+            for (_i1774 = 0; _i1774 < _size1770; ++_i1774)
+            {
+              xfer += this->uniqueConstraints[_i1774].read(iprot);
+>>>>>>> External metastore: clean after rebase
             }
             xfer += iprot->readListEnd();
           }
@@ -6393,6 +7861,7 @@ uint32_t ThriftHiveMetastore_create_table_with_constraints_args::read(::apache::
         if (ftype == ::apache::thrift::protocol::T_LIST) {
           {
             this->notNullConstraints.clear();
+<<<<<<< HEAD
             uint32_t _size1747;
             ::apache::thrift::protocol::TType _etype1750;
             xfer += iprot->readListBegin(_etype1750, _size1747);
@@ -6401,6 +7870,16 @@ uint32_t ThriftHiveMetastore_create_table_with_constraints_args::read(::apache::
             for (_i1751 = 0; _i1751 < _size1747; ++_i1751)
             {
               xfer += this->notNullConstraints[_i1751].read(iprot);
+=======
+            uint32_t _size1775;
+            ::apache::thrift::protocol::TType _etype1778;
+            xfer += iprot->readListBegin(_etype1778, _size1775);
+            this->notNullConstraints.resize(_size1775);
+            uint32_t _i1779;
+            for (_i1779 = 0; _i1779 < _size1775; ++_i1779)
+            {
+              xfer += this->notNullConstraints[_i1779].read(iprot);
+>>>>>>> External metastore: clean after rebase
             }
             xfer += iprot->readListEnd();
           }
@@ -6413,6 +7892,7 @@ uint32_t ThriftHiveMetastore_create_table_with_constraints_args::read(::apache::
         if (ftype == ::apache::thrift::protocol::T_LIST) {
           {
             this->defaultConstraints.clear();
+<<<<<<< HEAD
             uint32_t _size1752;
             ::apache::thrift::protocol::TType _etype1755;
             xfer += iprot->readListBegin(_etype1755, _size1752);
@@ -6421,6 +7901,16 @@ uint32_t ThriftHiveMetastore_create_table_with_constraints_args::read(::apache::
             for (_i1756 = 0; _i1756 < _size1752; ++_i1756)
             {
               xfer += this->defaultConstraints[_i1756].read(iprot);
+=======
+            uint32_t _size1780;
+            ::apache::thrift::protocol::TType _etype1783;
+            xfer += iprot->readListBegin(_etype1783, _size1780);
+            this->defaultConstraints.resize(_size1780);
+            uint32_t _i1784;
+            for (_i1784 = 0; _i1784 < _size1780; ++_i1784)
+            {
+              xfer += this->defaultConstraints[_i1784].read(iprot);
+>>>>>>> External metastore: clean after rebase
             }
             xfer += iprot->readListEnd();
           }
@@ -6433,6 +7923,7 @@ uint32_t ThriftHiveMetastore_create_table_with_constraints_args::read(::apache::
         if (ftype == ::apache::thrift::protocol::T_LIST) {
           {
             this->checkConstraints.clear();
+<<<<<<< HEAD
             uint32_t _size1757;
             ::apache::thrift::protocol::TType _etype1760;
             xfer += iprot->readListBegin(_etype1760, _size1757);
@@ -6441,6 +7932,16 @@ uint32_t ThriftHiveMetastore_create_table_with_constraints_args::read(::apache::
             for (_i1761 = 0; _i1761 < _size1757; ++_i1761)
             {
               xfer += this->checkConstraints[_i1761].read(iprot);
+=======
+            uint32_t _size1785;
+            ::apache::thrift::protocol::TType _etype1788;
+            xfer += iprot->readListBegin(_etype1788, _size1785);
+            this->checkConstraints.resize(_size1785);
+            uint32_t _i1789;
+            for (_i1789 = 0; _i1789 < _size1785; ++_i1789)
+            {
+              xfer += this->checkConstraints[_i1789].read(iprot);
+>>>>>>> External metastore: clean after rebase
             }
             xfer += iprot->readListEnd();
           }
@@ -6473,10 +7974,17 @@ uint32_t ThriftHiveMetastore_create_table_with_constraints_args::write(::apache:
   xfer += oprot->writeFieldBegin("primaryKeys", ::apache::thrift::protocol::T_LIST, 2);
   {
     xfer += oprot->writeListBegin(::apache::thrift::protocol::T_STRUCT, static_cast<uint32_t>(this->primaryKeys.size()));
+<<<<<<< HEAD
     std::vector<SQLPrimaryKey> ::const_iterator _iter1762;
     for (_iter1762 = this->primaryKeys.begin(); _iter1762 != this->primaryKeys.end(); ++_iter1762)
     {
       xfer += (*_iter1762).write(oprot);
+=======
+    std::vector<SQLPrimaryKey> ::const_iterator _iter1790;
+    for (_iter1790 = this->primaryKeys.begin(); _iter1790 != this->primaryKeys.end(); ++_iter1790)
+    {
+      xfer += (*_iter1790).write(oprot);
+>>>>>>> External metastore: clean after rebase
     }
     xfer += oprot->writeListEnd();
   }
@@ -6485,10 +7993,17 @@ uint32_t ThriftHiveMetastore_create_table_with_constraints_args::write(::apache:
   xfer += oprot->writeFieldBegin("foreignKeys", ::apache::thrift::protocol::T_LIST, 3);
   {
     xfer += oprot->writeListBegin(::apache::thrift::protocol::T_STRUCT, static_cast<uint32_t>(this->foreignKeys.size()));
+<<<<<<< HEAD
     std::vector<SQLForeignKey> ::const_iterator _iter1763;
     for (_iter1763 = this->foreignKeys.begin(); _iter1763 != this->foreignKeys.end(); ++_iter1763)
     {
       xfer += (*_iter1763).write(oprot);
+=======
+    std::vector<SQLForeignKey> ::const_iterator _iter1791;
+    for (_iter1791 = this->foreignKeys.begin(); _iter1791 != this->foreignKeys.end(); ++_iter1791)
+    {
+      xfer += (*_iter1791).write(oprot);
+>>>>>>> External metastore: clean after rebase
     }
     xfer += oprot->writeListEnd();
   }
@@ -6497,10 +8012,17 @@ uint32_t ThriftHiveMetastore_create_table_with_constraints_args::write(::apache:
   xfer += oprot->writeFieldBegin("uniqueConstraints", ::apache::thrift::protocol::T_LIST, 4);
   {
     xfer += oprot->writeListBegin(::apache::thrift::protocol::T_STRUCT, static_cast<uint32_t>(this->uniqueConstraints.size()));
+<<<<<<< HEAD
     std::vector<SQLUniqueConstraint> ::const_iterator _iter1764;
     for (_iter1764 = this->uniqueConstraints.begin(); _iter1764 != this->uniqueConstraints.end(); ++_iter1764)
     {
       xfer += (*_iter1764).write(oprot);
+=======
+    std::vector<SQLUniqueConstraint> ::const_iterator _iter1792;
+    for (_iter1792 = this->uniqueConstraints.begin(); _iter1792 != this->uniqueConstraints.end(); ++_iter1792)
+    {
+      xfer += (*_iter1792).write(oprot);
+>>>>>>> External metastore: clean after rebase
     }
     xfer += oprot->writeListEnd();
   }
@@ -6509,10 +8031,17 @@ uint32_t ThriftHiveMetastore_create_table_with_constraints_args::write(::apache:
   xfer += oprot->writeFieldBegin("notNullConstraints", ::apache::thrift::protocol::T_LIST, 5);
   {
     xfer += oprot->writeListBegin(::apache::thrift::protocol::T_STRUCT, static_cast<uint32_t>(this->notNullConstraints.size()));
+<<<<<<< HEAD
     std::vector<SQLNotNullConstraint> ::const_iterator _iter1765;
     for (_iter1765 = this->notNullConstraints.begin(); _iter1765 != this->notNullConstraints.end(); ++_iter1765)
     {
       xfer += (*_iter1765).write(oprot);
+=======
+    std::vector<SQLNotNullConstraint> ::const_iterator _iter1793;
+    for (_iter1793 = this->notNullConstraints.begin(); _iter1793 != this->notNullConstraints.end(); ++_iter1793)
+    {
+      xfer += (*_iter1793).write(oprot);
+>>>>>>> External metastore: clean after rebase
     }
     xfer += oprot->writeListEnd();
   }
@@ -6521,10 +8050,17 @@ uint32_t ThriftHiveMetastore_create_table_with_constraints_args::write(::apache:
   xfer += oprot->writeFieldBegin("defaultConstraints", ::apache::thrift::protocol::T_LIST, 6);
   {
     xfer += oprot->writeListBegin(::apache::thrift::protocol::T_STRUCT, static_cast<uint32_t>(this->defaultConstraints.size()));
+<<<<<<< HEAD
     std::vector<SQLDefaultConstraint> ::const_iterator _iter1766;
     for (_iter1766 = this->defaultConstraints.begin(); _iter1766 != this->defaultConstraints.end(); ++_iter1766)
     {
       xfer += (*_iter1766).write(oprot);
+=======
+    std::vector<SQLDefaultConstraint> ::const_iterator _iter1794;
+    for (_iter1794 = this->defaultConstraints.begin(); _iter1794 != this->defaultConstraints.end(); ++_iter1794)
+    {
+      xfer += (*_iter1794).write(oprot);
+>>>>>>> External metastore: clean after rebase
     }
     xfer += oprot->writeListEnd();
   }
@@ -6533,10 +8069,17 @@ uint32_t ThriftHiveMetastore_create_table_with_constraints_args::write(::apache:
   xfer += oprot->writeFieldBegin("checkConstraints", ::apache::thrift::protocol::T_LIST, 7);
   {
     xfer += oprot->writeListBegin(::apache::thrift::protocol::T_STRUCT, static_cast<uint32_t>(this->checkConstraints.size()));
+<<<<<<< HEAD
     std::vector<SQLCheckConstraint> ::const_iterator _iter1767;
     for (_iter1767 = this->checkConstraints.begin(); _iter1767 != this->checkConstraints.end(); ++_iter1767)
     {
       xfer += (*_iter1767).write(oprot);
+=======
+    std::vector<SQLCheckConstraint> ::const_iterator _iter1795;
+    for (_iter1795 = this->checkConstraints.begin(); _iter1795 != this->checkConstraints.end(); ++_iter1795)
+    {
+      xfer += (*_iter1795).write(oprot);
+>>>>>>> External metastore: clean after rebase
     }
     xfer += oprot->writeListEnd();
   }
@@ -6564,10 +8107,17 @@ uint32_t ThriftHiveMetastore_create_table_with_constraints_pargs::write(::apache
   xfer += oprot->writeFieldBegin("primaryKeys", ::apache::thrift::protocol::T_LIST, 2);
   {
     xfer += oprot->writeListBegin(::apache::thrift::protocol::T_STRUCT, static_cast<uint32_t>((*(this->primaryKeys)).size()));
+<<<<<<< HEAD
     std::vector<SQLPrimaryKey> ::const_iterator _iter1768;
     for (_iter1768 = (*(this->primaryKeys)).begin(); _iter1768 != (*(this->primaryKeys)).end(); ++_iter1768)
     {
       xfer += (*_iter1768).write(oprot);
+=======
+    std::vector<SQLPrimaryKey> ::const_iterator _iter1796;
+    for (_iter1796 = (*(this->primaryKeys)).begin(); _iter1796 != (*(this->primaryKeys)).end(); ++_iter1796)
+    {
+      xfer += (*_iter1796).write(oprot);
+>>>>>>> External metastore: clean after rebase
     }
     xfer += oprot->writeListEnd();
   }
@@ -6576,10 +8126,17 @@ uint32_t ThriftHiveMetastore_create_table_with_constraints_pargs::write(::apache
   xfer += oprot->writeFieldBegin("foreignKeys", ::apache::thrift::protocol::T_LIST, 3);
   {
     xfer += oprot->writeListBegin(::apache::thrift::protocol::T_STRUCT, static_cast<uint32_t>((*(this->foreignKeys)).size()));
+<<<<<<< HEAD
     std::vector<SQLForeignKey> ::const_iterator _iter1769;
     for (_iter1769 = (*(this->foreignKeys)).begin(); _iter1769 != (*(this->foreignKeys)).end(); ++_iter1769)
     {
       xfer += (*_iter1769).write(oprot);
+=======
+    std::vector<SQLForeignKey> ::const_iterator _iter1797;
+    for (_iter1797 = (*(this->foreignKeys)).begin(); _iter1797 != (*(this->foreignKeys)).end(); ++_iter1797)
+    {
+      xfer += (*_iter1797).write(oprot);
+>>>>>>> External metastore: clean after rebase
     }
     xfer += oprot->writeListEnd();
   }
@@ -6588,10 +8145,17 @@ uint32_t ThriftHiveMetastore_create_table_with_constraints_pargs::write(::apache
   xfer += oprot->writeFieldBegin("uniqueConstraints", ::apache::thrift::protocol::T_LIST, 4);
   {
     xfer += oprot->writeListBegin(::apache::thrift::protocol::T_STRUCT, static_cast<uint32_t>((*(this->uniqueConstraints)).size()));
+<<<<<<< HEAD
     std::vector<SQLUniqueConstraint> ::const_iterator _iter1770;
     for (_iter1770 = (*(this->uniqueConstraints)).begin(); _iter1770 != (*(this->uniqueConstraints)).end(); ++_iter1770)
     {
       xfer += (*_iter1770).write(oprot);
+=======
+    std::vector<SQLUniqueConstraint> ::const_iterator _iter1798;
+    for (_iter1798 = (*(this->uniqueConstraints)).begin(); _iter1798 != (*(this->uniqueConstraints)).end(); ++_iter1798)
+    {
+      xfer += (*_iter1798).write(oprot);
+>>>>>>> External metastore: clean after rebase
     }
     xfer += oprot->writeListEnd();
   }
@@ -6600,10 +8164,17 @@ uint32_t ThriftHiveMetastore_create_table_with_constraints_pargs::write(::apache
   xfer += oprot->writeFieldBegin("notNullConstraints", ::apache::thrift::protocol::T_LIST, 5);
   {
     xfer += oprot->writeListBegin(::apache::thrift::protocol::T_STRUCT, static_cast<uint32_t>((*(this->notNullConstraints)).size()));
+<<<<<<< HEAD
     std::vector<SQLNotNullConstraint> ::const_iterator _iter1771;
     for (_iter1771 = (*(this->notNullConstraints)).begin(); _iter1771 != (*(this->notNullConstraints)).end(); ++_iter1771)
     {
       xfer += (*_iter1771).write(oprot);
+=======
+    std::vector<SQLNotNullConstraint> ::const_iterator _iter1799;
+    for (_iter1799 = (*(this->notNullConstraints)).begin(); _iter1799 != (*(this->notNullConstraints)).end(); ++_iter1799)
+    {
+      xfer += (*_iter1799).write(oprot);
+>>>>>>> External metastore: clean after rebase
     }
     xfer += oprot->writeListEnd();
   }
@@ -6612,10 +8183,17 @@ uint32_t ThriftHiveMetastore_create_table_with_constraints_pargs::write(::apache
   xfer += oprot->writeFieldBegin("defaultConstraints", ::apache::thrift::protocol::T_LIST, 6);
   {
     xfer += oprot->writeListBegin(::apache::thrift::protocol::T_STRUCT, static_cast<uint32_t>((*(this->defaultConstraints)).size()));
+<<<<<<< HEAD
     std::vector<SQLDefaultConstraint> ::const_iterator _iter1772;
     for (_iter1772 = (*(this->defaultConstraints)).begin(); _iter1772 != (*(this->defaultConstraints)).end(); ++_iter1772)
     {
       xfer += (*_iter1772).write(oprot);
+=======
+    std::vector<SQLDefaultConstraint> ::const_iterator _iter1800;
+    for (_iter1800 = (*(this->defaultConstraints)).begin(); _iter1800 != (*(this->defaultConstraints)).end(); ++_iter1800)
+    {
+      xfer += (*_iter1800).write(oprot);
+>>>>>>> External metastore: clean after rebase
     }
     xfer += oprot->writeListEnd();
   }
@@ -6624,10 +8202,17 @@ uint32_t ThriftHiveMetastore_create_table_with_constraints_pargs::write(::apache
   xfer += oprot->writeFieldBegin("checkConstraints", ::apache::thrift::protocol::T_LIST, 7);
   {
     xfer += oprot->writeListBegin(::apache::thrift::protocol::T_STRUCT, static_cast<uint32_t>((*(this->checkConstraints)).size()));
+<<<<<<< HEAD
     std::vector<SQLCheckConstraint> ::const_iterator _iter1773;
     for (_iter1773 = (*(this->checkConstraints)).begin(); _iter1773 != (*(this->checkConstraints)).end(); ++_iter1773)
     {
       xfer += (*_iter1773).write(oprot);
+=======
+    std::vector<SQLCheckConstraint> ::const_iterator _iter1801;
+    for (_iter1801 = (*(this->checkConstraints)).begin(); _iter1801 != (*(this->checkConstraints)).end(); ++_iter1801)
+    {
+      xfer += (*_iter1801).write(oprot);
+>>>>>>> External metastore: clean after rebase
     }
     xfer += oprot->writeListEnd();
   }
@@ -9042,6 +10627,7 @@ uint32_t ThriftHiveMetastore_truncate_table_args::read(::apache::thrift::protoco
         if (ftype == ::apache::thrift::protocol::T_LIST) {
           {
             this->partNames.clear();
+<<<<<<< HEAD
             uint32_t _size1774;
             ::apache::thrift::protocol::TType _etype1777;
             xfer += iprot->readListBegin(_etype1777, _size1774);
@@ -9050,6 +10636,16 @@ uint32_t ThriftHiveMetastore_truncate_table_args::read(::apache::thrift::protoco
             for (_i1778 = 0; _i1778 < _size1774; ++_i1778)
             {
               xfer += iprot->readString(this->partNames[_i1778]);
+=======
+            uint32_t _size1802;
+            ::apache::thrift::protocol::TType _etype1805;
+            xfer += iprot->readListBegin(_etype1805, _size1802);
+            this->partNames.resize(_size1802);
+            uint32_t _i1806;
+            for (_i1806 = 0; _i1806 < _size1802; ++_i1806)
+            {
+              xfer += iprot->readString(this->partNames[_i1806]);
+>>>>>>> External metastore: clean after rebase
             }
             xfer += iprot->readListEnd();
           }
@@ -9086,10 +10682,17 @@ uint32_t ThriftHiveMetastore_truncate_table_args::write(::apache::thrift::protoc
   xfer += oprot->writeFieldBegin("partNames", ::apache::thrift::protocol::T_LIST, 3);
   {
     xfer += oprot->writeListBegin(::apache::thrift::protocol::T_STRING, static_cast<uint32_t>(this->partNames.size()));
+<<<<<<< HEAD
     std::vector<std::string> ::const_iterator _iter1779;
     for (_iter1779 = this->partNames.begin(); _iter1779 != this->partNames.end(); ++_iter1779)
     {
       xfer += oprot->writeString((*_iter1779));
+=======
+    std::vector<std::string> ::const_iterator _iter1807;
+    for (_iter1807 = this->partNames.begin(); _iter1807 != this->partNames.end(); ++_iter1807)
+    {
+      xfer += oprot->writeString((*_iter1807));
+>>>>>>> External metastore: clean after rebase
     }
     xfer += oprot->writeListEnd();
   }
@@ -9121,10 +10724,17 @@ uint32_t ThriftHiveMetastore_truncate_table_pargs::write(::apache::thrift::proto
   xfer += oprot->writeFieldBegin("partNames", ::apache::thrift::protocol::T_LIST, 3);
   {
     xfer += oprot->writeListBegin(::apache::thrift::protocol::T_STRING, static_cast<uint32_t>((*(this->partNames)).size()));
+<<<<<<< HEAD
     std::vector<std::string> ::const_iterator _iter1780;
     for (_iter1780 = (*(this->partNames)).begin(); _iter1780 != (*(this->partNames)).end(); ++_iter1780)
     {
       xfer += oprot->writeString((*_iter1780));
+=======
+    std::vector<std::string> ::const_iterator _iter1808;
+    for (_iter1808 = (*(this->partNames)).begin(); _iter1808 != (*(this->partNames)).end(); ++_iter1808)
+    {
+      xfer += oprot->writeString((*_iter1808));
+>>>>>>> External metastore: clean after rebase
     }
     xfer += oprot->writeListEnd();
   }
@@ -9575,6 +11185,7 @@ uint32_t ThriftHiveMetastore_get_tables_result::read(::apache::thrift::protocol:
         if (ftype == ::apache::thrift::protocol::T_LIST) {
           {
             this->success.clear();
+<<<<<<< HEAD
             uint32_t _size1781;
             ::apache::thrift::protocol::TType _etype1784;
             xfer += iprot->readListBegin(_etype1784, _size1781);
@@ -9583,6 +11194,16 @@ uint32_t ThriftHiveMetastore_get_tables_result::read(::apache::thrift::protocol:
             for (_i1785 = 0; _i1785 < _size1781; ++_i1785)
             {
               xfer += iprot->readString(this->success[_i1785]);
+=======
+            uint32_t _size1809;
+            ::apache::thrift::protocol::TType _etype1812;
+            xfer += iprot->readListBegin(_etype1812, _size1809);
+            this->success.resize(_size1809);
+            uint32_t _i1813;
+            for (_i1813 = 0; _i1813 < _size1809; ++_i1813)
+            {
+              xfer += iprot->readString(this->success[_i1813]);
+>>>>>>> External metastore: clean after rebase
             }
             xfer += iprot->readListEnd();
           }
@@ -9621,10 +11242,17 @@ uint32_t ThriftHiveMetastore_get_tables_result::write(::apache::thrift::protocol
     xfer += oprot->writeFieldBegin("success", ::apache::thrift::protocol::T_LIST, 0);
     {
       xfer += oprot->writeListBegin(::apache::thrift::protocol::T_STRING, static_cast<uint32_t>(this->success.size()));
+<<<<<<< HEAD
       std::vector<std::string> ::const_iterator _iter1786;
       for (_iter1786 = this->success.begin(); _iter1786 != this->success.end(); ++_iter1786)
       {
         xfer += oprot->writeString((*_iter1786));
+=======
+      std::vector<std::string> ::const_iterator _iter1814;
+      for (_iter1814 = this->success.begin(); _iter1814 != this->success.end(); ++_iter1814)
+      {
+        xfer += oprot->writeString((*_iter1814));
+>>>>>>> External metastore: clean after rebase
       }
       xfer += oprot->writeListEnd();
     }
@@ -9669,6 +11297,7 @@ uint32_t ThriftHiveMetastore_get_tables_presult::read(::apache::thrift::protocol
         if (ftype == ::apache::thrift::protocol::T_LIST) {
           {
             (*(this->success)).clear();
+<<<<<<< HEAD
             uint32_t _size1787;
             ::apache::thrift::protocol::TType _etype1790;
             xfer += iprot->readListBegin(_etype1790, _size1787);
@@ -9677,6 +11306,16 @@ uint32_t ThriftHiveMetastore_get_tables_presult::read(::apache::thrift::protocol
             for (_i1791 = 0; _i1791 < _size1787; ++_i1791)
             {
               xfer += iprot->readString((*(this->success))[_i1791]);
+=======
+            uint32_t _size1815;
+            ::apache::thrift::protocol::TType _etype1818;
+            xfer += iprot->readListBegin(_etype1818, _size1815);
+            (*(this->success)).resize(_size1815);
+            uint32_t _i1819;
+            for (_i1819 = 0; _i1819 < _size1815; ++_i1819)
+            {
+              xfer += iprot->readString((*(this->success))[_i1819]);
+>>>>>>> External metastore: clean after rebase
             }
             xfer += iprot->readListEnd();
           }
@@ -9846,6 +11485,7 @@ uint32_t ThriftHiveMetastore_get_tables_by_type_result::read(::apache::thrift::p
         if (ftype == ::apache::thrift::protocol::T_LIST) {
           {
             this->success.clear();
+<<<<<<< HEAD
             uint32_t _size1792;
             ::apache::thrift::protocol::TType _etype1795;
             xfer += iprot->readListBegin(_etype1795, _size1792);
@@ -9854,6 +11494,16 @@ uint32_t ThriftHiveMetastore_get_tables_by_type_result::read(::apache::thrift::p
             for (_i1796 = 0; _i1796 < _size1792; ++_i1796)
             {
               xfer += iprot->readString(this->success[_i1796]);
+=======
+            uint32_t _size1820;
+            ::apache::thrift::protocol::TType _etype1823;
+            xfer += iprot->readListBegin(_etype1823, _size1820);
+            this->success.resize(_size1820);
+            uint32_t _i1824;
+            for (_i1824 = 0; _i1824 < _size1820; ++_i1824)
+            {
+              xfer += iprot->readString(this->success[_i1824]);
+>>>>>>> External metastore: clean after rebase
             }
             xfer += iprot->readListEnd();
           }
@@ -9892,10 +11542,17 @@ uint32_t ThriftHiveMetastore_get_tables_by_type_result::write(::apache::thrift::
     xfer += oprot->writeFieldBegin("success", ::apache::thrift::protocol::T_LIST, 0);
     {
       xfer += oprot->writeListBegin(::apache::thrift::protocol::T_STRING, static_cast<uint32_t>(this->success.size()));
+<<<<<<< HEAD
       std::vector<std::string> ::const_iterator _iter1797;
       for (_iter1797 = this->success.begin(); _iter1797 != this->success.end(); ++_iter1797)
       {
         xfer += oprot->writeString((*_iter1797));
+=======
+      std::vector<std::string> ::const_iterator _iter1825;
+      for (_iter1825 = this->success.begin(); _iter1825 != this->success.end(); ++_iter1825)
+      {
+        xfer += oprot->writeString((*_iter1825));
+>>>>>>> External metastore: clean after rebase
       }
       xfer += oprot->writeListEnd();
     }
@@ -9940,6 +11597,7 @@ uint32_t ThriftHiveMetastore_get_tables_by_type_presult::read(::apache::thrift::
         if (ftype == ::apache::thrift::protocol::T_LIST) {
           {
             (*(this->success)).clear();
+<<<<<<< HEAD
             uint32_t _size1798;
             ::apache::thrift::protocol::TType _etype1801;
             xfer += iprot->readListBegin(_etype1801, _size1798);
@@ -9948,6 +11606,16 @@ uint32_t ThriftHiveMetastore_get_tables_by_type_presult::read(::apache::thrift::
             for (_i1802 = 0; _i1802 < _size1798; ++_i1802)
             {
               xfer += iprot->readString((*(this->success))[_i1802]);
+=======
+            uint32_t _size1826;
+            ::apache::thrift::protocol::TType _etype1829;
+            xfer += iprot->readListBegin(_etype1829, _size1826);
+            (*(this->success)).resize(_size1826);
+            uint32_t _i1830;
+            for (_i1830 = 0; _i1830 < _size1826; ++_i1830)
+            {
+              xfer += iprot->readString((*(this->success))[_i1830]);
+>>>>>>> External metastore: clean after rebase
             }
             xfer += iprot->readListEnd();
           }
@@ -10064,6 +11732,7 @@ uint32_t ThriftHiveMetastore_get_all_materialized_view_objects_for_rewriting_res
         if (ftype == ::apache::thrift::protocol::T_LIST) {
           {
             this->success.clear();
+<<<<<<< HEAD
             uint32_t _size1803;
             ::apache::thrift::protocol::TType _etype1806;
             xfer += iprot->readListBegin(_etype1806, _size1803);
@@ -10072,6 +11741,16 @@ uint32_t ThriftHiveMetastore_get_all_materialized_view_objects_for_rewriting_res
             for (_i1807 = 0; _i1807 < _size1803; ++_i1807)
             {
               xfer += this->success[_i1807].read(iprot);
+=======
+            uint32_t _size1831;
+            ::apache::thrift::protocol::TType _etype1834;
+            xfer += iprot->readListBegin(_etype1834, _size1831);
+            this->success.resize(_size1831);
+            uint32_t _i1835;
+            for (_i1835 = 0; _i1835 < _size1831; ++_i1835)
+            {
+              xfer += this->success[_i1835].read(iprot);
+>>>>>>> External metastore: clean after rebase
             }
             xfer += iprot->readListEnd();
           }
@@ -10110,10 +11789,17 @@ uint32_t ThriftHiveMetastore_get_all_materialized_view_objects_for_rewriting_res
     xfer += oprot->writeFieldBegin("success", ::apache::thrift::protocol::T_LIST, 0);
     {
       xfer += oprot->writeListBegin(::apache::thrift::protocol::T_STRUCT, static_cast<uint32_t>(this->success.size()));
+<<<<<<< HEAD
       std::vector<Table> ::const_iterator _iter1808;
       for (_iter1808 = this->success.begin(); _iter1808 != this->success.end(); ++_iter1808)
       {
         xfer += (*_iter1808).write(oprot);
+=======
+      std::vector<Table> ::const_iterator _iter1836;
+      for (_iter1836 = this->success.begin(); _iter1836 != this->success.end(); ++_iter1836)
+      {
+        xfer += (*_iter1836).write(oprot);
+>>>>>>> External metastore: clean after rebase
       }
       xfer += oprot->writeListEnd();
     }
@@ -10158,6 +11844,7 @@ uint32_t ThriftHiveMetastore_get_all_materialized_view_objects_for_rewriting_pre
         if (ftype == ::apache::thrift::protocol::T_LIST) {
           {
             (*(this->success)).clear();
+<<<<<<< HEAD
             uint32_t _size1809;
             ::apache::thrift::protocol::TType _etype1812;
             xfer += iprot->readListBegin(_etype1812, _size1809);
@@ -10166,6 +11853,16 @@ uint32_t ThriftHiveMetastore_get_all_materialized_view_objects_for_rewriting_pre
             for (_i1813 = 0; _i1813 < _size1809; ++_i1813)
             {
               xfer += (*(this->success))[_i1813].read(iprot);
+=======
+            uint32_t _size1837;
+            ::apache::thrift::protocol::TType _etype1840;
+            xfer += iprot->readListBegin(_etype1840, _size1837);
+            (*(this->success)).resize(_size1837);
+            uint32_t _i1841;
+            for (_i1841 = 0; _i1841 < _size1837; ++_i1841)
+            {
+              xfer += (*(this->success))[_i1841].read(iprot);
+>>>>>>> External metastore: clean after rebase
             }
             xfer += iprot->readListEnd();
           }
@@ -10303,6 +12000,7 @@ uint32_t ThriftHiveMetastore_get_materialized_views_for_rewriting_result::read(:
         if (ftype == ::apache::thrift::protocol::T_LIST) {
           {
             this->success.clear();
+<<<<<<< HEAD
             uint32_t _size1814;
             ::apache::thrift::protocol::TType _etype1817;
             xfer += iprot->readListBegin(_etype1817, _size1814);
@@ -10311,6 +12009,16 @@ uint32_t ThriftHiveMetastore_get_materialized_views_for_rewriting_result::read(:
             for (_i1818 = 0; _i1818 < _size1814; ++_i1818)
             {
               xfer += iprot->readString(this->success[_i1818]);
+=======
+            uint32_t _size1842;
+            ::apache::thrift::protocol::TType _etype1845;
+            xfer += iprot->readListBegin(_etype1845, _size1842);
+            this->success.resize(_size1842);
+            uint32_t _i1846;
+            for (_i1846 = 0; _i1846 < _size1842; ++_i1846)
+            {
+              xfer += iprot->readString(this->success[_i1846]);
+>>>>>>> External metastore: clean after rebase
             }
             xfer += iprot->readListEnd();
           }
@@ -10349,10 +12057,17 @@ uint32_t ThriftHiveMetastore_get_materialized_views_for_rewriting_result::write(
     xfer += oprot->writeFieldBegin("success", ::apache::thrift::protocol::T_LIST, 0);
     {
       xfer += oprot->writeListBegin(::apache::thrift::protocol::T_STRING, static_cast<uint32_t>(this->success.size()));
+<<<<<<< HEAD
       std::vector<std::string> ::const_iterator _iter1819;
       for (_iter1819 = this->success.begin(); _iter1819 != this->success.end(); ++_iter1819)
       {
         xfer += oprot->writeString((*_iter1819));
+=======
+      std::vector<std::string> ::const_iterator _iter1847;
+      for (_iter1847 = this->success.begin(); _iter1847 != this->success.end(); ++_iter1847)
+      {
+        xfer += oprot->writeString((*_iter1847));
+>>>>>>> External metastore: clean after rebase
       }
       xfer += oprot->writeListEnd();
     }
@@ -10397,6 +12112,7 @@ uint32_t ThriftHiveMetastore_get_materialized_views_for_rewriting_presult::read(
         if (ftype == ::apache::thrift::protocol::T_LIST) {
           {
             (*(this->success)).clear();
+<<<<<<< HEAD
             uint32_t _size1820;
             ::apache::thrift::protocol::TType _etype1823;
             xfer += iprot->readListBegin(_etype1823, _size1820);
@@ -10405,6 +12121,16 @@ uint32_t ThriftHiveMetastore_get_materialized_views_for_rewriting_presult::read(
             for (_i1824 = 0; _i1824 < _size1820; ++_i1824)
             {
               xfer += iprot->readString((*(this->success))[_i1824]);
+=======
+            uint32_t _size1848;
+            ::apache::thrift::protocol::TType _etype1851;
+            xfer += iprot->readListBegin(_etype1851, _size1848);
+            (*(this->success)).resize(_size1848);
+            uint32_t _i1852;
+            for (_i1852 = 0; _i1852 < _size1848; ++_i1852)
+            {
+              xfer += iprot->readString((*(this->success))[_i1852]);
+>>>>>>> External metastore: clean after rebase
             }
             xfer += iprot->readListEnd();
           }
@@ -10479,6 +12205,7 @@ uint32_t ThriftHiveMetastore_get_table_meta_args::read(::apache::thrift::protoco
         if (ftype == ::apache::thrift::protocol::T_LIST) {
           {
             this->tbl_types.clear();
+<<<<<<< HEAD
             uint32_t _size1825;
             ::apache::thrift::protocol::TType _etype1828;
             xfer += iprot->readListBegin(_etype1828, _size1825);
@@ -10487,6 +12214,16 @@ uint32_t ThriftHiveMetastore_get_table_meta_args::read(::apache::thrift::protoco
             for (_i1829 = 0; _i1829 < _size1825; ++_i1829)
             {
               xfer += iprot->readString(this->tbl_types[_i1829]);
+=======
+            uint32_t _size1853;
+            ::apache::thrift::protocol::TType _etype1856;
+            xfer += iprot->readListBegin(_etype1856, _size1853);
+            this->tbl_types.resize(_size1853);
+            uint32_t _i1857;
+            for (_i1857 = 0; _i1857 < _size1853; ++_i1857)
+            {
+              xfer += iprot->readString(this->tbl_types[_i1857]);
+>>>>>>> External metastore: clean after rebase
             }
             xfer += iprot->readListEnd();
           }
@@ -10523,10 +12260,17 @@ uint32_t ThriftHiveMetastore_get_table_meta_args::write(::apache::thrift::protoc
   xfer += oprot->writeFieldBegin("tbl_types", ::apache::thrift::protocol::T_LIST, 3);
   {
     xfer += oprot->writeListBegin(::apache::thrift::protocol::T_STRING, static_cast<uint32_t>(this->tbl_types.size()));
+<<<<<<< HEAD
     std::vector<std::string> ::const_iterator _iter1830;
     for (_iter1830 = this->tbl_types.begin(); _iter1830 != this->tbl_types.end(); ++_iter1830)
     {
       xfer += oprot->writeString((*_iter1830));
+=======
+    std::vector<std::string> ::const_iterator _iter1858;
+    for (_iter1858 = this->tbl_types.begin(); _iter1858 != this->tbl_types.end(); ++_iter1858)
+    {
+      xfer += oprot->writeString((*_iter1858));
+>>>>>>> External metastore: clean after rebase
     }
     xfer += oprot->writeListEnd();
   }
@@ -10558,10 +12302,17 @@ uint32_t ThriftHiveMetastore_get_table_meta_pargs::write(::apache::thrift::proto
   xfer += oprot->writeFieldBegin("tbl_types", ::apache::thrift::protocol::T_LIST, 3);
   {
     xfer += oprot->writeListBegin(::apache::thrift::protocol::T_STRING, static_cast<uint32_t>((*(this->tbl_types)).size()));
+<<<<<<< HEAD
     std::vector<std::string> ::const_iterator _iter1831;
     for (_iter1831 = (*(this->tbl_types)).begin(); _iter1831 != (*(this->tbl_types)).end(); ++_iter1831)
     {
       xfer += oprot->writeString((*_iter1831));
+=======
+    std::vector<std::string> ::const_iterator _iter1859;
+    for (_iter1859 = (*(this->tbl_types)).begin(); _iter1859 != (*(this->tbl_types)).end(); ++_iter1859)
+    {
+      xfer += oprot->writeString((*_iter1859));
+>>>>>>> External metastore: clean after rebase
     }
     xfer += oprot->writeListEnd();
   }
@@ -10602,6 +12353,7 @@ uint32_t ThriftHiveMetastore_get_table_meta_result::read(::apache::thrift::proto
         if (ftype == ::apache::thrift::protocol::T_LIST) {
           {
             this->success.clear();
+<<<<<<< HEAD
             uint32_t _size1832;
             ::apache::thrift::protocol::TType _etype1835;
             xfer += iprot->readListBegin(_etype1835, _size1832);
@@ -10610,6 +12362,16 @@ uint32_t ThriftHiveMetastore_get_table_meta_result::read(::apache::thrift::proto
             for (_i1836 = 0; _i1836 < _size1832; ++_i1836)
             {
               xfer += this->success[_i1836].read(iprot);
+=======
+            uint32_t _size1860;
+            ::apache::thrift::protocol::TType _etype1863;
+            xfer += iprot->readListBegin(_etype1863, _size1860);
+            this->success.resize(_size1860);
+            uint32_t _i1864;
+            for (_i1864 = 0; _i1864 < _size1860; ++_i1864)
+            {
+              xfer += this->success[_i1864].read(iprot);
+>>>>>>> External metastore: clean after rebase
             }
             xfer += iprot->readListEnd();
           }
@@ -10648,10 +12410,17 @@ uint32_t ThriftHiveMetastore_get_table_meta_result::write(::apache::thrift::prot
     xfer += oprot->writeFieldBegin("success", ::apache::thrift::protocol::T_LIST, 0);
     {
       xfer += oprot->writeListBegin(::apache::thrift::protocol::T_STRUCT, static_cast<uint32_t>(this->success.size()));
+<<<<<<< HEAD
       std::vector<TableMeta> ::const_iterator _iter1837;
       for (_iter1837 = this->success.begin(); _iter1837 != this->success.end(); ++_iter1837)
       {
         xfer += (*_iter1837).write(oprot);
+=======
+      std::vector<TableMeta> ::const_iterator _iter1865;
+      for (_iter1865 = this->success.begin(); _iter1865 != this->success.end(); ++_iter1865)
+      {
+        xfer += (*_iter1865).write(oprot);
+>>>>>>> External metastore: clean after rebase
       }
       xfer += oprot->writeListEnd();
     }
@@ -10696,6 +12465,7 @@ uint32_t ThriftHiveMetastore_get_table_meta_presult::read(::apache::thrift::prot
         if (ftype == ::apache::thrift::protocol::T_LIST) {
           {
             (*(this->success)).clear();
+<<<<<<< HEAD
             uint32_t _size1838;
             ::apache::thrift::protocol::TType _etype1841;
             xfer += iprot->readListBegin(_etype1841, _size1838);
@@ -10704,6 +12474,16 @@ uint32_t ThriftHiveMetastore_get_table_meta_presult::read(::apache::thrift::prot
             for (_i1842 = 0; _i1842 < _size1838; ++_i1842)
             {
               xfer += (*(this->success))[_i1842].read(iprot);
+=======
+            uint32_t _size1866;
+            ::apache::thrift::protocol::TType _etype1869;
+            xfer += iprot->readListBegin(_etype1869, _size1866);
+            (*(this->success)).resize(_size1866);
+            uint32_t _i1870;
+            for (_i1870 = 0; _i1870 < _size1866; ++_i1870)
+            {
+              xfer += (*(this->success))[_i1870].read(iprot);
+>>>>>>> External metastore: clean after rebase
             }
             xfer += iprot->readListEnd();
           }
@@ -10841,6 +12621,7 @@ uint32_t ThriftHiveMetastore_get_all_tables_result::read(::apache::thrift::proto
         if (ftype == ::apache::thrift::protocol::T_LIST) {
           {
             this->success.clear();
+<<<<<<< HEAD
             uint32_t _size1843;
             ::apache::thrift::protocol::TType _etype1846;
             xfer += iprot->readListBegin(_etype1846, _size1843);
@@ -10849,6 +12630,16 @@ uint32_t ThriftHiveMetastore_get_all_tables_result::read(::apache::thrift::proto
             for (_i1847 = 0; _i1847 < _size1843; ++_i1847)
             {
               xfer += iprot->readString(this->success[_i1847]);
+=======
+            uint32_t _size1871;
+            ::apache::thrift::protocol::TType _etype1874;
+            xfer += iprot->readListBegin(_etype1874, _size1871);
+            this->success.resize(_size1871);
+            uint32_t _i1875;
+            for (_i1875 = 0; _i1875 < _size1871; ++_i1875)
+            {
+              xfer += iprot->readString(this->success[_i1875]);
+>>>>>>> External metastore: clean after rebase
             }
             xfer += iprot->readListEnd();
           }
@@ -10887,10 +12678,17 @@ uint32_t ThriftHiveMetastore_get_all_tables_result::write(::apache::thrift::prot
     xfer += oprot->writeFieldBegin("success", ::apache::thrift::protocol::T_LIST, 0);
     {
       xfer += oprot->writeListBegin(::apache::thrift::protocol::T_STRING, static_cast<uint32_t>(this->success.size()));
+<<<<<<< HEAD
       std::vector<std::string> ::const_iterator _iter1848;
       for (_iter1848 = this->success.begin(); _iter1848 != this->success.end(); ++_iter1848)
       {
         xfer += oprot->writeString((*_iter1848));
+=======
+      std::vector<std::string> ::const_iterator _iter1876;
+      for (_iter1876 = this->success.begin(); _iter1876 != this->success.end(); ++_iter1876)
+      {
+        xfer += oprot->writeString((*_iter1876));
+>>>>>>> External metastore: clean after rebase
       }
       xfer += oprot->writeListEnd();
     }
@@ -10935,6 +12733,7 @@ uint32_t ThriftHiveMetastore_get_all_tables_presult::read(::apache::thrift::prot
         if (ftype == ::apache::thrift::protocol::T_LIST) {
           {
             (*(this->success)).clear();
+<<<<<<< HEAD
             uint32_t _size1849;
             ::apache::thrift::protocol::TType _etype1852;
             xfer += iprot->readListBegin(_etype1852, _size1849);
@@ -10943,6 +12742,16 @@ uint32_t ThriftHiveMetastore_get_all_tables_presult::read(::apache::thrift::prot
             for (_i1853 = 0; _i1853 < _size1849; ++_i1853)
             {
               xfer += iprot->readString((*(this->success))[_i1853]);
+=======
+            uint32_t _size1877;
+            ::apache::thrift::protocol::TType _etype1880;
+            xfer += iprot->readListBegin(_etype1880, _size1877);
+            (*(this->success)).resize(_size1877);
+            uint32_t _i1881;
+            for (_i1881 = 0; _i1881 < _size1877; ++_i1881)
+            {
+              xfer += iprot->readString((*(this->success))[_i1881]);
+>>>>>>> External metastore: clean after rebase
             }
             xfer += iprot->readListEnd();
           }
@@ -11252,6 +13061,7 @@ uint32_t ThriftHiveMetastore_get_table_objects_by_name_args::read(::apache::thri
         if (ftype == ::apache::thrift::protocol::T_LIST) {
           {
             this->tbl_names.clear();
+<<<<<<< HEAD
             uint32_t _size1854;
             ::apache::thrift::protocol::TType _etype1857;
             xfer += iprot->readListBegin(_etype1857, _size1854);
@@ -11260,6 +13070,16 @@ uint32_t ThriftHiveMetastore_get_table_objects_by_name_args::read(::apache::thri
             for (_i1858 = 0; _i1858 < _size1854; ++_i1858)
             {
               xfer += iprot->readString(this->tbl_names[_i1858]);
+=======
+            uint32_t _size1882;
+            ::apache::thrift::protocol::TType _etype1885;
+            xfer += iprot->readListBegin(_etype1885, _size1882);
+            this->tbl_names.resize(_size1882);
+            uint32_t _i1886;
+            for (_i1886 = 0; _i1886 < _size1882; ++_i1886)
+            {
+              xfer += iprot->readString(this->tbl_names[_i1886]);
+>>>>>>> External metastore: clean after rebase
             }
             xfer += iprot->readListEnd();
           }
@@ -11292,10 +13112,17 @@ uint32_t ThriftHiveMetastore_get_table_objects_by_name_args::write(::apache::thr
   xfer += oprot->writeFieldBegin("tbl_names", ::apache::thrift::protocol::T_LIST, 2);
   {
     xfer += oprot->writeListBegin(::apache::thrift::protocol::T_STRING, static_cast<uint32_t>(this->tbl_names.size()));
+<<<<<<< HEAD
     std::vector<std::string> ::const_iterator _iter1859;
     for (_iter1859 = this->tbl_names.begin(); _iter1859 != this->tbl_names.end(); ++_iter1859)
     {
       xfer += oprot->writeString((*_iter1859));
+=======
+    std::vector<std::string> ::const_iterator _iter1887;
+    for (_iter1887 = this->tbl_names.begin(); _iter1887 != this->tbl_names.end(); ++_iter1887)
+    {
+      xfer += oprot->writeString((*_iter1887));
+>>>>>>> External metastore: clean after rebase
     }
     xfer += oprot->writeListEnd();
   }
@@ -11323,10 +13150,17 @@ uint32_t ThriftHiveMetastore_get_table_objects_by_name_pargs::write(::apache::th
   xfer += oprot->writeFieldBegin("tbl_names", ::apache::thrift::protocol::T_LIST, 2);
   {
     xfer += oprot->writeListBegin(::apache::thrift::protocol::T_STRING, static_cast<uint32_t>((*(this->tbl_names)).size()));
+<<<<<<< HEAD
     std::vector<std::string> ::const_iterator _iter1860;
     for (_iter1860 = (*(this->tbl_names)).begin(); _iter1860 != (*(this->tbl_names)).end(); ++_iter1860)
     {
       xfer += oprot->writeString((*_iter1860));
+=======
+    std::vector<std::string> ::const_iterator _iter1888;
+    for (_iter1888 = (*(this->tbl_names)).begin(); _iter1888 != (*(this->tbl_names)).end(); ++_iter1888)
+    {
+      xfer += oprot->writeString((*_iter1888));
+>>>>>>> External metastore: clean after rebase
     }
     xfer += oprot->writeListEnd();
   }
@@ -11367,6 +13201,7 @@ uint32_t ThriftHiveMetastore_get_table_objects_by_name_result::read(::apache::th
         if (ftype == ::apache::thrift::protocol::T_LIST) {
           {
             this->success.clear();
+<<<<<<< HEAD
             uint32_t _size1861;
             ::apache::thrift::protocol::TType _etype1864;
             xfer += iprot->readListBegin(_etype1864, _size1861);
@@ -11375,6 +13210,16 @@ uint32_t ThriftHiveMetastore_get_table_objects_by_name_result::read(::apache::th
             for (_i1865 = 0; _i1865 < _size1861; ++_i1865)
             {
               xfer += this->success[_i1865].read(iprot);
+=======
+            uint32_t _size1889;
+            ::apache::thrift::protocol::TType _etype1892;
+            xfer += iprot->readListBegin(_etype1892, _size1889);
+            this->success.resize(_size1889);
+            uint32_t _i1893;
+            for (_i1893 = 0; _i1893 < _size1889; ++_i1893)
+            {
+              xfer += this->success[_i1893].read(iprot);
+>>>>>>> External metastore: clean after rebase
             }
             xfer += iprot->readListEnd();
           }
@@ -11405,10 +13250,17 @@ uint32_t ThriftHiveMetastore_get_table_objects_by_name_result::write(::apache::t
     xfer += oprot->writeFieldBegin("success", ::apache::thrift::protocol::T_LIST, 0);
     {
       xfer += oprot->writeListBegin(::apache::thrift::protocol::T_STRUCT, static_cast<uint32_t>(this->success.size()));
+<<<<<<< HEAD
       std::vector<Table> ::const_iterator _iter1866;
       for (_iter1866 = this->success.begin(); _iter1866 != this->success.end(); ++_iter1866)
       {
         xfer += (*_iter1866).write(oprot);
+=======
+      std::vector<Table> ::const_iterator _iter1894;
+      for (_iter1894 = this->success.begin(); _iter1894 != this->success.end(); ++_iter1894)
+      {
+        xfer += (*_iter1894).write(oprot);
+>>>>>>> External metastore: clean after rebase
       }
       xfer += oprot->writeListEnd();
     }
@@ -11449,6 +13301,7 @@ uint32_t ThriftHiveMetastore_get_table_objects_by_name_presult::read(::apache::t
         if (ftype == ::apache::thrift::protocol::T_LIST) {
           {
             (*(this->success)).clear();
+<<<<<<< HEAD
             uint32_t _size1867;
             ::apache::thrift::protocol::TType _etype1870;
             xfer += iprot->readListBegin(_etype1870, _size1867);
@@ -11457,6 +13310,16 @@ uint32_t ThriftHiveMetastore_get_table_objects_by_name_presult::read(::apache::t
             for (_i1871 = 0; _i1871 < _size1867; ++_i1871)
             {
               xfer += (*(this->success))[_i1871].read(iprot);
+=======
+            uint32_t _size1895;
+            ::apache::thrift::protocol::TType _etype1898;
+            xfer += iprot->readListBegin(_etype1898, _size1895);
+            (*(this->success)).resize(_size1895);
+            uint32_t _i1899;
+            for (_i1899 = 0; _i1899 < _size1895; ++_i1899)
+            {
+              xfer += (*(this->success))[_i1899].read(iprot);
+>>>>>>> External metastore: clean after rebase
             }
             xfer += iprot->readListEnd();
           }
@@ -11586,6 +13449,7 @@ uint32_t ThriftHiveMetastore_get_tables_ext_result::read(::apache::thrift::proto
         if (ftype == ::apache::thrift::protocol::T_LIST) {
           {
             this->success.clear();
+<<<<<<< HEAD
             uint32_t _size1872;
             ::apache::thrift::protocol::TType _etype1875;
             xfer += iprot->readListBegin(_etype1875, _size1872);
@@ -11594,6 +13458,16 @@ uint32_t ThriftHiveMetastore_get_tables_ext_result::read(::apache::thrift::proto
             for (_i1876 = 0; _i1876 < _size1872; ++_i1876)
             {
               xfer += this->success[_i1876].read(iprot);
+=======
+            uint32_t _size1900;
+            ::apache::thrift::protocol::TType _etype1903;
+            xfer += iprot->readListBegin(_etype1903, _size1900);
+            this->success.resize(_size1900);
+            uint32_t _i1904;
+            for (_i1904 = 0; _i1904 < _size1900; ++_i1904)
+            {
+              xfer += this->success[_i1904].read(iprot);
+>>>>>>> External metastore: clean after rebase
             }
             xfer += iprot->readListEnd();
           }
@@ -11632,10 +13506,17 @@ uint32_t ThriftHiveMetastore_get_tables_ext_result::write(::apache::thrift::prot
     xfer += oprot->writeFieldBegin("success", ::apache::thrift::protocol::T_LIST, 0);
     {
       xfer += oprot->writeListBegin(::apache::thrift::protocol::T_STRUCT, static_cast<uint32_t>(this->success.size()));
+<<<<<<< HEAD
       std::vector<ExtendedTableInfo> ::const_iterator _iter1877;
       for (_iter1877 = this->success.begin(); _iter1877 != this->success.end(); ++_iter1877)
       {
         xfer += (*_iter1877).write(oprot);
+=======
+      std::vector<ExtendedTableInfo> ::const_iterator _iter1905;
+      for (_iter1905 = this->success.begin(); _iter1905 != this->success.end(); ++_iter1905)
+      {
+        xfer += (*_iter1905).write(oprot);
+>>>>>>> External metastore: clean after rebase
       }
       xfer += oprot->writeListEnd();
     }
@@ -11680,6 +13561,7 @@ uint32_t ThriftHiveMetastore_get_tables_ext_presult::read(::apache::thrift::prot
         if (ftype == ::apache::thrift::protocol::T_LIST) {
           {
             (*(this->success)).clear();
+<<<<<<< HEAD
             uint32_t _size1878;
             ::apache::thrift::protocol::TType _etype1881;
             xfer += iprot->readListBegin(_etype1881, _size1878);
@@ -11688,6 +13570,16 @@ uint32_t ThriftHiveMetastore_get_tables_ext_presult::read(::apache::thrift::prot
             for (_i1882 = 0; _i1882 < _size1878; ++_i1882)
             {
               xfer += (*(this->success))[_i1882].read(iprot);
+=======
+            uint32_t _size1906;
+            ::apache::thrift::protocol::TType _etype1909;
+            xfer += iprot->readListBegin(_etype1909, _size1906);
+            (*(this->success)).resize(_size1906);
+            uint32_t _i1910;
+            for (_i1910 = 0; _i1910 < _size1906; ++_i1910)
+            {
+              xfer += (*(this->success))[_i1910].read(iprot);
+>>>>>>> External metastore: clean after rebase
             }
             xfer += iprot->readListEnd();
           }
@@ -12869,6 +14761,7 @@ uint32_t ThriftHiveMetastore_get_table_names_by_filter_result::read(::apache::th
         if (ftype == ::apache::thrift::protocol::T_LIST) {
           {
             this->success.clear();
+<<<<<<< HEAD
             uint32_t _size1883;
             ::apache::thrift::protocol::TType _etype1886;
             xfer += iprot->readListBegin(_etype1886, _size1883);
@@ -12877,6 +14770,16 @@ uint32_t ThriftHiveMetastore_get_table_names_by_filter_result::read(::apache::th
             for (_i1887 = 0; _i1887 < _size1883; ++_i1887)
             {
               xfer += iprot->readString(this->success[_i1887]);
+=======
+            uint32_t _size1911;
+            ::apache::thrift::protocol::TType _etype1914;
+            xfer += iprot->readListBegin(_etype1914, _size1911);
+            this->success.resize(_size1911);
+            uint32_t _i1915;
+            for (_i1915 = 0; _i1915 < _size1911; ++_i1915)
+            {
+              xfer += iprot->readString(this->success[_i1915]);
+>>>>>>> External metastore: clean after rebase
             }
             xfer += iprot->readListEnd();
           }
@@ -12931,10 +14834,17 @@ uint32_t ThriftHiveMetastore_get_table_names_by_filter_result::write(::apache::t
     xfer += oprot->writeFieldBegin("success", ::apache::thrift::protocol::T_LIST, 0);
     {
       xfer += oprot->writeListBegin(::apache::thrift::protocol::T_STRING, static_cast<uint32_t>(this->success.size()));
+<<<<<<< HEAD
       std::vector<std::string> ::const_iterator _iter1888;
       for (_iter1888 = this->success.begin(); _iter1888 != this->success.end(); ++_iter1888)
       {
         xfer += oprot->writeString((*_iter1888));
+=======
+      std::vector<std::string> ::const_iterator _iter1916;
+      for (_iter1916 = this->success.begin(); _iter1916 != this->success.end(); ++_iter1916)
+      {
+        xfer += oprot->writeString((*_iter1916));
+>>>>>>> External metastore: clean after rebase
       }
       xfer += oprot->writeListEnd();
     }
@@ -12987,6 +14897,7 @@ uint32_t ThriftHiveMetastore_get_table_names_by_filter_presult::read(::apache::t
         if (ftype == ::apache::thrift::protocol::T_LIST) {
           {
             (*(this->success)).clear();
+<<<<<<< HEAD
             uint32_t _size1889;
             ::apache::thrift::protocol::TType _etype1892;
             xfer += iprot->readListBegin(_etype1892, _size1889);
@@ -12995,6 +14906,16 @@ uint32_t ThriftHiveMetastore_get_table_names_by_filter_presult::read(::apache::t
             for (_i1893 = 0; _i1893 < _size1889; ++_i1893)
             {
               xfer += iprot->readString((*(this->success))[_i1893]);
+=======
+            uint32_t _size1917;
+            ::apache::thrift::protocol::TType _etype1920;
+            xfer += iprot->readListBegin(_etype1920, _size1917);
+            (*(this->success)).resize(_size1917);
+            uint32_t _i1921;
+            for (_i1921 = 0; _i1921 < _size1917; ++_i1921)
+            {
+              xfer += iprot->readString((*(this->success))[_i1921]);
+>>>>>>> External metastore: clean after rebase
             }
             xfer += iprot->readListEnd();
           }
@@ -14555,6 +16476,7 @@ uint32_t ThriftHiveMetastore_add_partitions_args::read(::apache::thrift::protoco
         if (ftype == ::apache::thrift::protocol::T_LIST) {
           {
             this->new_parts.clear();
+<<<<<<< HEAD
             uint32_t _size1894;
             ::apache::thrift::protocol::TType _etype1897;
             xfer += iprot->readListBegin(_etype1897, _size1894);
@@ -14563,6 +16485,16 @@ uint32_t ThriftHiveMetastore_add_partitions_args::read(::apache::thrift::protoco
             for (_i1898 = 0; _i1898 < _size1894; ++_i1898)
             {
               xfer += this->new_parts[_i1898].read(iprot);
+=======
+            uint32_t _size1922;
+            ::apache::thrift::protocol::TType _etype1925;
+            xfer += iprot->readListBegin(_etype1925, _size1922);
+            this->new_parts.resize(_size1922);
+            uint32_t _i1926;
+            for (_i1926 = 0; _i1926 < _size1922; ++_i1926)
+            {
+              xfer += this->new_parts[_i1926].read(iprot);
+>>>>>>> External metastore: clean after rebase
             }
             xfer += iprot->readListEnd();
           }
@@ -14591,10 +16523,17 @@ uint32_t ThriftHiveMetastore_add_partitions_args::write(::apache::thrift::protoc
   xfer += oprot->writeFieldBegin("new_parts", ::apache::thrift::protocol::T_LIST, 1);
   {
     xfer += oprot->writeListBegin(::apache::thrift::protocol::T_STRUCT, static_cast<uint32_t>(this->new_parts.size()));
+<<<<<<< HEAD
     std::vector<Partition> ::const_iterator _iter1899;
     for (_iter1899 = this->new_parts.begin(); _iter1899 != this->new_parts.end(); ++_iter1899)
     {
       xfer += (*_iter1899).write(oprot);
+=======
+    std::vector<Partition> ::const_iterator _iter1927;
+    for (_iter1927 = this->new_parts.begin(); _iter1927 != this->new_parts.end(); ++_iter1927)
+    {
+      xfer += (*_iter1927).write(oprot);
+>>>>>>> External metastore: clean after rebase
     }
     xfer += oprot->writeListEnd();
   }
@@ -14618,10 +16557,17 @@ uint32_t ThriftHiveMetastore_add_partitions_pargs::write(::apache::thrift::proto
   xfer += oprot->writeFieldBegin("new_parts", ::apache::thrift::protocol::T_LIST, 1);
   {
     xfer += oprot->writeListBegin(::apache::thrift::protocol::T_STRUCT, static_cast<uint32_t>((*(this->new_parts)).size()));
+<<<<<<< HEAD
     std::vector<Partition> ::const_iterator _iter1900;
     for (_iter1900 = (*(this->new_parts)).begin(); _iter1900 != (*(this->new_parts)).end(); ++_iter1900)
     {
       xfer += (*_iter1900).write(oprot);
+=======
+    std::vector<Partition> ::const_iterator _iter1928;
+    for (_iter1928 = (*(this->new_parts)).begin(); _iter1928 != (*(this->new_parts)).end(); ++_iter1928)
+    {
+      xfer += (*_iter1928).write(oprot);
+>>>>>>> External metastore: clean after rebase
     }
     xfer += oprot->writeListEnd();
   }
@@ -14830,6 +16776,7 @@ uint32_t ThriftHiveMetastore_add_partitions_pspec_args::read(::apache::thrift::p
         if (ftype == ::apache::thrift::protocol::T_LIST) {
           {
             this->new_parts.clear();
+<<<<<<< HEAD
             uint32_t _size1901;
             ::apache::thrift::protocol::TType _etype1904;
             xfer += iprot->readListBegin(_etype1904, _size1901);
@@ -14838,6 +16785,16 @@ uint32_t ThriftHiveMetastore_add_partitions_pspec_args::read(::apache::thrift::p
             for (_i1905 = 0; _i1905 < _size1901; ++_i1905)
             {
               xfer += this->new_parts[_i1905].read(iprot);
+=======
+            uint32_t _size1929;
+            ::apache::thrift::protocol::TType _etype1932;
+            xfer += iprot->readListBegin(_etype1932, _size1929);
+            this->new_parts.resize(_size1929);
+            uint32_t _i1933;
+            for (_i1933 = 0; _i1933 < _size1929; ++_i1933)
+            {
+              xfer += this->new_parts[_i1933].read(iprot);
+>>>>>>> External metastore: clean after rebase
             }
             xfer += iprot->readListEnd();
           }
@@ -14866,10 +16823,17 @@ uint32_t ThriftHiveMetastore_add_partitions_pspec_args::write(::apache::thrift::
   xfer += oprot->writeFieldBegin("new_parts", ::apache::thrift::protocol::T_LIST, 1);
   {
     xfer += oprot->writeListBegin(::apache::thrift::protocol::T_STRUCT, static_cast<uint32_t>(this->new_parts.size()));
+<<<<<<< HEAD
     std::vector<PartitionSpec> ::const_iterator _iter1906;
     for (_iter1906 = this->new_parts.begin(); _iter1906 != this->new_parts.end(); ++_iter1906)
     {
       xfer += (*_iter1906).write(oprot);
+=======
+    std::vector<PartitionSpec> ::const_iterator _iter1934;
+    for (_iter1934 = this->new_parts.begin(); _iter1934 != this->new_parts.end(); ++_iter1934)
+    {
+      xfer += (*_iter1934).write(oprot);
+>>>>>>> External metastore: clean after rebase
     }
     xfer += oprot->writeListEnd();
   }
@@ -14893,10 +16857,17 @@ uint32_t ThriftHiveMetastore_add_partitions_pspec_pargs::write(::apache::thrift:
   xfer += oprot->writeFieldBegin("new_parts", ::apache::thrift::protocol::T_LIST, 1);
   {
     xfer += oprot->writeListBegin(::apache::thrift::protocol::T_STRUCT, static_cast<uint32_t>((*(this->new_parts)).size()));
+<<<<<<< HEAD
     std::vector<PartitionSpec> ::const_iterator _iter1907;
     for (_iter1907 = (*(this->new_parts)).begin(); _iter1907 != (*(this->new_parts)).end(); ++_iter1907)
     {
       xfer += (*_iter1907).write(oprot);
+=======
+    std::vector<PartitionSpec> ::const_iterator _iter1935;
+    for (_iter1935 = (*(this->new_parts)).begin(); _iter1935 != (*(this->new_parts)).end(); ++_iter1935)
+    {
+      xfer += (*_iter1935).write(oprot);
+>>>>>>> External metastore: clean after rebase
     }
     xfer += oprot->writeListEnd();
   }
@@ -15121,6 +17092,7 @@ uint32_t ThriftHiveMetastore_append_partition_args::read(::apache::thrift::proto
         if (ftype == ::apache::thrift::protocol::T_LIST) {
           {
             this->part_vals.clear();
+<<<<<<< HEAD
             uint32_t _size1908;
             ::apache::thrift::protocol::TType _etype1911;
             xfer += iprot->readListBegin(_etype1911, _size1908);
@@ -15129,6 +17101,16 @@ uint32_t ThriftHiveMetastore_append_partition_args::read(::apache::thrift::proto
             for (_i1912 = 0; _i1912 < _size1908; ++_i1912)
             {
               xfer += iprot->readString(this->part_vals[_i1912]);
+=======
+            uint32_t _size1936;
+            ::apache::thrift::protocol::TType _etype1939;
+            xfer += iprot->readListBegin(_etype1939, _size1936);
+            this->part_vals.resize(_size1936);
+            uint32_t _i1940;
+            for (_i1940 = 0; _i1940 < _size1936; ++_i1940)
+            {
+              xfer += iprot->readString(this->part_vals[_i1940]);
+>>>>>>> External metastore: clean after rebase
             }
             xfer += iprot->readListEnd();
           }
@@ -15165,10 +17147,17 @@ uint32_t ThriftHiveMetastore_append_partition_args::write(::apache::thrift::prot
   xfer += oprot->writeFieldBegin("part_vals", ::apache::thrift::protocol::T_LIST, 3);
   {
     xfer += oprot->writeListBegin(::apache::thrift::protocol::T_STRING, static_cast<uint32_t>(this->part_vals.size()));
+<<<<<<< HEAD
     std::vector<std::string> ::const_iterator _iter1913;
     for (_iter1913 = this->part_vals.begin(); _iter1913 != this->part_vals.end(); ++_iter1913)
     {
       xfer += oprot->writeString((*_iter1913));
+=======
+    std::vector<std::string> ::const_iterator _iter1941;
+    for (_iter1941 = this->part_vals.begin(); _iter1941 != this->part_vals.end(); ++_iter1941)
+    {
+      xfer += oprot->writeString((*_iter1941));
+>>>>>>> External metastore: clean after rebase
     }
     xfer += oprot->writeListEnd();
   }
@@ -15200,10 +17189,17 @@ uint32_t ThriftHiveMetastore_append_partition_pargs::write(::apache::thrift::pro
   xfer += oprot->writeFieldBegin("part_vals", ::apache::thrift::protocol::T_LIST, 3);
   {
     xfer += oprot->writeListBegin(::apache::thrift::protocol::T_STRING, static_cast<uint32_t>((*(this->part_vals)).size()));
+<<<<<<< HEAD
     std::vector<std::string> ::const_iterator _iter1914;
     for (_iter1914 = (*(this->part_vals)).begin(); _iter1914 != (*(this->part_vals)).end(); ++_iter1914)
     {
       xfer += oprot->writeString((*_iter1914));
+=======
+    std::vector<std::string> ::const_iterator _iter1942;
+    for (_iter1942 = (*(this->part_vals)).begin(); _iter1942 != (*(this->part_vals)).end(); ++_iter1942)
+    {
+      xfer += oprot->writeString((*_iter1942));
+>>>>>>> External metastore: clean after rebase
     }
     xfer += oprot->writeListEnd();
   }
@@ -15675,6 +17671,7 @@ uint32_t ThriftHiveMetastore_append_partition_with_environment_context_args::rea
         if (ftype == ::apache::thrift::protocol::T_LIST) {
           {
             this->part_vals.clear();
+<<<<<<< HEAD
             uint32_t _size1915;
             ::apache::thrift::protocol::TType _etype1918;
             xfer += iprot->readListBegin(_etype1918, _size1915);
@@ -15683,6 +17680,16 @@ uint32_t ThriftHiveMetastore_append_partition_with_environment_context_args::rea
             for (_i1919 = 0; _i1919 < _size1915; ++_i1919)
             {
               xfer += iprot->readString(this->part_vals[_i1919]);
+=======
+            uint32_t _size1943;
+            ::apache::thrift::protocol::TType _etype1946;
+            xfer += iprot->readListBegin(_etype1946, _size1943);
+            this->part_vals.resize(_size1943);
+            uint32_t _i1947;
+            for (_i1947 = 0; _i1947 < _size1943; ++_i1947)
+            {
+              xfer += iprot->readString(this->part_vals[_i1947]);
+>>>>>>> External metastore: clean after rebase
             }
             xfer += iprot->readListEnd();
           }
@@ -15727,10 +17734,17 @@ uint32_t ThriftHiveMetastore_append_partition_with_environment_context_args::wri
   xfer += oprot->writeFieldBegin("part_vals", ::apache::thrift::protocol::T_LIST, 3);
   {
     xfer += oprot->writeListBegin(::apache::thrift::protocol::T_STRING, static_cast<uint32_t>(this->part_vals.size()));
+<<<<<<< HEAD
     std::vector<std::string> ::const_iterator _iter1920;
     for (_iter1920 = this->part_vals.begin(); _iter1920 != this->part_vals.end(); ++_iter1920)
     {
       xfer += oprot->writeString((*_iter1920));
+=======
+    std::vector<std::string> ::const_iterator _iter1948;
+    for (_iter1948 = this->part_vals.begin(); _iter1948 != this->part_vals.end(); ++_iter1948)
+    {
+      xfer += oprot->writeString((*_iter1948));
+>>>>>>> External metastore: clean after rebase
     }
     xfer += oprot->writeListEnd();
   }
@@ -15766,10 +17780,17 @@ uint32_t ThriftHiveMetastore_append_partition_with_environment_context_pargs::wr
   xfer += oprot->writeFieldBegin("part_vals", ::apache::thrift::protocol::T_LIST, 3);
   {
     xfer += oprot->writeListBegin(::apache::thrift::protocol::T_STRING, static_cast<uint32_t>((*(this->part_vals)).size()));
+<<<<<<< HEAD
     std::vector<std::string> ::const_iterator _iter1921;
     for (_iter1921 = (*(this->part_vals)).begin(); _iter1921 != (*(this->part_vals)).end(); ++_iter1921)
     {
       xfer += oprot->writeString((*_iter1921));
+=======
+    std::vector<std::string> ::const_iterator _iter1949;
+    for (_iter1949 = (*(this->part_vals)).begin(); _iter1949 != (*(this->part_vals)).end(); ++_iter1949)
+    {
+      xfer += oprot->writeString((*_iter1949));
+>>>>>>> External metastore: clean after rebase
     }
     xfer += oprot->writeListEnd();
   }
@@ -16572,6 +18593,7 @@ uint32_t ThriftHiveMetastore_drop_partition_args::read(::apache::thrift::protoco
         if (ftype == ::apache::thrift::protocol::T_LIST) {
           {
             this->part_vals.clear();
+<<<<<<< HEAD
             uint32_t _size1922;
             ::apache::thrift::protocol::TType _etype1925;
             xfer += iprot->readListBegin(_etype1925, _size1922);
@@ -16580,6 +18602,16 @@ uint32_t ThriftHiveMetastore_drop_partition_args::read(::apache::thrift::protoco
             for (_i1926 = 0; _i1926 < _size1922; ++_i1926)
             {
               xfer += iprot->readString(this->part_vals[_i1926]);
+=======
+            uint32_t _size1950;
+            ::apache::thrift::protocol::TType _etype1953;
+            xfer += iprot->readListBegin(_etype1953, _size1950);
+            this->part_vals.resize(_size1950);
+            uint32_t _i1954;
+            for (_i1954 = 0; _i1954 < _size1950; ++_i1954)
+            {
+              xfer += iprot->readString(this->part_vals[_i1954]);
+>>>>>>> External metastore: clean after rebase
             }
             xfer += iprot->readListEnd();
           }
@@ -16624,10 +18656,17 @@ uint32_t ThriftHiveMetastore_drop_partition_args::write(::apache::thrift::protoc
   xfer += oprot->writeFieldBegin("part_vals", ::apache::thrift::protocol::T_LIST, 3);
   {
     xfer += oprot->writeListBegin(::apache::thrift::protocol::T_STRING, static_cast<uint32_t>(this->part_vals.size()));
+<<<<<<< HEAD
     std::vector<std::string> ::const_iterator _iter1927;
     for (_iter1927 = this->part_vals.begin(); _iter1927 != this->part_vals.end(); ++_iter1927)
     {
       xfer += oprot->writeString((*_iter1927));
+=======
+    std::vector<std::string> ::const_iterator _iter1955;
+    for (_iter1955 = this->part_vals.begin(); _iter1955 != this->part_vals.end(); ++_iter1955)
+    {
+      xfer += oprot->writeString((*_iter1955));
+>>>>>>> External metastore: clean after rebase
     }
     xfer += oprot->writeListEnd();
   }
@@ -16663,10 +18702,17 @@ uint32_t ThriftHiveMetastore_drop_partition_pargs::write(::apache::thrift::proto
   xfer += oprot->writeFieldBegin("part_vals", ::apache::thrift::protocol::T_LIST, 3);
   {
     xfer += oprot->writeListBegin(::apache::thrift::protocol::T_STRING, static_cast<uint32_t>((*(this->part_vals)).size()));
+<<<<<<< HEAD
     std::vector<std::string> ::const_iterator _iter1928;
     for (_iter1928 = (*(this->part_vals)).begin(); _iter1928 != (*(this->part_vals)).end(); ++_iter1928)
     {
       xfer += oprot->writeString((*_iter1928));
+=======
+    std::vector<std::string> ::const_iterator _iter1956;
+    for (_iter1956 = (*(this->part_vals)).begin(); _iter1956 != (*(this->part_vals)).end(); ++_iter1956)
+    {
+      xfer += oprot->writeString((*_iter1956));
+>>>>>>> External metastore: clean after rebase
     }
     xfer += oprot->writeListEnd();
   }
@@ -16875,6 +18921,7 @@ uint32_t ThriftHiveMetastore_drop_partition_with_environment_context_args::read(
         if (ftype == ::apache::thrift::protocol::T_LIST) {
           {
             this->part_vals.clear();
+<<<<<<< HEAD
             uint32_t _size1929;
             ::apache::thrift::protocol::TType _etype1932;
             xfer += iprot->readListBegin(_etype1932, _size1929);
@@ -16883,6 +18930,16 @@ uint32_t ThriftHiveMetastore_drop_partition_with_environment_context_args::read(
             for (_i1933 = 0; _i1933 < _size1929; ++_i1933)
             {
               xfer += iprot->readString(this->part_vals[_i1933]);
+=======
+            uint32_t _size1957;
+            ::apache::thrift::protocol::TType _etype1960;
+            xfer += iprot->readListBegin(_etype1960, _size1957);
+            this->part_vals.resize(_size1957);
+            uint32_t _i1961;
+            for (_i1961 = 0; _i1961 < _size1957; ++_i1961)
+            {
+              xfer += iprot->readString(this->part_vals[_i1961]);
+>>>>>>> External metastore: clean after rebase
             }
             xfer += iprot->readListEnd();
           }
@@ -16935,10 +18992,17 @@ uint32_t ThriftHiveMetastore_drop_partition_with_environment_context_args::write
   xfer += oprot->writeFieldBegin("part_vals", ::apache::thrift::protocol::T_LIST, 3);
   {
     xfer += oprot->writeListBegin(::apache::thrift::protocol::T_STRING, static_cast<uint32_t>(this->part_vals.size()));
+<<<<<<< HEAD
     std::vector<std::string> ::const_iterator _iter1934;
     for (_iter1934 = this->part_vals.begin(); _iter1934 != this->part_vals.end(); ++_iter1934)
     {
       xfer += oprot->writeString((*_iter1934));
+=======
+    std::vector<std::string> ::const_iterator _iter1962;
+    for (_iter1962 = this->part_vals.begin(); _iter1962 != this->part_vals.end(); ++_iter1962)
+    {
+      xfer += oprot->writeString((*_iter1962));
+>>>>>>> External metastore: clean after rebase
     }
     xfer += oprot->writeListEnd();
   }
@@ -16978,10 +19042,17 @@ uint32_t ThriftHiveMetastore_drop_partition_with_environment_context_pargs::writ
   xfer += oprot->writeFieldBegin("part_vals", ::apache::thrift::protocol::T_LIST, 3);
   {
     xfer += oprot->writeListBegin(::apache::thrift::protocol::T_STRING, static_cast<uint32_t>((*(this->part_vals)).size()));
+<<<<<<< HEAD
     std::vector<std::string> ::const_iterator _iter1935;
     for (_iter1935 = (*(this->part_vals)).begin(); _iter1935 != (*(this->part_vals)).end(); ++_iter1935)
     {
       xfer += oprot->writeString((*_iter1935));
+=======
+    std::vector<std::string> ::const_iterator _iter1963;
+    for (_iter1963 = (*(this->part_vals)).begin(); _iter1963 != (*(this->part_vals)).end(); ++_iter1963)
+    {
+      xfer += oprot->writeString((*_iter1963));
+>>>>>>> External metastore: clean after rebase
     }
     xfer += oprot->writeListEnd();
   }
@@ -17987,6 +20058,7 @@ uint32_t ThriftHiveMetastore_get_partition_args::read(::apache::thrift::protocol
         if (ftype == ::apache::thrift::protocol::T_LIST) {
           {
             this->part_vals.clear();
+<<<<<<< HEAD
             uint32_t _size1936;
             ::apache::thrift::protocol::TType _etype1939;
             xfer += iprot->readListBegin(_etype1939, _size1936);
@@ -17995,6 +20067,16 @@ uint32_t ThriftHiveMetastore_get_partition_args::read(::apache::thrift::protocol
             for (_i1940 = 0; _i1940 < _size1936; ++_i1940)
             {
               xfer += iprot->readString(this->part_vals[_i1940]);
+=======
+            uint32_t _size1964;
+            ::apache::thrift::protocol::TType _etype1967;
+            xfer += iprot->readListBegin(_etype1967, _size1964);
+            this->part_vals.resize(_size1964);
+            uint32_t _i1968;
+            for (_i1968 = 0; _i1968 < _size1964; ++_i1968)
+            {
+              xfer += iprot->readString(this->part_vals[_i1968]);
+>>>>>>> External metastore: clean after rebase
             }
             xfer += iprot->readListEnd();
           }
@@ -18031,10 +20113,17 @@ uint32_t ThriftHiveMetastore_get_partition_args::write(::apache::thrift::protoco
   xfer += oprot->writeFieldBegin("part_vals", ::apache::thrift::protocol::T_LIST, 3);
   {
     xfer += oprot->writeListBegin(::apache::thrift::protocol::T_STRING, static_cast<uint32_t>(this->part_vals.size()));
+<<<<<<< HEAD
     std::vector<std::string> ::const_iterator _iter1941;
     for (_iter1941 = this->part_vals.begin(); _iter1941 != this->part_vals.end(); ++_iter1941)
     {
       xfer += oprot->writeString((*_iter1941));
+=======
+    std::vector<std::string> ::const_iterator _iter1969;
+    for (_iter1969 = this->part_vals.begin(); _iter1969 != this->part_vals.end(); ++_iter1969)
+    {
+      xfer += oprot->writeString((*_iter1969));
+>>>>>>> External metastore: clean after rebase
     }
     xfer += oprot->writeListEnd();
   }
@@ -18066,10 +20155,17 @@ uint32_t ThriftHiveMetastore_get_partition_pargs::write(::apache::thrift::protoc
   xfer += oprot->writeFieldBegin("part_vals", ::apache::thrift::protocol::T_LIST, 3);
   {
     xfer += oprot->writeListBegin(::apache::thrift::protocol::T_STRING, static_cast<uint32_t>((*(this->part_vals)).size()));
+<<<<<<< HEAD
     std::vector<std::string> ::const_iterator _iter1942;
     for (_iter1942 = (*(this->part_vals)).begin(); _iter1942 != (*(this->part_vals)).end(); ++_iter1942)
     {
       xfer += oprot->writeString((*_iter1942));
+=======
+    std::vector<std::string> ::const_iterator _iter1970;
+    for (_iter1970 = (*(this->part_vals)).begin(); _iter1970 != (*(this->part_vals)).end(); ++_iter1970)
+    {
+      xfer += oprot->writeString((*_iter1970));
+>>>>>>> External metastore: clean after rebase
     }
     xfer += oprot->writeListEnd();
   }
@@ -18485,6 +20581,7 @@ uint32_t ThriftHiveMetastore_exchange_partition_args::read(::apache::thrift::pro
         if (ftype == ::apache::thrift::protocol::T_MAP) {
           {
             this->partitionSpecs.clear();
+<<<<<<< HEAD
             uint32_t _size1943;
             ::apache::thrift::protocol::TType _ktype1944;
             ::apache::thrift::protocol::TType _vtype1945;
@@ -18496,6 +20593,19 @@ uint32_t ThriftHiveMetastore_exchange_partition_args::read(::apache::thrift::pro
               xfer += iprot->readString(_key1948);
               std::string& _val1949 = this->partitionSpecs[_key1948];
               xfer += iprot->readString(_val1949);
+=======
+            uint32_t _size1971;
+            ::apache::thrift::protocol::TType _ktype1972;
+            ::apache::thrift::protocol::TType _vtype1973;
+            xfer += iprot->readMapBegin(_ktype1972, _vtype1973, _size1971);
+            uint32_t _i1975;
+            for (_i1975 = 0; _i1975 < _size1971; ++_i1975)
+            {
+              std::string _key1976;
+              xfer += iprot->readString(_key1976);
+              std::string& _val1977 = this->partitionSpecs[_key1976];
+              xfer += iprot->readString(_val1977);
+>>>>>>> External metastore: clean after rebase
             }
             xfer += iprot->readMapEnd();
           }
@@ -18556,11 +20666,19 @@ uint32_t ThriftHiveMetastore_exchange_partition_args::write(::apache::thrift::pr
   xfer += oprot->writeFieldBegin("partitionSpecs", ::apache::thrift::protocol::T_MAP, 1);
   {
     xfer += oprot->writeMapBegin(::apache::thrift::protocol::T_STRING, ::apache::thrift::protocol::T_STRING, static_cast<uint32_t>(this->partitionSpecs.size()));
+<<<<<<< HEAD
     std::map<std::string, std::string> ::const_iterator _iter1950;
     for (_iter1950 = this->partitionSpecs.begin(); _iter1950 != this->partitionSpecs.end(); ++_iter1950)
     {
       xfer += oprot->writeString(_iter1950->first);
       xfer += oprot->writeString(_iter1950->second);
+=======
+    std::map<std::string, std::string> ::const_iterator _iter1978;
+    for (_iter1978 = this->partitionSpecs.begin(); _iter1978 != this->partitionSpecs.end(); ++_iter1978)
+    {
+      xfer += oprot->writeString(_iter1978->first);
+      xfer += oprot->writeString(_iter1978->second);
+>>>>>>> External metastore: clean after rebase
     }
     xfer += oprot->writeMapEnd();
   }
@@ -18600,11 +20718,19 @@ uint32_t ThriftHiveMetastore_exchange_partition_pargs::write(::apache::thrift::p
   xfer += oprot->writeFieldBegin("partitionSpecs", ::apache::thrift::protocol::T_MAP, 1);
   {
     xfer += oprot->writeMapBegin(::apache::thrift::protocol::T_STRING, ::apache::thrift::protocol::T_STRING, static_cast<uint32_t>((*(this->partitionSpecs)).size()));
+<<<<<<< HEAD
     std::map<std::string, std::string> ::const_iterator _iter1951;
     for (_iter1951 = (*(this->partitionSpecs)).begin(); _iter1951 != (*(this->partitionSpecs)).end(); ++_iter1951)
     {
       xfer += oprot->writeString(_iter1951->first);
       xfer += oprot->writeString(_iter1951->second);
+=======
+    std::map<std::string, std::string> ::const_iterator _iter1979;
+    for (_iter1979 = (*(this->partitionSpecs)).begin(); _iter1979 != (*(this->partitionSpecs)).end(); ++_iter1979)
+    {
+      xfer += oprot->writeString(_iter1979->first);
+      xfer += oprot->writeString(_iter1979->second);
+>>>>>>> External metastore: clean after rebase
     }
     xfer += oprot->writeMapEnd();
   }
@@ -18849,6 +20975,7 @@ uint32_t ThriftHiveMetastore_exchange_partitions_args::read(::apache::thrift::pr
         if (ftype == ::apache::thrift::protocol::T_MAP) {
           {
             this->partitionSpecs.clear();
+<<<<<<< HEAD
             uint32_t _size1952;
             ::apache::thrift::protocol::TType _ktype1953;
             ::apache::thrift::protocol::TType _vtype1954;
@@ -18860,6 +20987,19 @@ uint32_t ThriftHiveMetastore_exchange_partitions_args::read(::apache::thrift::pr
               xfer += iprot->readString(_key1957);
               std::string& _val1958 = this->partitionSpecs[_key1957];
               xfer += iprot->readString(_val1958);
+=======
+            uint32_t _size1980;
+            ::apache::thrift::protocol::TType _ktype1981;
+            ::apache::thrift::protocol::TType _vtype1982;
+            xfer += iprot->readMapBegin(_ktype1981, _vtype1982, _size1980);
+            uint32_t _i1984;
+            for (_i1984 = 0; _i1984 < _size1980; ++_i1984)
+            {
+              std::string _key1985;
+              xfer += iprot->readString(_key1985);
+              std::string& _val1986 = this->partitionSpecs[_key1985];
+              xfer += iprot->readString(_val1986);
+>>>>>>> External metastore: clean after rebase
             }
             xfer += iprot->readMapEnd();
           }
@@ -18920,11 +21060,19 @@ uint32_t ThriftHiveMetastore_exchange_partitions_args::write(::apache::thrift::p
   xfer += oprot->writeFieldBegin("partitionSpecs", ::apache::thrift::protocol::T_MAP, 1);
   {
     xfer += oprot->writeMapBegin(::apache::thrift::protocol::T_STRING, ::apache::thrift::protocol::T_STRING, static_cast<uint32_t>(this->partitionSpecs.size()));
+<<<<<<< HEAD
     std::map<std::string, std::string> ::const_iterator _iter1959;
     for (_iter1959 = this->partitionSpecs.begin(); _iter1959 != this->partitionSpecs.end(); ++_iter1959)
     {
       xfer += oprot->writeString(_iter1959->first);
       xfer += oprot->writeString(_iter1959->second);
+=======
+    std::map<std::string, std::string> ::const_iterator _iter1987;
+    for (_iter1987 = this->partitionSpecs.begin(); _iter1987 != this->partitionSpecs.end(); ++_iter1987)
+    {
+      xfer += oprot->writeString(_iter1987->first);
+      xfer += oprot->writeString(_iter1987->second);
+>>>>>>> External metastore: clean after rebase
     }
     xfer += oprot->writeMapEnd();
   }
@@ -18964,11 +21112,19 @@ uint32_t ThriftHiveMetastore_exchange_partitions_pargs::write(::apache::thrift::
   xfer += oprot->writeFieldBegin("partitionSpecs", ::apache::thrift::protocol::T_MAP, 1);
   {
     xfer += oprot->writeMapBegin(::apache::thrift::protocol::T_STRING, ::apache::thrift::protocol::T_STRING, static_cast<uint32_t>((*(this->partitionSpecs)).size()));
+<<<<<<< HEAD
     std::map<std::string, std::string> ::const_iterator _iter1960;
     for (_iter1960 = (*(this->partitionSpecs)).begin(); _iter1960 != (*(this->partitionSpecs)).end(); ++_iter1960)
     {
       xfer += oprot->writeString(_iter1960->first);
       xfer += oprot->writeString(_iter1960->second);
+=======
+    std::map<std::string, std::string> ::const_iterator _iter1988;
+    for (_iter1988 = (*(this->partitionSpecs)).begin(); _iter1988 != (*(this->partitionSpecs)).end(); ++_iter1988)
+    {
+      xfer += oprot->writeString(_iter1988->first);
+      xfer += oprot->writeString(_iter1988->second);
+>>>>>>> External metastore: clean after rebase
     }
     xfer += oprot->writeMapEnd();
   }
@@ -19025,6 +21181,7 @@ uint32_t ThriftHiveMetastore_exchange_partitions_result::read(::apache::thrift::
         if (ftype == ::apache::thrift::protocol::T_LIST) {
           {
             this->success.clear();
+<<<<<<< HEAD
             uint32_t _size1961;
             ::apache::thrift::protocol::TType _etype1964;
             xfer += iprot->readListBegin(_etype1964, _size1961);
@@ -19033,6 +21190,154 @@ uint32_t ThriftHiveMetastore_exchange_partitions_result::read(::apache::thrift::
             for (_i1965 = 0; _i1965 < _size1961; ++_i1965)
             {
               xfer += this->success[_i1965].read(iprot);
+=======
+            uint32_t _size1989;
+            ::apache::thrift::protocol::TType _etype1992;
+            xfer += iprot->readListBegin(_etype1992, _size1989);
+            this->success.resize(_size1989);
+            uint32_t _i1993;
+            for (_i1993 = 0; _i1993 < _size1989; ++_i1993)
+            {
+              xfer += this->success[_i1993].read(iprot);
+>>>>>>> External metastore: clean after rebase
+            }
+            xfer += iprot->readListEnd();
+          }
+          this->__isset.success = true;
+        } else {
+          xfer += iprot->skip(ftype);
+        }
+        break;
+      case 1:
+        if (ftype == ::apache::thrift::protocol::T_STRUCT) {
+          xfer += this->o1.read(iprot);
+          this->__isset.o1 = true;
+        } else {
+          xfer += iprot->skip(ftype);
+        }
+        break;
+      case 2:
+        if (ftype == ::apache::thrift::protocol::T_STRUCT) {
+          xfer += this->o2.read(iprot);
+          this->__isset.o2 = true;
+        } else {
+          xfer += iprot->skip(ftype);
+        }
+        break;
+      case 3:
+        if (ftype == ::apache::thrift::protocol::T_STRUCT) {
+          xfer += this->o3.read(iprot);
+          this->__isset.o3 = true;
+        } else {
+          xfer += iprot->skip(ftype);
+        }
+        break;
+      case 4:
+        if (ftype == ::apache::thrift::protocol::T_STRUCT) {
+          xfer += this->o4.read(iprot);
+          this->__isset.o4 = true;
+        } else {
+          xfer += iprot->skip(ftype);
+        }
+        break;
+      default:
+        xfer += iprot->skip(ftype);
+        break;
+    }
+    xfer += iprot->readFieldEnd();
+  }
+
+  xfer += iprot->readStructEnd();
+
+  return xfer;
+}
+
+uint32_t ThriftHiveMetastore_exchange_partitions_result::write(::apache::thrift::protocol::TProtocol* oprot) const {
+
+  uint32_t xfer = 0;
+
+  xfer += oprot->writeStructBegin("ThriftHiveMetastore_exchange_partitions_result");
+
+  if (this->__isset.success) {
+    xfer += oprot->writeFieldBegin("success", ::apache::thrift::protocol::T_LIST, 0);
+    {
+      xfer += oprot->writeListBegin(::apache::thrift::protocol::T_STRUCT, static_cast<uint32_t>(this->success.size()));
+<<<<<<< HEAD
+      std::vector<Partition> ::const_iterator _iter1966;
+      for (_iter1966 = this->success.begin(); _iter1966 != this->success.end(); ++_iter1966)
+      {
+        xfer += (*_iter1966).write(oprot);
+=======
+      std::vector<Partition> ::const_iterator _iter1994;
+      for (_iter1994 = this->success.begin(); _iter1994 != this->success.end(); ++_iter1994)
+      {
+        xfer += (*_iter1994).write(oprot);
+>>>>>>> External metastore: clean after rebase
+      }
+      xfer += oprot->writeListEnd();
+    }
+    xfer += oprot->writeFieldEnd();
+  } else if (this->__isset.o1) {
+    xfer += oprot->writeFieldBegin("o1", ::apache::thrift::protocol::T_STRUCT, 1);
+    xfer += this->o1.write(oprot);
+    xfer += oprot->writeFieldEnd();
+  } else if (this->__isset.o2) {
+    xfer += oprot->writeFieldBegin("o2", ::apache::thrift::protocol::T_STRUCT, 2);
+    xfer += this->o2.write(oprot);
+    xfer += oprot->writeFieldEnd();
+  } else if (this->__isset.o3) {
+    xfer += oprot->writeFieldBegin("o3", ::apache::thrift::protocol::T_STRUCT, 3);
+    xfer += this->o3.write(oprot);
+    xfer += oprot->writeFieldEnd();
+  } else if (this->__isset.o4) {
+    xfer += oprot->writeFieldBegin("o4", ::apache::thrift::protocol::T_STRUCT, 4);
+    xfer += this->o4.write(oprot);
+    xfer += oprot->writeFieldEnd();
+  }
+  xfer += oprot->writeFieldStop();
+  xfer += oprot->writeStructEnd();
+  return xfer;
+}
+
+
+ThriftHiveMetastore_exchange_partitions_presult::~ThriftHiveMetastore_exchange_partitions_presult() noexcept {
+}
+
+
+uint32_t ThriftHiveMetastore_exchange_partitions_presult::read(::apache::thrift::protocol::TProtocol* iprot) {
+
+  ::apache::thrift::protocol::TInputRecursionTracker tracker(*iprot);
+  uint32_t xfer = 0;
+  std::string fname;
+  ::apache::thrift::protocol::TType ftype;
+  int16_t fid;
+
+  xfer += iprot->readStructBegin(fname);
+
+  using ::apache::thrift::protocol::TProtocolException;
+
+
+  while (true)
+  {
+    xfer += iprot->readFieldBegin(fname, ftype, fid);
+    if (ftype == ::apache::thrift::protocol::T_STOP) {
+      break;
+    }
+    switch (fid)
+    {
+      case 0:
+        if (ftype == ::apache::thrift::protocol::T_LIST) {
+          {
+            (*(this->success)).clear();
+<<<<<<< HEAD
+            uint32_t _size1967;
+            ::apache::thrift::protocol::TType _etype1970;
+            xfer += iprot->readListBegin(_etype1970, _size1967);
+            (*(this->success)).resize(_size1967);
+            uint32_t _i1971;
+            for (_i1971 = 0; _i1971 < _size1967; ++_i1971)
+            {
+              xfer += (*(this->success))[_i1971].read(iprot);
             }
             xfer += iprot->readListEnd();
           }
@@ -19085,52 +21390,12 @@ uint32_t ThriftHiveMetastore_exchange_partitions_result::read(::apache::thrift::
   return xfer;
 }
 
-uint32_t ThriftHiveMetastore_exchange_partitions_result::write(::apache::thrift::protocol::TProtocol* oprot) const {
-
-  uint32_t xfer = 0;
-
-  xfer += oprot->writeStructBegin("ThriftHiveMetastore_exchange_partitions_result");
-
-  if (this->__isset.success) {
-    xfer += oprot->writeFieldBegin("success", ::apache::thrift::protocol::T_LIST, 0);
-    {
-      xfer += oprot->writeListBegin(::apache::thrift::protocol::T_STRUCT, static_cast<uint32_t>(this->success.size()));
-      std::vector<Partition> ::const_iterator _iter1966;
-      for (_iter1966 = this->success.begin(); _iter1966 != this->success.end(); ++_iter1966)
-      {
-        xfer += (*_iter1966).write(oprot);
-      }
-      xfer += oprot->writeListEnd();
-    }
-    xfer += oprot->writeFieldEnd();
-  } else if (this->__isset.o1) {
-    xfer += oprot->writeFieldBegin("o1", ::apache::thrift::protocol::T_STRUCT, 1);
-    xfer += this->o1.write(oprot);
-    xfer += oprot->writeFieldEnd();
-  } else if (this->__isset.o2) {
-    xfer += oprot->writeFieldBegin("o2", ::apache::thrift::protocol::T_STRUCT, 2);
-    xfer += this->o2.write(oprot);
-    xfer += oprot->writeFieldEnd();
-  } else if (this->__isset.o3) {
-    xfer += oprot->writeFieldBegin("o3", ::apache::thrift::protocol::T_STRUCT, 3);
-    xfer += this->o3.write(oprot);
-    xfer += oprot->writeFieldEnd();
-  } else if (this->__isset.o4) {
-    xfer += oprot->writeFieldBegin("o4", ::apache::thrift::protocol::T_STRUCT, 4);
-    xfer += this->o4.write(oprot);
-    xfer += oprot->writeFieldEnd();
-  }
-  xfer += oprot->writeFieldStop();
-  xfer += oprot->writeStructEnd();
-  return xfer;
-}
-
 
-ThriftHiveMetastore_exchange_partitions_presult::~ThriftHiveMetastore_exchange_partitions_presult() noexcept {
+ThriftHiveMetastore_get_partition_with_auth_args::~ThriftHiveMetastore_get_partition_with_auth_args() noexcept {
 }
 
 
-uint32_t ThriftHiveMetastore_exchange_partitions_presult::read(::apache::thrift::protocol::TProtocol* iprot) {
+uint32_t ThriftHiveMetastore_get_partition_with_auth_args::read(::apache::thrift::protocol::TProtocol* iprot) {
 
   ::apache::thrift::protocol::TInputRecursionTracker tracker(*iprot);
   uint32_t xfer = 0;
@@ -19151,18 +21416,74 @@ uint32_t ThriftHiveMetastore_exchange_partitions_presult::read(::apache::thrift:
     }
     switch (fid)
     {
-      case 0:
+      case 1:
+        if (ftype == ::apache::thrift::protocol::T_STRING) {
+          xfer += iprot->readString(this->db_name);
+          this->__isset.db_name = true;
+        } else {
+          xfer += iprot->skip(ftype);
+        }
+        break;
+      case 2:
+        if (ftype == ::apache::thrift::protocol::T_STRING) {
+          xfer += iprot->readString(this->tbl_name);
+          this->__isset.tbl_name = true;
+        } else {
+          xfer += iprot->skip(ftype);
+        }
+        break;
+      case 3:
         if (ftype == ::apache::thrift::protocol::T_LIST) {
           {
-            (*(this->success)).clear();
-            uint32_t _size1967;
-            ::apache::thrift::protocol::TType _etype1970;
-            xfer += iprot->readListBegin(_etype1970, _size1967);
-            (*(this->success)).resize(_size1967);
-            uint32_t _i1971;
-            for (_i1971 = 0; _i1971 < _size1967; ++_i1971)
+            this->part_vals.clear();
+            uint32_t _size1972;
+            ::apache::thrift::protocol::TType _etype1975;
+            xfer += iprot->readListBegin(_etype1975, _size1972);
+            this->part_vals.resize(_size1972);
+            uint32_t _i1976;
+            for (_i1976 = 0; _i1976 < _size1972; ++_i1976)
             {
-              xfer += (*(this->success))[_i1971].read(iprot);
+              xfer += iprot->readString(this->part_vals[_i1976]);
+            }
+            xfer += iprot->readListEnd();
+          }
+          this->__isset.part_vals = true;
+        } else {
+          xfer += iprot->skip(ftype);
+        }
+        break;
+      case 4:
+        if (ftype == ::apache::thrift::protocol::T_STRING) {
+          xfer += iprot->readString(this->user_name);
+          this->__isset.user_name = true;
+        } else {
+          xfer += iprot->skip(ftype);
+        }
+        break;
+      case 5:
+        if (ftype == ::apache::thrift::protocol::T_LIST) {
+          {
+            this->group_names.clear();
+            uint32_t _size1977;
+            ::apache::thrift::protocol::TType _etype1980;
+            xfer += iprot->readListBegin(_etype1980, _size1977);
+            this->group_names.resize(_size1977);
+            uint32_t _i1981;
+            for (_i1981 = 0; _i1981 < _size1977; ++_i1981)
+            {
+              xfer += iprot->readString(this->group_names[_i1981]);
+            }
+            xfer += iprot->readListEnd();
+          }
+=======
+            uint32_t _size1995;
+            ::apache::thrift::protocol::TType _etype1998;
+            xfer += iprot->readListBegin(_etype1998, _size1995);
+            (*(this->success)).resize(_size1995);
+            uint32_t _i1999;
+            for (_i1999 = 0; _i1999 < _size1995; ++_i1999)
+            {
+              xfer += (*(this->success))[_i1999].read(iprot);
             }
             xfer += iprot->readListEnd();
           }
@@ -19261,14 +21582,14 @@ uint32_t ThriftHiveMetastore_get_partition_with_auth_args::read(::apache::thrift
         if (ftype == ::apache::thrift::protocol::T_LIST) {
           {
             this->part_vals.clear();
-            uint32_t _size1972;
-            ::apache::thrift::protocol::TType _etype1975;
-            xfer += iprot->readListBegin(_etype1975, _size1972);
-            this->part_vals.resize(_size1972);
-            uint32_t _i1976;
-            for (_i1976 = 0; _i1976 < _size1972; ++_i1976)
+            uint32_t _size2000;
+            ::apache::thrift::protocol::TType _etype2003;
+            xfer += iprot->readListBegin(_etype2003, _size2000);
+            this->part_vals.resize(_size2000);
+            uint32_t _i2004;
+            for (_i2004 = 0; _i2004 < _size2000; ++_i2004)
             {
-              xfer += iprot->readString(this->part_vals[_i1976]);
+              xfer += iprot->readString(this->part_vals[_i2004]);
             }
             xfer += iprot->readListEnd();
           }
@@ -19289,17 +21610,18 @@ uint32_t ThriftHiveMetastore_get_partition_with_auth_args::read(::apache::thrift
         if (ftype == ::apache::thrift::protocol::T_LIST) {
           {
             this->group_names.clear();
-            uint32_t _size1977;
-            ::apache::thrift::protocol::TType _etype1980;
-            xfer += iprot->readListBegin(_etype1980, _size1977);
-            this->group_names.resize(_size1977);
-            uint32_t _i1981;
-            for (_i1981 = 0; _i1981 < _size1977; ++_i1981)
+            uint32_t _size2005;
+            ::apache::thrift::protocol::TType _etype2008;
+            xfer += iprot->readListBegin(_etype2008, _size2005);
+            this->group_names.resize(_size2005);
+            uint32_t _i2009;
+            for (_i2009 = 0; _i2009 < _size2005; ++_i2009)
             {
-              xfer += iprot->readString(this->group_names[_i1981]);
+              xfer += iprot->readString(this->group_names[_i2009]);
             }
             xfer += iprot->readListEnd();
           }
+>>>>>>> External metastore: clean after rebase
           this->__isset.group_names = true;
         } else {
           xfer += iprot->skip(ftype);
@@ -19333,10 +21655,17 @@ uint32_t ThriftHiveMetastore_get_partition_with_auth_args::write(::apache::thrif
   xfer += oprot->writeFieldBegin("part_vals", ::apache::thrift::protocol::T_LIST, 3);
   {
     xfer += oprot->writeListBegin(::apache::thrift::protocol::T_STRING, static_cast<uint32_t>(this->part_vals.size()));
+<<<<<<< HEAD
     std::vector<std::string> ::const_iterator _iter1982;
     for (_iter1982 = this->part_vals.begin(); _iter1982 != this->part_vals.end(); ++_iter1982)
     {
       xfer += oprot->writeString((*_iter1982));
+=======
+    std::vector<std::string> ::const_iterator _iter2010;
+    for (_iter2010 = this->part_vals.begin(); _iter2010 != this->part_vals.end(); ++_iter2010)
+    {
+      xfer += oprot->writeString((*_iter2010));
+>>>>>>> External metastore: clean after rebase
     }
     xfer += oprot->writeListEnd();
   }
@@ -19349,10 +21678,17 @@ uint32_t ThriftHiveMetastore_get_partition_with_auth_args::write(::apache::thrif
   xfer += oprot->writeFieldBegin("group_names", ::apache::thrift::protocol::T_LIST, 5);
   {
     xfer += oprot->writeListBegin(::apache::thrift::protocol::T_STRING, static_cast<uint32_t>(this->group_names.size()));
+<<<<<<< HEAD
     std::vector<std::string> ::const_iterator _iter1983;
     for (_iter1983 = this->group_names.begin(); _iter1983 != this->group_names.end(); ++_iter1983)
     {
       xfer += oprot->writeString((*_iter1983));
+=======
+    std::vector<std::string> ::const_iterator _iter2011;
+    for (_iter2011 = this->group_names.begin(); _iter2011 != this->group_names.end(); ++_iter2011)
+    {
+      xfer += oprot->writeString((*_iter2011));
+>>>>>>> External metastore: clean after rebase
     }
     xfer += oprot->writeListEnd();
   }
@@ -19384,10 +21720,17 @@ uint32_t ThriftHiveMetastore_get_partition_with_auth_pargs::write(::apache::thri
   xfer += oprot->writeFieldBegin("part_vals", ::apache::thrift::protocol::T_LIST, 3);
   {
     xfer += oprot->writeListBegin(::apache::thrift::protocol::T_STRING, static_cast<uint32_t>((*(this->part_vals)).size()));
+<<<<<<< HEAD
     std::vector<std::string> ::const_iterator _iter1984;
     for (_iter1984 = (*(this->part_vals)).begin(); _iter1984 != (*(this->part_vals)).end(); ++_iter1984)
     {
       xfer += oprot->writeString((*_iter1984));
+=======
+    std::vector<std::string> ::const_iterator _iter2012;
+    for (_iter2012 = (*(this->part_vals)).begin(); _iter2012 != (*(this->part_vals)).end(); ++_iter2012)
+    {
+      xfer += oprot->writeString((*_iter2012));
+>>>>>>> External metastore: clean after rebase
     }
     xfer += oprot->writeListEnd();
   }
@@ -19400,10 +21743,17 @@ uint32_t ThriftHiveMetastore_get_partition_with_auth_pargs::write(::apache::thri
   xfer += oprot->writeFieldBegin("group_names", ::apache::thrift::protocol::T_LIST, 5);
   {
     xfer += oprot->writeListBegin(::apache::thrift::protocol::T_STRING, static_cast<uint32_t>((*(this->group_names)).size()));
+<<<<<<< HEAD
     std::vector<std::string> ::const_iterator _iter1985;
     for (_iter1985 = (*(this->group_names)).begin(); _iter1985 != (*(this->group_names)).end(); ++_iter1985)
     {
       xfer += oprot->writeString((*_iter1985));
+=======
+    std::vector<std::string> ::const_iterator _iter2013;
+    for (_iter2013 = (*(this->group_names)).begin(); _iter2013 != (*(this->group_names)).end(); ++_iter2013)
+    {
+      xfer += oprot->writeString((*_iter2013));
+>>>>>>> External metastore: clean after rebase
     }
     xfer += oprot->writeListEnd();
   }
@@ -19962,6 +22312,7 @@ uint32_t ThriftHiveMetastore_get_partitions_result::read(::apache::thrift::proto
         if (ftype == ::apache::thrift::protocol::T_LIST) {
           {
             this->success.clear();
+<<<<<<< HEAD
             uint32_t _size1986;
             ::apache::thrift::protocol::TType _etype1989;
             xfer += iprot->readListBegin(_etype1989, _size1986);
@@ -19970,6 +22321,16 @@ uint32_t ThriftHiveMetastore_get_partitions_result::read(::apache::thrift::proto
             for (_i1990 = 0; _i1990 < _size1986; ++_i1990)
             {
               xfer += this->success[_i1990].read(iprot);
+=======
+            uint32_t _size2014;
+            ::apache::thrift::protocol::TType _etype2017;
+            xfer += iprot->readListBegin(_etype2017, _size2014);
+            this->success.resize(_size2014);
+            uint32_t _i2018;
+            for (_i2018 = 0; _i2018 < _size2014; ++_i2018)
+            {
+              xfer += this->success[_i2018].read(iprot);
+>>>>>>> External metastore: clean after rebase
             }
             xfer += iprot->readListEnd();
           }
@@ -20016,10 +22377,17 @@ uint32_t ThriftHiveMetastore_get_partitions_result::write(::apache::thrift::prot
     xfer += oprot->writeFieldBegin("success", ::apache::thrift::protocol::T_LIST, 0);
     {
       xfer += oprot->writeListBegin(::apache::thrift::protocol::T_STRUCT, static_cast<uint32_t>(this->success.size()));
+<<<<<<< HEAD
       std::vector<Partition> ::const_iterator _iter1991;
       for (_iter1991 = this->success.begin(); _iter1991 != this->success.end(); ++_iter1991)
       {
         xfer += (*_iter1991).write(oprot);
+=======
+      std::vector<Partition> ::const_iterator _iter2019;
+      for (_iter2019 = this->success.begin(); _iter2019 != this->success.end(); ++_iter2019)
+      {
+        xfer += (*_iter2019).write(oprot);
+>>>>>>> External metastore: clean after rebase
       }
       xfer += oprot->writeListEnd();
     }
@@ -20068,6 +22436,7 @@ uint32_t ThriftHiveMetastore_get_partitions_presult::read(::apache::thrift::prot
         if (ftype == ::apache::thrift::protocol::T_LIST) {
           {
             (*(this->success)).clear();
+<<<<<<< HEAD
             uint32_t _size1992;
             ::apache::thrift::protocol::TType _etype1995;
             xfer += iprot->readListBegin(_etype1995, _size1992);
@@ -20076,6 +22445,16 @@ uint32_t ThriftHiveMetastore_get_partitions_presult::read(::apache::thrift::prot
             for (_i1996 = 0; _i1996 < _size1992; ++_i1996)
             {
               xfer += (*(this->success))[_i1996].read(iprot);
+=======
+            uint32_t _size2020;
+            ::apache::thrift::protocol::TType _etype2023;
+            xfer += iprot->readListBegin(_etype2023, _size2020);
+            (*(this->success)).resize(_size2020);
+            uint32_t _i2024;
+            for (_i2024 = 0; _i2024 < _size2020; ++_i2024)
+            {
+              xfer += (*(this->success))[_i2024].read(iprot);
+>>>>>>> External metastore: clean after rebase
             }
             xfer += iprot->readListEnd();
           }
@@ -20401,6 +22780,7 @@ uint32_t ThriftHiveMetastore_get_partitions_with_auth_args::read(::apache::thrif
         if (ftype == ::apache::thrift::protocol::T_LIST) {
           {
             this->group_names.clear();
+<<<<<<< HEAD
             uint32_t _size1997;
             ::apache::thrift::protocol::TType _etype2000;
             xfer += iprot->readListBegin(_etype2000, _size1997);
@@ -20409,6 +22789,16 @@ uint32_t ThriftHiveMetastore_get_partitions_with_auth_args::read(::apache::thrif
             for (_i2001 = 0; _i2001 < _size1997; ++_i2001)
             {
               xfer += iprot->readString(this->group_names[_i2001]);
+=======
+            uint32_t _size2025;
+            ::apache::thrift::protocol::TType _etype2028;
+            xfer += iprot->readListBegin(_etype2028, _size2025);
+            this->group_names.resize(_size2025);
+            uint32_t _i2029;
+            for (_i2029 = 0; _i2029 < _size2025; ++_i2029)
+            {
+              xfer += iprot->readString(this->group_names[_i2029]);
+>>>>>>> External metastore: clean after rebase
             }
             xfer += iprot->readListEnd();
           }
@@ -20453,10 +22843,17 @@ uint32_t ThriftHiveMetastore_get_partitions_with_auth_args::write(::apache::thri
   xfer += oprot->writeFieldBegin("group_names", ::apache::thrift::protocol::T_LIST, 5);
   {
     xfer += oprot->writeListBegin(::apache::thrift::protocol::T_STRING, static_cast<uint32_t>(this->group_names.size()));
+<<<<<<< HEAD
     std::vector<std::string> ::const_iterator _iter2002;
     for (_iter2002 = this->group_names.begin(); _iter2002 != this->group_names.end(); ++_iter2002)
     {
       xfer += oprot->writeString((*_iter2002));
+=======
+    std::vector<std::string> ::const_iterator _iter2030;
+    for (_iter2030 = this->group_names.begin(); _iter2030 != this->group_names.end(); ++_iter2030)
+    {
+      xfer += oprot->writeString((*_iter2030));
+>>>>>>> External metastore: clean after rebase
     }
     xfer += oprot->writeListEnd();
   }
@@ -20496,10 +22893,17 @@ uint32_t ThriftHiveMetastore_get_partitions_with_auth_pargs::write(::apache::thr
   xfer += oprot->writeFieldBegin("group_names", ::apache::thrift::protocol::T_LIST, 5);
   {
     xfer += oprot->writeListBegin(::apache::thrift::protocol::T_STRING, static_cast<uint32_t>((*(this->group_names)).size()));
+<<<<<<< HEAD
     std::vector<std::string> ::const_iterator _iter2003;
     for (_iter2003 = (*(this->group_names)).begin(); _iter2003 != (*(this->group_names)).end(); ++_iter2003)
     {
       xfer += oprot->writeString((*_iter2003));
+=======
+    std::vector<std::string> ::const_iterator _iter2031;
+    for (_iter2031 = (*(this->group_names)).begin(); _iter2031 != (*(this->group_names)).end(); ++_iter2031)
+    {
+      xfer += oprot->writeString((*_iter2031));
+>>>>>>> External metastore: clean after rebase
     }
     xfer += oprot->writeListEnd();
   }
@@ -20540,6 +22944,7 @@ uint32_t ThriftHiveMetastore_get_partitions_with_auth_result::read(::apache::thr
         if (ftype == ::apache::thrift::protocol::T_LIST) {
           {
             this->success.clear();
+<<<<<<< HEAD
             uint32_t _size2004;
             ::apache::thrift::protocol::TType _etype2007;
             xfer += iprot->readListBegin(_etype2007, _size2004);
@@ -20548,6 +22953,16 @@ uint32_t ThriftHiveMetastore_get_partitions_with_auth_result::read(::apache::thr
             for (_i2008 = 0; _i2008 < _size2004; ++_i2008)
             {
               xfer += this->success[_i2008].read(iprot);
+=======
+            uint32_t _size2032;
+            ::apache::thrift::protocol::TType _etype2035;
+            xfer += iprot->readListBegin(_etype2035, _size2032);
+            this->success.resize(_size2032);
+            uint32_t _i2036;
+            for (_i2036 = 0; _i2036 < _size2032; ++_i2036)
+            {
+              xfer += this->success[_i2036].read(iprot);
+>>>>>>> External metastore: clean after rebase
             }
             xfer += iprot->readListEnd();
           }
@@ -20594,10 +23009,17 @@ uint32_t ThriftHiveMetastore_get_partitions_with_auth_result::write(::apache::th
     xfer += oprot->writeFieldBegin("success", ::apache::thrift::protocol::T_LIST, 0);
     {
       xfer += oprot->writeListBegin(::apache::thrift::protocol::T_STRUCT, static_cast<uint32_t>(this->success.size()));
+<<<<<<< HEAD
       std::vector<Partition> ::const_iterator _iter2009;
       for (_iter2009 = this->success.begin(); _iter2009 != this->success.end(); ++_iter2009)
       {
         xfer += (*_iter2009).write(oprot);
+=======
+      std::vector<Partition> ::const_iterator _iter2037;
+      for (_iter2037 = this->success.begin(); _iter2037 != this->success.end(); ++_iter2037)
+      {
+        xfer += (*_iter2037).write(oprot);
+>>>>>>> External metastore: clean after rebase
       }
       xfer += oprot->writeListEnd();
     }
@@ -20646,6 +23068,7 @@ uint32_t ThriftHiveMetastore_get_partitions_with_auth_presult::read(::apache::th
         if (ftype == ::apache::thrift::protocol::T_LIST) {
           {
             (*(this->success)).clear();
+<<<<<<< HEAD
             uint32_t _size2010;
             ::apache::thrift::protocol::TType _etype2013;
             xfer += iprot->readListBegin(_etype2013, _size2010);
@@ -20654,6 +23077,16 @@ uint32_t ThriftHiveMetastore_get_partitions_with_auth_presult::read(::apache::th
             for (_i2014 = 0; _i2014 < _size2010; ++_i2014)
             {
               xfer += (*(this->success))[_i2014].read(iprot);
+=======
+            uint32_t _size2038;
+            ::apache::thrift::protocol::TType _etype2041;
+            xfer += iprot->readListBegin(_etype2041, _size2038);
+            (*(this->success)).resize(_size2038);
+            uint32_t _i2042;
+            for (_i2042 = 0; _i2042 < _size2038; ++_i2042)
+            {
+              xfer += (*(this->success))[_i2042].read(iprot);
+>>>>>>> External metastore: clean after rebase
             }
             xfer += iprot->readListEnd();
           }
@@ -20831,6 +23264,7 @@ uint32_t ThriftHiveMetastore_get_partitions_pspec_result::read(::apache::thrift:
         if (ftype == ::apache::thrift::protocol::T_LIST) {
           {
             this->success.clear();
+<<<<<<< HEAD
             uint32_t _size2015;
             ::apache::thrift::protocol::TType _etype2018;
             xfer += iprot->readListBegin(_etype2018, _size2015);
@@ -20839,6 +23273,16 @@ uint32_t ThriftHiveMetastore_get_partitions_pspec_result::read(::apache::thrift:
             for (_i2019 = 0; _i2019 < _size2015; ++_i2019)
             {
               xfer += this->success[_i2019].read(iprot);
+=======
+            uint32_t _size2043;
+            ::apache::thrift::protocol::TType _etype2046;
+            xfer += iprot->readListBegin(_etype2046, _size2043);
+            this->success.resize(_size2043);
+            uint32_t _i2047;
+            for (_i2047 = 0; _i2047 < _size2043; ++_i2047)
+            {
+              xfer += this->success[_i2047].read(iprot);
+>>>>>>> External metastore: clean after rebase
             }
             xfer += iprot->readListEnd();
           }
@@ -20885,10 +23329,17 @@ uint32_t ThriftHiveMetastore_get_partitions_pspec_result::write(::apache::thrift
     xfer += oprot->writeFieldBegin("success", ::apache::thrift::protocol::T_LIST, 0);
     {
       xfer += oprot->writeListBegin(::apache::thrift::protocol::T_STRUCT, static_cast<uint32_t>(this->success.size()));
+<<<<<<< HEAD
       std::vector<PartitionSpec> ::const_iterator _iter2020;
       for (_iter2020 = this->success.begin(); _iter2020 != this->success.end(); ++_iter2020)
       {
         xfer += (*_iter2020).write(oprot);
+=======
+      std::vector<PartitionSpec> ::const_iterator _iter2048;
+      for (_iter2048 = this->success.begin(); _iter2048 != this->success.end(); ++_iter2048)
+      {
+        xfer += (*_iter2048).write(oprot);
+>>>>>>> External metastore: clean after rebase
       }
       xfer += oprot->writeListEnd();
     }
@@ -20937,6 +23388,7 @@ uint32_t ThriftHiveMetastore_get_partitions_pspec_presult::read(::apache::thrift
         if (ftype == ::apache::thrift::protocol::T_LIST) {
           {
             (*(this->success)).clear();
+<<<<<<< HEAD
             uint32_t _size2021;
             ::apache::thrift::protocol::TType _etype2024;
             xfer += iprot->readListBegin(_etype2024, _size2021);
@@ -20945,6 +23397,16 @@ uint32_t ThriftHiveMetastore_get_partitions_pspec_presult::read(::apache::thrift
             for (_i2025 = 0; _i2025 < _size2021; ++_i2025)
             {
               xfer += (*(this->success))[_i2025].read(iprot);
+=======
+            uint32_t _size2049;
+            ::apache::thrift::protocol::TType _etype2052;
+            xfer += iprot->readListBegin(_etype2052, _size2049);
+            (*(this->success)).resize(_size2049);
+            uint32_t _i2053;
+            for (_i2053 = 0; _i2053 < _size2049; ++_i2053)
+            {
+              xfer += (*(this->success))[_i2053].read(iprot);
+>>>>>>> External metastore: clean after rebase
             }
             xfer += iprot->readListEnd();
           }
@@ -21122,6 +23584,7 @@ uint32_t ThriftHiveMetastore_get_partition_names_result::read(::apache::thrift::
         if (ftype == ::apache::thrift::protocol::T_LIST) {
           {
             this->success.clear();
+<<<<<<< HEAD
             uint32_t _size2026;
             ::apache::thrift::protocol::TType _etype2029;
             xfer += iprot->readListBegin(_etype2029, _size2026);
@@ -21130,6 +23593,16 @@ uint32_t ThriftHiveMetastore_get_partition_names_result::read(::apache::thrift::
             for (_i2030 = 0; _i2030 < _size2026; ++_i2030)
             {
               xfer += iprot->readString(this->success[_i2030]);
+=======
+            uint32_t _size2054;
+            ::apache::thrift::protocol::TType _etype2057;
+            xfer += iprot->readListBegin(_etype2057, _size2054);
+            this->success.resize(_size2054);
+            uint32_t _i2058;
+            for (_i2058 = 0; _i2058 < _size2054; ++_i2058)
+            {
+              xfer += iprot->readString(this->success[_i2058]);
+>>>>>>> External metastore: clean after rebase
             }
             xfer += iprot->readListEnd();
           }
@@ -21176,10 +23649,17 @@ uint32_t ThriftHiveMetastore_get_partition_names_result::write(::apache::thrift:
     xfer += oprot->writeFieldBegin("success", ::apache::thrift::protocol::T_LIST, 0);
     {
       xfer += oprot->writeListBegin(::apache::thrift::protocol::T_STRING, static_cast<uint32_t>(this->success.size()));
+<<<<<<< HEAD
       std::vector<std::string> ::const_iterator _iter2031;
       for (_iter2031 = this->success.begin(); _iter2031 != this->success.end(); ++_iter2031)
       {
         xfer += oprot->writeString((*_iter2031));
+=======
+      std::vector<std::string> ::const_iterator _iter2059;
+      for (_iter2059 = this->success.begin(); _iter2059 != this->success.end(); ++_iter2059)
+      {
+        xfer += oprot->writeString((*_iter2059));
+>>>>>>> External metastore: clean after rebase
       }
       xfer += oprot->writeListEnd();
     }
@@ -21228,6 +23708,7 @@ uint32_t ThriftHiveMetastore_get_partition_names_presult::read(::apache::thrift:
         if (ftype == ::apache::thrift::protocol::T_LIST) {
           {
             (*(this->success)).clear();
+<<<<<<< HEAD
             uint32_t _size2032;
             ::apache::thrift::protocol::TType _etype2035;
             xfer += iprot->readListBegin(_etype2035, _size2032);
@@ -21236,6 +23717,16 @@ uint32_t ThriftHiveMetastore_get_partition_names_presult::read(::apache::thrift:
             for (_i2036 = 0; _i2036 < _size2032; ++_i2036)
             {
               xfer += iprot->readString((*(this->success))[_i2036]);
+=======
+            uint32_t _size2060;
+            ::apache::thrift::protocol::TType _etype2063;
+            xfer += iprot->readListBegin(_etype2063, _size2060);
+            (*(this->success)).resize(_size2060);
+            uint32_t _i2064;
+            for (_i2064 = 0; _i2064 < _size2060; ++_i2064)
+            {
+              xfer += iprot->readString((*(this->success))[_i2064]);
+>>>>>>> External metastore: clean after rebase
             }
             xfer += iprot->readListEnd();
           }
@@ -21545,6 +24036,7 @@ uint32_t ThriftHiveMetastore_get_partitions_ps_args::read(::apache::thrift::prot
         if (ftype == ::apache::thrift::protocol::T_LIST) {
           {
             this->part_vals.clear();
+<<<<<<< HEAD
             uint32_t _size2037;
             ::apache::thrift::protocol::TType _etype2040;
             xfer += iprot->readListBegin(_etype2040, _size2037);
@@ -21553,6 +24045,16 @@ uint32_t ThriftHiveMetastore_get_partitions_ps_args::read(::apache::thrift::prot
             for (_i2041 = 0; _i2041 < _size2037; ++_i2041)
             {
               xfer += iprot->readString(this->part_vals[_i2041]);
+=======
+            uint32_t _size2065;
+            ::apache::thrift::protocol::TType _etype2068;
+            xfer += iprot->readListBegin(_etype2068, _size2065);
+            this->part_vals.resize(_size2065);
+            uint32_t _i2069;
+            for (_i2069 = 0; _i2069 < _size2065; ++_i2069)
+            {
+              xfer += iprot->readString(this->part_vals[_i2069]);
+>>>>>>> External metastore: clean after rebase
             }
             xfer += iprot->readListEnd();
           }
@@ -21597,10 +24099,17 @@ uint32_t ThriftHiveMetastore_get_partitions_ps_args::write(::apache::thrift::pro
   xfer += oprot->writeFieldBegin("part_vals", ::apache::thrift::protocol::T_LIST, 3);
   {
     xfer += oprot->writeListBegin(::apache::thrift::protocol::T_STRING, static_cast<uint32_t>(this->part_vals.size()));
+<<<<<<< HEAD
     std::vector<std::string> ::const_iterator _iter2042;
     for (_iter2042 = this->part_vals.begin(); _iter2042 != this->part_vals.end(); ++_iter2042)
     {
       xfer += oprot->writeString((*_iter2042));
+=======
+    std::vector<std::string> ::const_iterator _iter2070;
+    for (_iter2070 = this->part_vals.begin(); _iter2070 != this->part_vals.end(); ++_iter2070)
+    {
+      xfer += oprot->writeString((*_iter2070));
+>>>>>>> External metastore: clean after rebase
     }
     xfer += oprot->writeListEnd();
   }
@@ -21636,10 +24145,17 @@ uint32_t ThriftHiveMetastore_get_partitions_ps_pargs::write(::apache::thrift::pr
   xfer += oprot->writeFieldBegin("part_vals", ::apache::thrift::protocol::T_LIST, 3);
   {
     xfer += oprot->writeListBegin(::apache::thrift::protocol::T_STRING, static_cast<uint32_t>((*(this->part_vals)).size()));
+<<<<<<< HEAD
     std::vector<std::string> ::const_iterator _iter2043;
     for (_iter2043 = (*(this->part_vals)).begin(); _iter2043 != (*(this->part_vals)).end(); ++_iter2043)
     {
       xfer += oprot->writeString((*_iter2043));
+=======
+    std::vector<std::string> ::const_iterator _iter2071;
+    for (_iter2071 = (*(this->part_vals)).begin(); _iter2071 != (*(this->part_vals)).end(); ++_iter2071)
+    {
+      xfer += oprot->writeString((*_iter2071));
+>>>>>>> External metastore: clean after rebase
     }
     xfer += oprot->writeListEnd();
   }
@@ -21684,6 +24200,7 @@ uint32_t ThriftHiveMetastore_get_partitions_ps_result::read(::apache::thrift::pr
         if (ftype == ::apache::thrift::protocol::T_LIST) {
           {
             this->success.clear();
+<<<<<<< HEAD
             uint32_t _size2044;
             ::apache::thrift::protocol::TType _etype2047;
             xfer += iprot->readListBegin(_etype2047, _size2044);
@@ -21692,6 +24209,16 @@ uint32_t ThriftHiveMetastore_get_partitions_ps_result::read(::apache::thrift::pr
             for (_i2048 = 0; _i2048 < _size2044; ++_i2048)
             {
               xfer += this->success[_i2048].read(iprot);
+=======
+            uint32_t _size2072;
+            ::apache::thrift::protocol::TType _etype2075;
+            xfer += iprot->readListBegin(_etype2075, _size2072);
+            this->success.resize(_size2072);
+            uint32_t _i2076;
+            for (_i2076 = 0; _i2076 < _size2072; ++_i2076)
+            {
+              xfer += this->success[_i2076].read(iprot);
+>>>>>>> External metastore: clean after rebase
             }
             xfer += iprot->readListEnd();
           }
@@ -21738,10 +24265,17 @@ uint32_t ThriftHiveMetastore_get_partitions_ps_result::write(::apache::thrift::p
     xfer += oprot->writeFieldBegin("success", ::apache::thrift::protocol::T_LIST, 0);
     {
       xfer += oprot->writeListBegin(::apache::thrift::protocol::T_STRUCT, static_cast<uint32_t>(this->success.size()));
+<<<<<<< HEAD
       std::vector<Partition> ::const_iterator _iter2049;
       for (_iter2049 = this->success.begin(); _iter2049 != this->success.end(); ++_iter2049)
       {
         xfer += (*_iter2049).write(oprot);
+=======
+      std::vector<Partition> ::const_iterator _iter2077;
+      for (_iter2077 = this->success.begin(); _iter2077 != this->success.end(); ++_iter2077)
+      {
+        xfer += (*_iter2077).write(oprot);
+>>>>>>> External metastore: clean after rebase
       }
       xfer += oprot->writeListEnd();
     }
@@ -21790,6 +24324,7 @@ uint32_t ThriftHiveMetastore_get_partitions_ps_presult::read(::apache::thrift::p
         if (ftype == ::apache::thrift::protocol::T_LIST) {
           {
             (*(this->success)).clear();
+<<<<<<< HEAD
             uint32_t _size2050;
             ::apache::thrift::protocol::TType _etype2053;
             xfer += iprot->readListBegin(_etype2053, _size2050);
@@ -21798,6 +24333,16 @@ uint32_t ThriftHiveMetastore_get_partitions_ps_presult::read(::apache::thrift::p
             for (_i2054 = 0; _i2054 < _size2050; ++_i2054)
             {
               xfer += (*(this->success))[_i2054].read(iprot);
+=======
+            uint32_t _size2078;
+            ::apache::thrift::protocol::TType _etype2081;
+            xfer += iprot->readListBegin(_etype2081, _size2078);
+            (*(this->success)).resize(_size2078);
+            uint32_t _i2082;
+            for (_i2082 = 0; _i2082 < _size2078; ++_i2082)
+            {
+              xfer += (*(this->success))[_i2082].read(iprot);
+>>>>>>> External metastore: clean after rebase
             }
             xfer += iprot->readListEnd();
           }
@@ -21880,6 +24425,7 @@ uint32_t ThriftHiveMetastore_get_partitions_ps_with_auth_args::read(::apache::th
         if (ftype == ::apache::thrift::protocol::T_LIST) {
           {
             this->part_vals.clear();
+<<<<<<< HEAD
             uint32_t _size2055;
             ::apache::thrift::protocol::TType _etype2058;
             xfer += iprot->readListBegin(_etype2058, _size2055);
@@ -21888,6 +24434,16 @@ uint32_t ThriftHiveMetastore_get_partitions_ps_with_auth_args::read(::apache::th
             for (_i2059 = 0; _i2059 < _size2055; ++_i2059)
             {
               xfer += iprot->readString(this->part_vals[_i2059]);
+=======
+            uint32_t _size2083;
+            ::apache::thrift::protocol::TType _etype2086;
+            xfer += iprot->readListBegin(_etype2086, _size2083);
+            this->part_vals.resize(_size2083);
+            uint32_t _i2087;
+            for (_i2087 = 0; _i2087 < _size2083; ++_i2087)
+            {
+              xfer += iprot->readString(this->part_vals[_i2087]);
+>>>>>>> External metastore: clean after rebase
             }
             xfer += iprot->readListEnd();
           }
@@ -21916,6 +24472,7 @@ uint32_t ThriftHiveMetastore_get_partitions_ps_with_auth_args::read(::apache::th
         if (ftype == ::apache::thrift::protocol::T_LIST) {
           {
             this->group_names.clear();
+<<<<<<< HEAD
             uint32_t _size2060;
             ::apache::thrift::protocol::TType _etype2063;
             xfer += iprot->readListBegin(_etype2063, _size2060);
@@ -21924,6 +24481,16 @@ uint32_t ThriftHiveMetastore_get_partitions_ps_with_auth_args::read(::apache::th
             for (_i2064 = 0; _i2064 < _size2060; ++_i2064)
             {
               xfer += iprot->readString(this->group_names[_i2064]);
+=======
+            uint32_t _size2088;
+            ::apache::thrift::protocol::TType _etype2091;
+            xfer += iprot->readListBegin(_etype2091, _size2088);
+            this->group_names.resize(_size2088);
+            uint32_t _i2092;
+            for (_i2092 = 0; _i2092 < _size2088; ++_i2092)
+            {
+              xfer += iprot->readString(this->group_names[_i2092]);
+>>>>>>> External metastore: clean after rebase
             }
             xfer += iprot->readListEnd();
           }
@@ -21960,10 +24527,17 @@ uint32_t ThriftHiveMetastore_get_partitions_ps_with_auth_args::write(::apache::t
   xfer += oprot->writeFieldBegin("part_vals", ::apache::thrift::protocol::T_LIST, 3);
   {
     xfer += oprot->writeListBegin(::apache::thrift::protocol::T_STRING, static_cast<uint32_t>(this->part_vals.size()));
+<<<<<<< HEAD
     std::vector<std::string> ::const_iterator _iter2065;
     for (_iter2065 = this->part_vals.begin(); _iter2065 != this->part_vals.end(); ++_iter2065)
     {
       xfer += oprot->writeString((*_iter2065));
+=======
+    std::vector<std::string> ::const_iterator _iter2093;
+    for (_iter2093 = this->part_vals.begin(); _iter2093 != this->part_vals.end(); ++_iter2093)
+    {
+      xfer += oprot->writeString((*_iter2093));
+>>>>>>> External metastore: clean after rebase
     }
     xfer += oprot->writeListEnd();
   }
@@ -21980,10 +24554,17 @@ uint32_t ThriftHiveMetastore_get_partitions_ps_with_auth_args::write(::apache::t
   xfer += oprot->writeFieldBegin("group_names", ::apache::thrift::protocol::T_LIST, 6);
   {
     xfer += oprot->writeListBegin(::apache::thrift::protocol::T_STRING, static_cast<uint32_t>(this->group_names.size()));
+<<<<<<< HEAD
     std::vector<std::string> ::const_iterator _iter2066;
     for (_iter2066 = this->group_names.begin(); _iter2066 != this->group_names.end(); ++_iter2066)
     {
       xfer += oprot->writeString((*_iter2066));
+=======
+    std::vector<std::string> ::const_iterator _iter2094;
+    for (_iter2094 = this->group_names.begin(); _iter2094 != this->group_names.end(); ++_iter2094)
+    {
+      xfer += oprot->writeString((*_iter2094));
+>>>>>>> External metastore: clean after rebase
     }
     xfer += oprot->writeListEnd();
   }
@@ -22015,10 +24596,17 @@ uint32_t ThriftHiveMetastore_get_partitions_ps_with_auth_pargs::write(::apache::
   xfer += oprot->writeFieldBegin("part_vals", ::apache::thrift::protocol::T_LIST, 3);
   {
     xfer += oprot->writeListBegin(::apache::thrift::protocol::T_STRING, static_cast<uint32_t>((*(this->part_vals)).size()));
+<<<<<<< HEAD
     std::vector<std::string> ::const_iterator _iter2067;
     for (_iter2067 = (*(this->part_vals)).begin(); _iter2067 != (*(this->part_vals)).end(); ++_iter2067)
     {
       xfer += oprot->writeString((*_iter2067));
+=======
+    std::vector<std::string> ::const_iterator _iter2095;
+    for (_iter2095 = (*(this->part_vals)).begin(); _iter2095 != (*(this->part_vals)).end(); ++_iter2095)
+    {
+      xfer += oprot->writeString((*_iter2095));
+>>>>>>> External metastore: clean after rebase
     }
     xfer += oprot->writeListEnd();
   }
@@ -22035,10 +24623,17 @@ uint32_t ThriftHiveMetastore_get_partitions_ps_with_auth_pargs::write(::apache::
   xfer += oprot->writeFieldBegin("group_names", ::apache::thrift::protocol::T_LIST, 6);
   {
     xfer += oprot->writeListBegin(::apache::thrift::protocol::T_STRING, static_cast<uint32_t>((*(this->group_names)).size()));
+<<<<<<< HEAD
     std::vector<std::string> ::const_iterator _iter2068;
     for (_iter2068 = (*(this->group_names)).begin(); _iter2068 != (*(this->group_names)).end(); ++_iter2068)
     {
       xfer += oprot->writeString((*_iter2068));
+=======
+    std::vector<std::string> ::const_iterator _iter2096;
+    for (_iter2096 = (*(this->group_names)).begin(); _iter2096 != (*(this->group_names)).end(); ++_iter2096)
+    {
+      xfer += oprot->writeString((*_iter2096));
+>>>>>>> External metastore: clean after rebase
     }
     xfer += oprot->writeListEnd();
   }
@@ -22079,6 +24674,7 @@ uint32_t ThriftHiveMetastore_get_partitions_ps_with_auth_result::read(::apache::
         if (ftype == ::apache::thrift::protocol::T_LIST) {
           {
             this->success.clear();
+<<<<<<< HEAD
             uint32_t _size2069;
             ::apache::thrift::protocol::TType _etype2072;
             xfer += iprot->readListBegin(_etype2072, _size2069);
@@ -22087,6 +24683,16 @@ uint32_t ThriftHiveMetastore_get_partitions_ps_with_auth_result::read(::apache::
             for (_i2073 = 0; _i2073 < _size2069; ++_i2073)
             {
               xfer += this->success[_i2073].read(iprot);
+=======
+            uint32_t _size2097;
+            ::apache::thrift::protocol::TType _etype2100;
+            xfer += iprot->readListBegin(_etype2100, _size2097);
+            this->success.resize(_size2097);
+            uint32_t _i2101;
+            for (_i2101 = 0; _i2101 < _size2097; ++_i2101)
+            {
+              xfer += this->success[_i2101].read(iprot);
+>>>>>>> External metastore: clean after rebase
             }
             xfer += iprot->readListEnd();
           }
@@ -22133,10 +24739,17 @@ uint32_t ThriftHiveMetastore_get_partitions_ps_with_auth_result::write(::apache:
     xfer += oprot->writeFieldBegin("success", ::apache::thrift::protocol::T_LIST, 0);
     {
       xfer += oprot->writeListBegin(::apache::thrift::protocol::T_STRUCT, static_cast<uint32_t>(this->success.size()));
+<<<<<<< HEAD
       std::vector<Partition> ::const_iterator _iter2074;
       for (_iter2074 = this->success.begin(); _iter2074 != this->success.end(); ++_iter2074)
       {
         xfer += (*_iter2074).write(oprot);
+=======
+      std::vector<Partition> ::const_iterator _iter2102;
+      for (_iter2102 = this->success.begin(); _iter2102 != this->success.end(); ++_iter2102)
+      {
+        xfer += (*_iter2102).write(oprot);
+>>>>>>> External metastore: clean after rebase
       }
       xfer += oprot->writeListEnd();
     }
@@ -22185,6 +24798,7 @@ uint32_t ThriftHiveMetastore_get_partitions_ps_with_auth_presult::read(::apache:
         if (ftype == ::apache::thrift::protocol::T_LIST) {
           {
             (*(this->success)).clear();
+<<<<<<< HEAD
             uint32_t _size2075;
             ::apache::thrift::protocol::TType _etype2078;
             xfer += iprot->readListBegin(_etype2078, _size2075);
@@ -22193,6 +24807,16 @@ uint32_t ThriftHiveMetastore_get_partitions_ps_with_auth_presult::read(::apache:
             for (_i2079 = 0; _i2079 < _size2075; ++_i2079)
             {
               xfer += (*(this->success))[_i2079].read(iprot);
+=======
+            uint32_t _size2103;
+            ::apache::thrift::protocol::TType _etype2106;
+            xfer += iprot->readListBegin(_etype2106, _size2103);
+            (*(this->success)).resize(_size2103);
+            uint32_t _i2107;
+            for (_i2107 = 0; _i2107 < _size2103; ++_i2107)
+            {
+              xfer += (*(this->success))[_i2107].read(iprot);
+>>>>>>> External metastore: clean after rebase
             }
             xfer += iprot->readListEnd();
           }
@@ -22502,6 +25126,7 @@ uint32_t ThriftHiveMetastore_get_partition_names_ps_args::read(::apache::thrift:
         if (ftype == ::apache::thrift::protocol::T_LIST) {
           {
             this->part_vals.clear();
+<<<<<<< HEAD
             uint32_t _size2080;
             ::apache::thrift::protocol::TType _etype2083;
             xfer += iprot->readListBegin(_etype2083, _size2080);
@@ -22510,6 +25135,16 @@ uint32_t ThriftHiveMetastore_get_partition_names_ps_args::read(::apache::thrift:
             for (_i2084 = 0; _i2084 < _size2080; ++_i2084)
             {
               xfer += iprot->readString(this->part_vals[_i2084]);
+=======
+            uint32_t _size2108;
+            ::apache::thrift::protocol::TType _etype2111;
+            xfer += iprot->readListBegin(_etype2111, _size2108);
+            this->part_vals.resize(_size2108);
+            uint32_t _i2112;
+            for (_i2112 = 0; _i2112 < _size2108; ++_i2112)
+            {
+              xfer += iprot->readString(this->part_vals[_i2112]);
+>>>>>>> External metastore: clean after rebase
             }
             xfer += iprot->readListEnd();
           }
@@ -22554,10 +25189,17 @@ uint32_t ThriftHiveMetastore_get_partition_names_ps_args::write(::apache::thrift
   xfer += oprot->writeFieldBegin("part_vals", ::apache::thrift::protocol::T_LIST, 3);
   {
     xfer += oprot->writeListBegin(::apache::thrift::protocol::T_STRING, static_cast<uint32_t>(this->part_vals.size()));
+<<<<<<< HEAD
     std::vector<std::string> ::const_iterator _iter2085;
     for (_iter2085 = this->part_vals.begin(); _iter2085 != this->part_vals.end(); ++_iter2085)
     {
       xfer += oprot->writeString((*_iter2085));
+=======
+    std::vector<std::string> ::const_iterator _iter2113;
+    for (_iter2113 = this->part_vals.begin(); _iter2113 != this->part_vals.end(); ++_iter2113)
+    {
+      xfer += oprot->writeString((*_iter2113));
+>>>>>>> External metastore: clean after rebase
     }
     xfer += oprot->writeListEnd();
   }
@@ -22593,10 +25235,17 @@ uint32_t ThriftHiveMetastore_get_partition_names_ps_pargs::write(::apache::thrif
   xfer += oprot->writeFieldBegin("part_vals", ::apache::thrift::protocol::T_LIST, 3);
   {
     xfer += oprot->writeListBegin(::apache::thrift::protocol::T_STRING, static_cast<uint32_t>((*(this->part_vals)).size()));
+<<<<<<< HEAD
     std::vector<std::string> ::const_iterator _iter2086;
     for (_iter2086 = (*(this->part_vals)).begin(); _iter2086 != (*(this->part_vals)).end(); ++_iter2086)
     {
       xfer += oprot->writeString((*_iter2086));
+=======
+    std::vector<std::string> ::const_iterator _iter2114;
+    for (_iter2114 = (*(this->part_vals)).begin(); _iter2114 != (*(this->part_vals)).end(); ++_iter2114)
+    {
+      xfer += oprot->writeString((*_iter2114));
+>>>>>>> External metastore: clean after rebase
     }
     xfer += oprot->writeListEnd();
   }
@@ -22641,6 +25290,7 @@ uint32_t ThriftHiveMetastore_get_partition_names_ps_result::read(::apache::thrif
         if (ftype == ::apache::thrift::protocol::T_LIST) {
           {
             this->success.clear();
+<<<<<<< HEAD
             uint32_t _size2087;
             ::apache::thrift::protocol::TType _etype2090;
             xfer += iprot->readListBegin(_etype2090, _size2087);
@@ -22649,6 +25299,16 @@ uint32_t ThriftHiveMetastore_get_partition_names_ps_result::read(::apache::thrif
             for (_i2091 = 0; _i2091 < _size2087; ++_i2091)
             {
               xfer += iprot->readString(this->success[_i2091]);
+=======
+            uint32_t _size2115;
+            ::apache::thrift::protocol::TType _etype2118;
+            xfer += iprot->readListBegin(_etype2118, _size2115);
+            this->success.resize(_size2115);
+            uint32_t _i2119;
+            for (_i2119 = 0; _i2119 < _size2115; ++_i2119)
+            {
+              xfer += iprot->readString(this->success[_i2119]);
+>>>>>>> External metastore: clean after rebase
             }
             xfer += iprot->readListEnd();
           }
@@ -22695,10 +25355,17 @@ uint32_t ThriftHiveMetastore_get_partition_names_ps_result::write(::apache::thri
     xfer += oprot->writeFieldBegin("success", ::apache::thrift::protocol::T_LIST, 0);
     {
       xfer += oprot->writeListBegin(::apache::thrift::protocol::T_STRING, static_cast<uint32_t>(this->success.size()));
+<<<<<<< HEAD
       std::vector<std::string> ::const_iterator _iter2092;
       for (_iter2092 = this->success.begin(); _iter2092 != this->success.end(); ++_iter2092)
       {
         xfer += oprot->writeString((*_iter2092));
+=======
+      std::vector<std::string> ::const_iterator _iter2120;
+      for (_iter2120 = this->success.begin(); _iter2120 != this->success.end(); ++_iter2120)
+      {
+        xfer += oprot->writeString((*_iter2120));
+>>>>>>> External metastore: clean after rebase
       }
       xfer += oprot->writeListEnd();
     }
@@ -22747,6 +25414,7 @@ uint32_t ThriftHiveMetastore_get_partition_names_ps_presult::read(::apache::thri
         if (ftype == ::apache::thrift::protocol::T_LIST) {
           {
             (*(this->success)).clear();
+<<<<<<< HEAD
             uint32_t _size2093;
             ::apache::thrift::protocol::TType _etype2096;
             xfer += iprot->readListBegin(_etype2096, _size2093);
@@ -22755,6 +25423,16 @@ uint32_t ThriftHiveMetastore_get_partition_names_ps_presult::read(::apache::thri
             for (_i2097 = 0; _i2097 < _size2093; ++_i2097)
             {
               xfer += iprot->readString((*(this->success))[_i2097]);
+=======
+            uint32_t _size2121;
+            ::apache::thrift::protocol::TType _etype2124;
+            xfer += iprot->readListBegin(_etype2124, _size2121);
+            (*(this->success)).resize(_size2121);
+            uint32_t _i2125;
+            for (_i2125 = 0; _i2125 < _size2121; ++_i2125)
+            {
+              xfer += iprot->readString((*(this->success))[_i2125]);
+>>>>>>> External metastore: clean after rebase
             }
             xfer += iprot->readListEnd();
           }
@@ -23127,6 +25805,7 @@ uint32_t ThriftHiveMetastore_get_partition_names_req_result::read(::apache::thri
         if (ftype == ::apache::thrift::protocol::T_LIST) {
           {
             this->success.clear();
+<<<<<<< HEAD
             uint32_t _size2098;
             ::apache::thrift::protocol::TType _etype2101;
             xfer += iprot->readListBegin(_etype2101, _size2098);
@@ -23135,6 +25814,16 @@ uint32_t ThriftHiveMetastore_get_partition_names_req_result::read(::apache::thri
             for (_i2102 = 0; _i2102 < _size2098; ++_i2102)
             {
               xfer += iprot->readString(this->success[_i2102]);
+=======
+            uint32_t _size2126;
+            ::apache::thrift::protocol::TType _etype2129;
+            xfer += iprot->readListBegin(_etype2129, _size2126);
+            this->success.resize(_size2126);
+            uint32_t _i2130;
+            for (_i2130 = 0; _i2130 < _size2126; ++_i2130)
+            {
+              xfer += iprot->readString(this->success[_i2130]);
+>>>>>>> External metastore: clean after rebase
             }
             xfer += iprot->readListEnd();
           }
@@ -23181,10 +25870,17 @@ uint32_t ThriftHiveMetastore_get_partition_names_req_result::write(::apache::thr
     xfer += oprot->writeFieldBegin("success", ::apache::thrift::protocol::T_LIST, 0);
     {
       xfer += oprot->writeListBegin(::apache::thrift::protocol::T_STRING, static_cast<uint32_t>(this->success.size()));
+<<<<<<< HEAD
       std::vector<std::string> ::const_iterator _iter2103;
       for (_iter2103 = this->success.begin(); _iter2103 != this->success.end(); ++_iter2103)
       {
         xfer += oprot->writeString((*_iter2103));
+=======
+      std::vector<std::string> ::const_iterator _iter2131;
+      for (_iter2131 = this->success.begin(); _iter2131 != this->success.end(); ++_iter2131)
+      {
+        xfer += oprot->writeString((*_iter2131));
+>>>>>>> External metastore: clean after rebase
       }
       xfer += oprot->writeListEnd();
     }
@@ -23233,6 +25929,7 @@ uint32_t ThriftHiveMetastore_get_partition_names_req_presult::read(::apache::thr
         if (ftype == ::apache::thrift::protocol::T_LIST) {
           {
             (*(this->success)).clear();
+<<<<<<< HEAD
             uint32_t _size2104;
             ::apache::thrift::protocol::TType _etype2107;
             xfer += iprot->readListBegin(_etype2107, _size2104);
@@ -23241,6 +25938,16 @@ uint32_t ThriftHiveMetastore_get_partition_names_req_presult::read(::apache::thr
             for (_i2108 = 0; _i2108 < _size2104; ++_i2108)
             {
               xfer += iprot->readString((*(this->success))[_i2108]);
+=======
+            uint32_t _size2132;
+            ::apache::thrift::protocol::TType _etype2135;
+            xfer += iprot->readListBegin(_etype2135, _size2132);
+            (*(this->success)).resize(_size2132);
+            uint32_t _i2136;
+            for (_i2136 = 0; _i2136 < _size2132; ++_i2136)
+            {
+              xfer += iprot->readString((*(this->success))[_i2136]);
+>>>>>>> External metastore: clean after rebase
             }
             xfer += iprot->readListEnd();
           }
@@ -23434,6 +26141,7 @@ uint32_t ThriftHiveMetastore_get_partitions_by_filter_result::read(::apache::thr
         if (ftype == ::apache::thrift::protocol::T_LIST) {
           {
             this->success.clear();
+<<<<<<< HEAD
             uint32_t _size2109;
             ::apache::thrift::protocol::TType _etype2112;
             xfer += iprot->readListBegin(_etype2112, _size2109);
@@ -23442,6 +26150,16 @@ uint32_t ThriftHiveMetastore_get_partitions_by_filter_result::read(::apache::thr
             for (_i2113 = 0; _i2113 < _size2109; ++_i2113)
             {
               xfer += this->success[_i2113].read(iprot);
+=======
+            uint32_t _size2137;
+            ::apache::thrift::protocol::TType _etype2140;
+            xfer += iprot->readListBegin(_etype2140, _size2137);
+            this->success.resize(_size2137);
+            uint32_t _i2141;
+            for (_i2141 = 0; _i2141 < _size2137; ++_i2141)
+            {
+              xfer += this->success[_i2141].read(iprot);
+>>>>>>> External metastore: clean after rebase
             }
             xfer += iprot->readListEnd();
           }
@@ -23488,10 +26206,17 @@ uint32_t ThriftHiveMetastore_get_partitions_by_filter_result::write(::apache::th
     xfer += oprot->writeFieldBegin("success", ::apache::thrift::protocol::T_LIST, 0);
     {
       xfer += oprot->writeListBegin(::apache::thrift::protocol::T_STRUCT, static_cast<uint32_t>(this->success.size()));
+<<<<<<< HEAD
       std::vector<Partition> ::const_iterator _iter2114;
       for (_iter2114 = this->success.begin(); _iter2114 != this->success.end(); ++_iter2114)
       {
         xfer += (*_iter2114).write(oprot);
+=======
+      std::vector<Partition> ::const_iterator _iter2142;
+      for (_iter2142 = this->success.begin(); _iter2142 != this->success.end(); ++_iter2142)
+      {
+        xfer += (*_iter2142).write(oprot);
+>>>>>>> External metastore: clean after rebase
       }
       xfer += oprot->writeListEnd();
     }
@@ -23540,6 +26265,7 @@ uint32_t ThriftHiveMetastore_get_partitions_by_filter_presult::read(::apache::th
         if (ftype == ::apache::thrift::protocol::T_LIST) {
           {
             (*(this->success)).clear();
+<<<<<<< HEAD
             uint32_t _size2115;
             ::apache::thrift::protocol::TType _etype2118;
             xfer += iprot->readListBegin(_etype2118, _size2115);
@@ -23548,6 +26274,16 @@ uint32_t ThriftHiveMetastore_get_partitions_by_filter_presult::read(::apache::th
             for (_i2119 = 0; _i2119 < _size2115; ++_i2119)
             {
               xfer += (*(this->success))[_i2119].read(iprot);
+=======
+            uint32_t _size2143;
+            ::apache::thrift::protocol::TType _etype2146;
+            xfer += iprot->readListBegin(_etype2146, _size2143);
+            (*(this->success)).resize(_size2143);
+            uint32_t _i2147;
+            for (_i2147 = 0; _i2147 < _size2143; ++_i2147)
+            {
+              xfer += (*(this->success))[_i2147].read(iprot);
+>>>>>>> External metastore: clean after rebase
             }
             xfer += iprot->readListEnd();
           }
@@ -23741,6 +26477,7 @@ uint32_t ThriftHiveMetastore_get_part_specs_by_filter_result::read(::apache::thr
         if (ftype == ::apache::thrift::protocol::T_LIST) {
           {
             this->success.clear();
+<<<<<<< HEAD
             uint32_t _size2120;
             ::apache::thrift::protocol::TType _etype2123;
             xfer += iprot->readListBegin(_etype2123, _size2120);
@@ -23749,6 +26486,16 @@ uint32_t ThriftHiveMetastore_get_part_specs_by_filter_result::read(::apache::thr
             for (_i2124 = 0; _i2124 < _size2120; ++_i2124)
             {
               xfer += this->success[_i2124].read(iprot);
+=======
+            uint32_t _size2148;
+            ::apache::thrift::protocol::TType _etype2151;
+            xfer += iprot->readListBegin(_etype2151, _size2148);
+            this->success.resize(_size2148);
+            uint32_t _i2152;
+            for (_i2152 = 0; _i2152 < _size2148; ++_i2152)
+            {
+              xfer += this->success[_i2152].read(iprot);
+>>>>>>> External metastore: clean after rebase
             }
             xfer += iprot->readListEnd();
           }
@@ -23795,10 +26542,17 @@ uint32_t ThriftHiveMetastore_get_part_specs_by_filter_result::write(::apache::th
     xfer += oprot->writeFieldBegin("success", ::apache::thrift::protocol::T_LIST, 0);
     {
       xfer += oprot->writeListBegin(::apache::thrift::protocol::T_STRUCT, static_cast<uint32_t>(this->success.size()));
+<<<<<<< HEAD
       std::vector<PartitionSpec> ::const_iterator _iter2125;
       for (_iter2125 = this->success.begin(); _iter2125 != this->success.end(); ++_iter2125)
       {
         xfer += (*_iter2125).write(oprot);
+=======
+      std::vector<PartitionSpec> ::const_iterator _iter2153;
+      for (_iter2153 = this->success.begin(); _iter2153 != this->success.end(); ++_iter2153)
+      {
+        xfer += (*_iter2153).write(oprot);
+>>>>>>> External metastore: clean after rebase
       }
       xfer += oprot->writeListEnd();
     }
@@ -23847,6 +26601,7 @@ uint32_t ThriftHiveMetastore_get_part_specs_by_filter_presult::read(::apache::th
         if (ftype == ::apache::thrift::protocol::T_LIST) {
           {
             (*(this->success)).clear();
+<<<<<<< HEAD
             uint32_t _size2126;
             ::apache::thrift::protocol::TType _etype2129;
             xfer += iprot->readListBegin(_etype2129, _size2126);
@@ -23855,6 +26610,16 @@ uint32_t ThriftHiveMetastore_get_part_specs_by_filter_presult::read(::apache::th
             for (_i2130 = 0; _i2130 < _size2126; ++_i2130)
             {
               xfer += (*(this->success))[_i2130].read(iprot);
+=======
+            uint32_t _size2154;
+            ::apache::thrift::protocol::TType _etype2157;
+            xfer += iprot->readListBegin(_etype2157, _size2154);
+            (*(this->success)).resize(_size2154);
+            uint32_t _i2158;
+            for (_i2158 = 0; _i2158 < _size2154; ++_i2158)
+            {
+              xfer += (*(this->success))[_i2158].read(iprot);
+>>>>>>> External metastore: clean after rebase
             }
             xfer += iprot->readListEnd();
           }
@@ -24650,6 +27415,7 @@ uint32_t ThriftHiveMetastore_get_partitions_by_names_args::read(::apache::thrift
         if (ftype == ::apache::thrift::protocol::T_LIST) {
           {
             this->names.clear();
+<<<<<<< HEAD
             uint32_t _size2131;
             ::apache::thrift::protocol::TType _etype2134;
             xfer += iprot->readListBegin(_etype2134, _size2131);
@@ -24658,6 +27424,16 @@ uint32_t ThriftHiveMetastore_get_partitions_by_names_args::read(::apache::thrift
             for (_i2135 = 0; _i2135 < _size2131; ++_i2135)
             {
               xfer += iprot->readString(this->names[_i2135]);
+=======
+            uint32_t _size2159;
+            ::apache::thrift::protocol::TType _etype2162;
+            xfer += iprot->readListBegin(_etype2162, _size2159);
+            this->names.resize(_size2159);
+            uint32_t _i2163;
+            for (_i2163 = 0; _i2163 < _size2159; ++_i2163)
+            {
+              xfer += iprot->readString(this->names[_i2163]);
+>>>>>>> External metastore: clean after rebase
             }
             xfer += iprot->readListEnd();
           }
@@ -24694,10 +27470,17 @@ uint32_t ThriftHiveMetastore_get_partitions_by_names_args::write(::apache::thrif
   xfer += oprot->writeFieldBegin("names", ::apache::thrift::protocol::T_LIST, 3);
   {
     xfer += oprot->writeListBegin(::apache::thrift::protocol::T_STRING, static_cast<uint32_t>(this->names.size()));
+<<<<<<< HEAD
     std::vector<std::string> ::const_iterator _iter2136;
     for (_iter2136 = this->names.begin(); _iter2136 != this->names.end(); ++_iter2136)
     {
       xfer += oprot->writeString((*_iter2136));
+=======
+    std::vector<std::string> ::const_iterator _iter2164;
+    for (_iter2164 = this->names.begin(); _iter2164 != this->names.end(); ++_iter2164)
+    {
+      xfer += oprot->writeString((*_iter2164));
+>>>>>>> External metastore: clean after rebase
     }
     xfer += oprot->writeListEnd();
   }
@@ -24729,10 +27512,17 @@ uint32_t ThriftHiveMetastore_get_partitions_by_names_pargs::write(::apache::thri
   xfer += oprot->writeFieldBegin("names", ::apache::thrift::protocol::T_LIST, 3);
   {
     xfer += oprot->writeListBegin(::apache::thrift::protocol::T_STRING, static_cast<uint32_t>((*(this->names)).size()));
+<<<<<<< HEAD
     std::vector<std::string> ::const_iterator _iter2137;
     for (_iter2137 = (*(this->names)).begin(); _iter2137 != (*(this->names)).end(); ++_iter2137)
     {
       xfer += oprot->writeString((*_iter2137));
+=======
+    std::vector<std::string> ::const_iterator _iter2165;
+    for (_iter2165 = (*(this->names)).begin(); _iter2165 != (*(this->names)).end(); ++_iter2165)
+    {
+      xfer += oprot->writeString((*_iter2165));
+>>>>>>> External metastore: clean after rebase
     }
     xfer += oprot->writeListEnd();
   }
@@ -24773,6 +27563,7 @@ uint32_t ThriftHiveMetastore_get_partitions_by_names_result::read(::apache::thri
         if (ftype == ::apache::thrift::protocol::T_LIST) {
           {
             this->success.clear();
+<<<<<<< HEAD
             uint32_t _size2138;
             ::apache::thrift::protocol::TType _etype2141;
             xfer += iprot->readListBegin(_etype2141, _size2138);
@@ -24781,6 +27572,16 @@ uint32_t ThriftHiveMetastore_get_partitions_by_names_result::read(::apache::thri
             for (_i2142 = 0; _i2142 < _size2138; ++_i2142)
             {
               xfer += this->success[_i2142].read(iprot);
+=======
+            uint32_t _size2166;
+            ::apache::thrift::protocol::TType _etype2169;
+            xfer += iprot->readListBegin(_etype2169, _size2166);
+            this->success.resize(_size2166);
+            uint32_t _i2170;
+            for (_i2170 = 0; _i2170 < _size2166; ++_i2170)
+            {
+              xfer += this->success[_i2170].read(iprot);
+>>>>>>> External metastore: clean after rebase
             }
             xfer += iprot->readListEnd();
           }
@@ -24827,10 +27628,17 @@ uint32_t ThriftHiveMetastore_get_partitions_by_names_result::write(::apache::thr
     xfer += oprot->writeFieldBegin("success", ::apache::thrift::protocol::T_LIST, 0);
     {
       xfer += oprot->writeListBegin(::apache::thrift::protocol::T_STRUCT, static_cast<uint32_t>(this->success.size()));
+<<<<<<< HEAD
       std::vector<Partition> ::const_iterator _iter2143;
       for (_iter2143 = this->success.begin(); _iter2143 != this->success.end(); ++_iter2143)
       {
         xfer += (*_iter2143).write(oprot);
+=======
+      std::vector<Partition> ::const_iterator _iter2171;
+      for (_iter2171 = this->success.begin(); _iter2171 != this->success.end(); ++_iter2171)
+      {
+        xfer += (*_iter2171).write(oprot);
+>>>>>>> External metastore: clean after rebase
       }
       xfer += oprot->writeListEnd();
     }
@@ -24879,6 +27687,7 @@ uint32_t ThriftHiveMetastore_get_partitions_by_names_presult::read(::apache::thr
         if (ftype == ::apache::thrift::protocol::T_LIST) {
           {
             (*(this->success)).clear();
+<<<<<<< HEAD
             uint32_t _size2144;
             ::apache::thrift::protocol::TType _etype2147;
             xfer += iprot->readListBegin(_etype2147, _size2144);
@@ -24887,6 +27696,16 @@ uint32_t ThriftHiveMetastore_get_partitions_by_names_presult::read(::apache::thr
             for (_i2148 = 0; _i2148 < _size2144; ++_i2148)
             {
               xfer += (*(this->success))[_i2148].read(iprot);
+=======
+            uint32_t _size2172;
+            ::apache::thrift::protocol::TType _etype2175;
+            xfer += iprot->readListBegin(_etype2175, _size2172);
+            (*(this->success)).resize(_size2172);
+            uint32_t _i2176;
+            for (_i2176 = 0; _i2176 < _size2172; ++_i2176)
+            {
+              xfer += (*(this->success))[_i2176].read(iprot);
+>>>>>>> External metastore: clean after rebase
             }
             xfer += iprot->readListEnd();
           }
@@ -25435,6 +28254,7 @@ uint32_t ThriftHiveMetastore_alter_partitions_args::read(::apache::thrift::proto
         if (ftype == ::apache::thrift::protocol::T_LIST) {
           {
             this->new_parts.clear();
+<<<<<<< HEAD
             uint32_t _size2149;
             ::apache::thrift::protocol::TType _etype2152;
             xfer += iprot->readListBegin(_etype2152, _size2149);
@@ -25443,6 +28263,16 @@ uint32_t ThriftHiveMetastore_alter_partitions_args::read(::apache::thrift::proto
             for (_i2153 = 0; _i2153 < _size2149; ++_i2153)
             {
               xfer += this->new_parts[_i2153].read(iprot);
+=======
+            uint32_t _size2177;
+            ::apache::thrift::protocol::TType _etype2180;
+            xfer += iprot->readListBegin(_etype2180, _size2177);
+            this->new_parts.resize(_size2177);
+            uint32_t _i2181;
+            for (_i2181 = 0; _i2181 < _size2177; ++_i2181)
+            {
+              xfer += this->new_parts[_i2181].read(iprot);
+>>>>>>> External metastore: clean after rebase
             }
             xfer += iprot->readListEnd();
           }
@@ -25479,10 +28309,17 @@ uint32_t ThriftHiveMetastore_alter_partitions_args::write(::apache::thrift::prot
   xfer += oprot->writeFieldBegin("new_parts", ::apache::thrift::protocol::T_LIST, 3);
   {
     xfer += oprot->writeListBegin(::apache::thrift::protocol::T_STRUCT, static_cast<uint32_t>(this->new_parts.size()));
+<<<<<<< HEAD
     std::vector<Partition> ::const_iterator _iter2154;
     for (_iter2154 = this->new_parts.begin(); _iter2154 != this->new_parts.end(); ++_iter2154)
     {
       xfer += (*_iter2154).write(oprot);
+=======
+    std::vector<Partition> ::const_iterator _iter2182;
+    for (_iter2182 = this->new_parts.begin(); _iter2182 != this->new_parts.end(); ++_iter2182)
+    {
+      xfer += (*_iter2182).write(oprot);
+>>>>>>> External metastore: clean after rebase
     }
     xfer += oprot->writeListEnd();
   }
@@ -25514,10 +28351,17 @@ uint32_t ThriftHiveMetastore_alter_partitions_pargs::write(::apache::thrift::pro
   xfer += oprot->writeFieldBegin("new_parts", ::apache::thrift::protocol::T_LIST, 3);
   {
     xfer += oprot->writeListBegin(::apache::thrift::protocol::T_STRUCT, static_cast<uint32_t>((*(this->new_parts)).size()));
+<<<<<<< HEAD
     std::vector<Partition> ::const_iterator _iter2155;
     for (_iter2155 = (*(this->new_parts)).begin(); _iter2155 != (*(this->new_parts)).end(); ++_iter2155)
     {
       xfer += (*_iter2155).write(oprot);
+=======
+    std::vector<Partition> ::const_iterator _iter2183;
+    for (_iter2183 = (*(this->new_parts)).begin(); _iter2183 != (*(this->new_parts)).end(); ++_iter2183)
+    {
+      xfer += (*_iter2183).write(oprot);
+>>>>>>> External metastore: clean after rebase
     }
     xfer += oprot->writeListEnd();
   }
@@ -25702,6 +28546,7 @@ uint32_t ThriftHiveMetastore_alter_partitions_with_environment_context_args::rea
         if (ftype == ::apache::thrift::protocol::T_LIST) {
           {
             this->new_parts.clear();
+<<<<<<< HEAD
             uint32_t _size2156;
             ::apache::thrift::protocol::TType _etype2159;
             xfer += iprot->readListBegin(_etype2159, _size2156);
@@ -25710,6 +28555,16 @@ uint32_t ThriftHiveMetastore_alter_partitions_with_environment_context_args::rea
             for (_i2160 = 0; _i2160 < _size2156; ++_i2160)
             {
               xfer += this->new_parts[_i2160].read(iprot);
+=======
+            uint32_t _size2184;
+            ::apache::thrift::protocol::TType _etype2187;
+            xfer += iprot->readListBegin(_etype2187, _size2184);
+            this->new_parts.resize(_size2184);
+            uint32_t _i2188;
+            for (_i2188 = 0; _i2188 < _size2184; ++_i2188)
+            {
+              xfer += this->new_parts[_i2188].read(iprot);
+>>>>>>> External metastore: clean after rebase
             }
             xfer += iprot->readListEnd();
           }
@@ -25754,10 +28609,17 @@ uint32_t ThriftHiveMetastore_alter_partitions_with_environment_context_args::wri
   xfer += oprot->writeFieldBegin("new_parts", ::apache::thrift::protocol::T_LIST, 3);
   {
     xfer += oprot->writeListBegin(::apache::thrift::protocol::T_STRUCT, static_cast<uint32_t>(this->new_parts.size()));
+<<<<<<< HEAD
     std::vector<Partition> ::const_iterator _iter2161;
     for (_iter2161 = this->new_parts.begin(); _iter2161 != this->new_parts.end(); ++_iter2161)
     {
       xfer += (*_iter2161).write(oprot);
+=======
+    std::vector<Partition> ::const_iterator _iter2189;
+    for (_iter2189 = this->new_parts.begin(); _iter2189 != this->new_parts.end(); ++_iter2189)
+    {
+      xfer += (*_iter2189).write(oprot);
+>>>>>>> External metastore: clean after rebase
     }
     xfer += oprot->writeListEnd();
   }
@@ -25793,10 +28655,17 @@ uint32_t ThriftHiveMetastore_alter_partitions_with_environment_context_pargs::wr
   xfer += oprot->writeFieldBegin("new_parts", ::apache::thrift::protocol::T_LIST, 3);
   {
     xfer += oprot->writeListBegin(::apache::thrift::protocol::T_STRUCT, static_cast<uint32_t>((*(this->new_parts)).size()));
+<<<<<<< HEAD
     std::vector<Partition> ::const_iterator _iter2162;
     for (_iter2162 = (*(this->new_parts)).begin(); _iter2162 != (*(this->new_parts)).end(); ++_iter2162)
     {
       xfer += (*_iter2162).write(oprot);
+=======
+    std::vector<Partition> ::const_iterator _iter2190;
+    for (_iter2190 = (*(this->new_parts)).begin(); _iter2190 != (*(this->new_parts)).end(); ++_iter2190)
+    {
+      xfer += (*_iter2190).write(oprot);
+>>>>>>> External metastore: clean after rebase
     }
     xfer += oprot->writeListEnd();
   }
@@ -26467,6 +29336,7 @@ uint32_t ThriftHiveMetastore_rename_partition_args::read(::apache::thrift::proto
         if (ftype == ::apache::thrift::protocol::T_LIST) {
           {
             this->part_vals.clear();
+<<<<<<< HEAD
             uint32_t _size2163;
             ::apache::thrift::protocol::TType _etype2166;
             xfer += iprot->readListBegin(_etype2166, _size2163);
@@ -26475,6 +29345,16 @@ uint32_t ThriftHiveMetastore_rename_partition_args::read(::apache::thrift::proto
             for (_i2167 = 0; _i2167 < _size2163; ++_i2167)
             {
               xfer += iprot->readString(this->part_vals[_i2167]);
+=======
+            uint32_t _size2191;
+            ::apache::thrift::protocol::TType _etype2194;
+            xfer += iprot->readListBegin(_etype2194, _size2191);
+            this->part_vals.resize(_size2191);
+            uint32_t _i2195;
+            for (_i2195 = 0; _i2195 < _size2191; ++_i2195)
+            {
+              xfer += iprot->readString(this->part_vals[_i2195]);
+>>>>>>> External metastore: clean after rebase
             }
             xfer += iprot->readListEnd();
           }
@@ -26519,10 +29399,17 @@ uint32_t ThriftHiveMetastore_rename_partition_args::write(::apache::thrift::prot
   xfer += oprot->writeFieldBegin("part_vals", ::apache::thrift::protocol::T_LIST, 3);
   {
     xfer += oprot->writeListBegin(::apache::thrift::protocol::T_STRING, static_cast<uint32_t>(this->part_vals.size()));
+<<<<<<< HEAD
     std::vector<std::string> ::const_iterator _iter2168;
     for (_iter2168 = this->part_vals.begin(); _iter2168 != this->part_vals.end(); ++_iter2168)
     {
       xfer += oprot->writeString((*_iter2168));
+=======
+    std::vector<std::string> ::const_iterator _iter2196;
+    for (_iter2196 = this->part_vals.begin(); _iter2196 != this->part_vals.end(); ++_iter2196)
+    {
+      xfer += oprot->writeString((*_iter2196));
+>>>>>>> External metastore: clean after rebase
     }
     xfer += oprot->writeListEnd();
   }
@@ -26558,10 +29445,17 @@ uint32_t ThriftHiveMetastore_rename_partition_pargs::write(::apache::thrift::pro
   xfer += oprot->writeFieldBegin("part_vals", ::apache::thrift::protocol::T_LIST, 3);
   {
     xfer += oprot->writeListBegin(::apache::thrift::protocol::T_STRING, static_cast<uint32_t>((*(this->part_vals)).size()));
+<<<<<<< HEAD
     std::vector<std::string> ::const_iterator _iter2169;
     for (_iter2169 = (*(this->part_vals)).begin(); _iter2169 != (*(this->part_vals)).end(); ++_iter2169)
     {
       xfer += oprot->writeString((*_iter2169));
+=======
+    std::vector<std::string> ::const_iterator _iter2197;
+    for (_iter2197 = (*(this->part_vals)).begin(); _iter2197 != (*(this->part_vals)).end(); ++_iter2197)
+    {
+      xfer += oprot->writeString((*_iter2197));
+>>>>>>> External metastore: clean after rebase
     }
     xfer += oprot->writeListEnd();
   }
@@ -26961,6 +29855,7 @@ uint32_t ThriftHiveMetastore_partition_name_has_valid_characters_args::read(::ap
         if (ftype == ::apache::thrift::protocol::T_LIST) {
           {
             this->part_vals.clear();
+<<<<<<< HEAD
             uint32_t _size2170;
             ::apache::thrift::protocol::TType _etype2173;
             xfer += iprot->readListBegin(_etype2173, _size2170);
@@ -26969,6 +29864,16 @@ uint32_t ThriftHiveMetastore_partition_name_has_valid_characters_args::read(::ap
             for (_i2174 = 0; _i2174 < _size2170; ++_i2174)
             {
               xfer += iprot->readString(this->part_vals[_i2174]);
+=======
+            uint32_t _size2198;
+            ::apache::thrift::protocol::TType _etype2201;
+            xfer += iprot->readListBegin(_etype2201, _size2198);
+            this->part_vals.resize(_size2198);
+            uint32_t _i2202;
+            for (_i2202 = 0; _i2202 < _size2198; ++_i2202)
+            {
+              xfer += iprot->readString(this->part_vals[_i2202]);
+>>>>>>> External metastore: clean after rebase
             }
             xfer += iprot->readListEnd();
           }
@@ -27005,10 +29910,17 @@ uint32_t ThriftHiveMetastore_partition_name_has_valid_characters_args::write(::a
   xfer += oprot->writeFieldBegin("part_vals", ::apache::thrift::protocol::T_LIST, 1);
   {
     xfer += oprot->writeListBegin(::apache::thrift::protocol::T_STRING, static_cast<uint32_t>(this->part_vals.size()));
+<<<<<<< HEAD
     std::vector<std::string> ::const_iterator _iter2175;
     for (_iter2175 = this->part_vals.begin(); _iter2175 != this->part_vals.end(); ++_iter2175)
     {
       xfer += oprot->writeString((*_iter2175));
+=======
+    std::vector<std::string> ::const_iterator _iter2203;
+    for (_iter2203 = this->part_vals.begin(); _iter2203 != this->part_vals.end(); ++_iter2203)
+    {
+      xfer += oprot->writeString((*_iter2203));
+>>>>>>> External metastore: clean after rebase
     }
     xfer += oprot->writeListEnd();
   }
@@ -27036,10 +29948,17 @@ uint32_t ThriftHiveMetastore_partition_name_has_valid_characters_pargs::write(::
   xfer += oprot->writeFieldBegin("part_vals", ::apache::thrift::protocol::T_LIST, 1);
   {
     xfer += oprot->writeListBegin(::apache::thrift::protocol::T_STRING, static_cast<uint32_t>((*(this->part_vals)).size()));
+<<<<<<< HEAD
     std::vector<std::string> ::const_iterator _iter2176;
     for (_iter2176 = (*(this->part_vals)).begin(); _iter2176 != (*(this->part_vals)).end(); ++_iter2176)
     {
       xfer += oprot->writeString((*_iter2176));
+=======
+    std::vector<std::string> ::const_iterator _iter2204;
+    for (_iter2204 = (*(this->part_vals)).begin(); _iter2204 != (*(this->part_vals)).end(); ++_iter2204)
+    {
+      xfer += oprot->writeString((*_iter2204));
+>>>>>>> External metastore: clean after rebase
     }
     xfer += oprot->writeListEnd();
   }
@@ -27514,6 +30433,7 @@ uint32_t ThriftHiveMetastore_partition_name_to_vals_result::read(::apache::thrif
         if (ftype == ::apache::thrift::protocol::T_LIST) {
           {
             this->success.clear();
+<<<<<<< HEAD
             uint32_t _size2177;
             ::apache::thrift::protocol::TType _etype2180;
             xfer += iprot->readListBegin(_etype2180, _size2177);
@@ -27522,6 +30442,16 @@ uint32_t ThriftHiveMetastore_partition_name_to_vals_result::read(::apache::thrif
             for (_i2181 = 0; _i2181 < _size2177; ++_i2181)
             {
               xfer += iprot->readString(this->success[_i2181]);
+=======
+            uint32_t _size2205;
+            ::apache::thrift::protocol::TType _etype2208;
+            xfer += iprot->readListBegin(_etype2208, _size2205);
+            this->success.resize(_size2205);
+            uint32_t _i2209;
+            for (_i2209 = 0; _i2209 < _size2205; ++_i2209)
+            {
+              xfer += iprot->readString(this->success[_i2209]);
+>>>>>>> External metastore: clean after rebase
             }
             xfer += iprot->readListEnd();
           }
@@ -27560,10 +30490,17 @@ uint32_t ThriftHiveMetastore_partition_name_to_vals_result::write(::apache::thri
     xfer += oprot->writeFieldBegin("success", ::apache::thrift::protocol::T_LIST, 0);
     {
       xfer += oprot->writeListBegin(::apache::thrift::protocol::T_STRING, static_cast<uint32_t>(this->success.size()));
+<<<<<<< HEAD
       std::vector<std::string> ::const_iterator _iter2182;
       for (_iter2182 = this->success.begin(); _iter2182 != this->success.end(); ++_iter2182)
       {
         xfer += oprot->writeString((*_iter2182));
+=======
+      std::vector<std::string> ::const_iterator _iter2210;
+      for (_iter2210 = this->success.begin(); _iter2210 != this->success.end(); ++_iter2210)
+      {
+        xfer += oprot->writeString((*_iter2210));
+>>>>>>> External metastore: clean after rebase
       }
       xfer += oprot->writeListEnd();
     }
@@ -27608,6 +30545,7 @@ uint32_t ThriftHiveMetastore_partition_name_to_vals_presult::read(::apache::thri
         if (ftype == ::apache::thrift::protocol::T_LIST) {
           {
             (*(this->success)).clear();
+<<<<<<< HEAD
             uint32_t _size2183;
             ::apache::thrift::protocol::TType _etype2186;
             xfer += iprot->readListBegin(_etype2186, _size2183);
@@ -27616,6 +30554,16 @@ uint32_t ThriftHiveMetastore_partition_name_to_vals_presult::read(::apache::thri
             for (_i2187 = 0; _i2187 < _size2183; ++_i2187)
             {
               xfer += iprot->readString((*(this->success))[_i2187]);
+=======
+            uint32_t _size2211;
+            ::apache::thrift::protocol::TType _etype2214;
+            xfer += iprot->readListBegin(_etype2214, _size2211);
+            (*(this->success)).resize(_size2211);
+            uint32_t _i2215;
+            for (_i2215 = 0; _i2215 < _size2211; ++_i2215)
+            {
+              xfer += iprot->readString((*(this->success))[_i2215]);
+>>>>>>> External metastore: clean after rebase
             }
             xfer += iprot->readListEnd();
           }
@@ -27753,6 +30701,7 @@ uint32_t ThriftHiveMetastore_partition_name_to_spec_result::read(::apache::thrif
         if (ftype == ::apache::thrift::protocol::T_MAP) {
           {
             this->success.clear();
+<<<<<<< HEAD
             uint32_t _size2188;
             ::apache::thrift::protocol::TType _ktype2189;
             ::apache::thrift::protocol::TType _vtype2190;
@@ -27764,6 +30713,19 @@ uint32_t ThriftHiveMetastore_partition_name_to_spec_result::read(::apache::thrif
               xfer += iprot->readString(_key2193);
               std::string& _val2194 = this->success[_key2193];
               xfer += iprot->readString(_val2194);
+=======
+            uint32_t _size2216;
+            ::apache::thrift::protocol::TType _ktype2217;
+            ::apache::thrift::protocol::TType _vtype2218;
+            xfer += iprot->readMapBegin(_ktype2217, _vtype2218, _size2216);
... 76708 lines suppressed ...