#
# Autogenerated by Thrift Compiler (0.9.3)
#
# DO NOT EDIT UNLESS YOU ARE SURE THAT YOU KNOW WHAT YOU ARE DOING
#

require 'thrift'
require 'facebook_service'
require 'hive_metastore_types'

module ThriftHiveMetastore
  class Client < ::FacebookService::Client 
    include ::Thrift::Client

    def getMetaConf(key)
      send_getMetaConf(key)
      return recv_getMetaConf()
    end

    def send_getMetaConf(key)
      send_message('getMetaConf', GetMetaConf_args, :key => key)
    end

    def recv_getMetaConf()
      result = receive_message(GetMetaConf_result)
      return result.success unless result.success.nil?
      raise result.o1 unless result.o1.nil?
      raise ::Thrift::ApplicationException.new(::Thrift::ApplicationException::MISSING_RESULT, 'getMetaConf failed: unknown result')
    end

    def setMetaConf(key, value)
      send_setMetaConf(key, value)
      recv_setMetaConf()
    end

    def send_setMetaConf(key, value)
      send_message('setMetaConf', SetMetaConf_args, :key => key, :value => value)
    end

    def recv_setMetaConf()
      result = receive_message(SetMetaConf_result)
      raise result.o1 unless result.o1.nil?
      return
    end

    def create_catalog(catalog)
      send_create_catalog(catalog)
      recv_create_catalog()
    end

    def send_create_catalog(catalog)
      send_message('create_catalog', Create_catalog_args, :catalog => catalog)
    end

    def recv_create_catalog()
      result = receive_message(Create_catalog_result)
      raise result.o1 unless result.o1.nil?
      raise result.o2 unless result.o2.nil?
      raise result.o3 unless result.o3.nil?
      return
    end

    def alter_catalog(rqst)
      send_alter_catalog(rqst)
      recv_alter_catalog()
    end

    def send_alter_catalog(rqst)
      send_message('alter_catalog', Alter_catalog_args, :rqst => rqst)
    end

    def recv_alter_catalog()
      result = receive_message(Alter_catalog_result)
      raise result.o1 unless result.o1.nil?
      raise result.o2 unless result.o2.nil?
      raise result.o3 unless result.o3.nil?
      return
    end

    def get_catalog(catName)
      send_get_catalog(catName)
      return recv_get_catalog()
    end

    def send_get_catalog(catName)
      send_message('get_catalog', Get_catalog_args, :catName => catName)
    end

    def recv_get_catalog()
      result = receive_message(Get_catalog_result)
      return result.success unless result.success.nil?
      raise result.o1 unless result.o1.nil?
      raise result.o2 unless result.o2.nil?
      raise ::Thrift::ApplicationException.new(::Thrift::ApplicationException::MISSING_RESULT, 'get_catalog failed: unknown result')
    end

    def get_catalogs()
      send_get_catalogs()
      return recv_get_catalogs()
    end

    def send_get_catalogs()
      send_message('get_catalogs', Get_catalogs_args)
    end

    def recv_get_catalogs()
      result = receive_message(Get_catalogs_result)
      return result.success unless result.success.nil?
      raise result.o1 unless result.o1.nil?
      raise ::Thrift::ApplicationException.new(::Thrift::ApplicationException::MISSING_RESULT, 'get_catalogs failed: unknown result')
    end

    def drop_catalog(catName)
      send_drop_catalog(catName)
      recv_drop_catalog()
    end

    def send_drop_catalog(catName)
      send_message('drop_catalog', Drop_catalog_args, :catName => catName)
    end

    def recv_drop_catalog()
      result = receive_message(Drop_catalog_result)
      raise result.o1 unless result.o1.nil?
      raise result.o2 unless result.o2.nil?
      raise result.o3 unless result.o3.nil?
      return
    end

    def create_database(database)
      send_create_database(database)
      recv_create_database()
    end

    def send_create_database(database)
      send_message('create_database', Create_database_args, :database => database)
    end

    def recv_create_database()
      result = receive_message(Create_database_result)
      raise result.o1 unless result.o1.nil?
      raise result.o2 unless result.o2.nil?
      raise result.o3 unless result.o3.nil?
      return
    end

    def get_database(name)
      send_get_database(name)
      return recv_get_database()
    end

    def send_get_database(name)
      send_message('get_database', Get_database_args, :name => name)
    end

    def recv_get_database()
      result = receive_message(Get_database_result)
      return result.success unless result.success.nil?
      raise result.o1 unless result.o1.nil?
      raise result.o2 unless result.o2.nil?
      raise ::Thrift::ApplicationException.new(::Thrift::ApplicationException::MISSING_RESULT, 'get_database failed: unknown result')
    end

    def get_database_req(request)
      send_get_database_req(request)
      return recv_get_database_req()
    end

    def send_get_database_req(request)
      send_message('get_database_req', Get_database_req_args, :request => request)
    end

    def recv_get_database_req()
      result = receive_message(Get_database_req_result)
      return result.success unless result.success.nil?
      raise result.o1 unless result.o1.nil?
      raise result.o2 unless result.o2.nil?
      raise ::Thrift::ApplicationException.new(::Thrift::ApplicationException::MISSING_RESULT, 'get_database_req failed: unknown result')
    end

    def drop_database(name, deleteData, cascade)
      send_drop_database(name, deleteData, cascade)
      recv_drop_database()
    end

    def send_drop_database(name, deleteData, cascade)
      send_message('drop_database', Drop_database_args, :name => name, :deleteData => deleteData, :cascade => cascade)
    end

    def recv_drop_database()
      result = receive_message(Drop_database_result)
      raise result.o1 unless result.o1.nil?
      raise result.o2 unless result.o2.nil?
      raise result.o3 unless result.o3.nil?
      return
    end

    def get_databases(pattern)
      send_get_databases(pattern)
      return recv_get_databases()
    end

    def send_get_databases(pattern)
      send_message('get_databases', Get_databases_args, :pattern => pattern)
    end

    def recv_get_databases()
      result = receive_message(Get_databases_result)
      return result.success unless result.success.nil?
      raise result.o1 unless result.o1.nil?
      raise ::Thrift::ApplicationException.new(::Thrift::ApplicationException::MISSING_RESULT, 'get_databases failed: unknown result')
    end

    def get_all_databases()
      send_get_all_databases()
      return recv_get_all_databases()
    end

    def send_get_all_databases()
      send_message('get_all_databases', Get_all_databases_args)
    end

    def recv_get_all_databases()
      result = receive_message(Get_all_databases_result)
      return result.success unless result.success.nil?
      raise result.o1 unless result.o1.nil?
      raise ::Thrift::ApplicationException.new(::Thrift::ApplicationException::MISSING_RESULT, 'get_all_databases failed: unknown result')
    end

    def alter_database(dbname, db)
      send_alter_database(dbname, db)
      recv_alter_database()
    end

    def send_alter_database(dbname, db)
      send_message('alter_database', Alter_database_args, :dbname => dbname, :db => db)
    end

    def recv_alter_database()
      result = receive_message(Alter_database_result)
      raise result.o1 unless result.o1.nil?
      raise result.o2 unless result.o2.nil?
      return
    end

    def get_type(name)
      send_get_type(name)
      return recv_get_type()
    end

    def send_get_type(name)
      send_message('get_type', Get_type_args, :name => name)
    end

    def recv_get_type()
      result = receive_message(Get_type_result)
      return result.success unless result.success.nil?
      raise result.o1 unless result.o1.nil?
      raise result.o2 unless result.o2.nil?
      raise ::Thrift::ApplicationException.new(::Thrift::ApplicationException::MISSING_RESULT, 'get_type failed: unknown result')
    end

    def create_type(type)
      send_create_type(type)
      return recv_create_type()
    end

    def send_create_type(type)
      send_message('create_type', Create_type_args, :type => type)
    end

    def recv_create_type()
      result = receive_message(Create_type_result)
      return result.success unless result.success.nil?
      raise result.o1 unless result.o1.nil?
      raise result.o2 unless result.o2.nil?
      raise result.o3 unless result.o3.nil?
      raise ::Thrift::ApplicationException.new(::Thrift::ApplicationException::MISSING_RESULT, 'create_type failed: unknown result')
    end

    def drop_type(type)
      send_drop_type(type)
      return recv_drop_type()
    end

    def send_drop_type(type)
      send_message('drop_type', Drop_type_args, :type => type)
    end

    def recv_drop_type()
      result = receive_message(Drop_type_result)
      return result.success unless result.success.nil?
      raise result.o1 unless result.o1.nil?
      raise result.o2 unless result.o2.nil?
      raise ::Thrift::ApplicationException.new(::Thrift::ApplicationException::MISSING_RESULT, 'drop_type failed: unknown result')
    end

    def get_type_all(name)
      send_get_type_all(name)
      return recv_get_type_all()
    end

    def send_get_type_all(name)
      send_message('get_type_all', Get_type_all_args, :name => name)
    end

    def recv_get_type_all()
      result = receive_message(Get_type_all_result)
      return result.success unless result.success.nil?
      raise result.o2 unless result.o2.nil?
      raise ::Thrift::ApplicationException.new(::Thrift::ApplicationException::MISSING_RESULT, 'get_type_all failed: unknown result')
    end

    def get_fields(db_name, table_name)
      send_get_fields(db_name, table_name)
      return recv_get_fields()
    end

    def send_get_fields(db_name, table_name)
      send_message('get_fields', Get_fields_args, :db_name => db_name, :table_name => table_name)
    end

    def recv_get_fields()
      result = receive_message(Get_fields_result)
      return result.success unless result.success.nil?
      raise result.o1 unless result.o1.nil?
      raise result.o2 unless result.o2.nil?
      raise result.o3 unless result.o3.nil?
      raise ::Thrift::ApplicationException.new(::Thrift::ApplicationException::MISSING_RESULT, 'get_fields failed: unknown result')
    end

    def get_fields_with_environment_context(db_name, table_name, environment_context)
      send_get_fields_with_environment_context(db_name, table_name, environment_context)
      return recv_get_fields_with_environment_context()
    end

    def send_get_fields_with_environment_context(db_name, table_name, environment_context)
      send_message('get_fields_with_environment_context', Get_fields_with_environment_context_args, :db_name => db_name, :table_name => table_name, :environment_context => environment_context)
    end

    def recv_get_fields_with_environment_context()
      result = receive_message(Get_fields_with_environment_context_result)
      return result.success unless result.success.nil?
      raise result.o1 unless result.o1.nil?
      raise result.o2 unless result.o2.nil?
      raise result.o3 unless result.o3.nil?
      raise ::Thrift::ApplicationException.new(::Thrift::ApplicationException::MISSING_RESULT, 'get_fields_with_environment_context failed: unknown result')
    end

    def get_fields_req(req)
      send_get_fields_req(req)
      return recv_get_fields_req()
    end

    def send_get_fields_req(req)
      send_message('get_fields_req', Get_fields_req_args, :req => req)
    end

    def recv_get_fields_req()
      result = receive_message(Get_fields_req_result)
      return result.success unless result.success.nil?
      raise result.o1 unless result.o1.nil?
      raise result.o2 unless result.o2.nil?
      raise result.o3 unless result.o3.nil?
      raise ::Thrift::ApplicationException.new(::Thrift::ApplicationException::MISSING_RESULT, 'get_fields_req failed: unknown result')
    end

    def get_schema(db_name, table_name)
      send_get_schema(db_name, table_name)
      return recv_get_schema()
    end

    def send_get_schema(db_name, table_name)
      send_message('get_schema', Get_schema_args, :db_name => db_name, :table_name => table_name)
    end

    def recv_get_schema()
      result = receive_message(Get_schema_result)
      return result.success unless result.success.nil?
      raise result.o1 unless result.o1.nil?
      raise result.o2 unless result.o2.nil?
      raise result.o3 unless result.o3.nil?
      raise ::Thrift::ApplicationException.new(::Thrift::ApplicationException::MISSING_RESULT, 'get_schema failed: unknown result')
    end

    def get_schema_with_environment_context(db_name, table_name, environment_context)
      send_get_schema_with_environment_context(db_name, table_name, environment_context)
      return recv_get_schema_with_environment_context()
    end

    def send_get_schema_with_environment_context(db_name, table_name, environment_context)
      send_message('get_schema_with_environment_context', Get_schema_with_environment_context_args, :db_name => db_name, :table_name => table_name, :environment_context => environment_context)
    end

    def recv_get_schema_with_environment_context()
      result = receive_message(Get_schema_with_environment_context_result)
      return result.success unless result.success.nil?
      raise result.o1 unless result.o1.nil?
      raise result.o2 unless result.o2.nil?
      raise result.o3 unless result.o3.nil?
      raise ::Thrift::ApplicationException.new(::Thrift::ApplicationException::MISSING_RESULT, 'get_schema_with_environment_context failed: unknown result')
    end

    def get_schema_req(req)
      send_get_schema_req(req)
      return recv_get_schema_req()
    end

    def send_get_schema_req(req)
      send_message('get_schema_req', Get_schema_req_args, :req => req)
    end

    def recv_get_schema_req()
      result = receive_message(Get_schema_req_result)
      return result.success unless result.success.nil?
      raise result.o1 unless result.o1.nil?
      raise result.o2 unless result.o2.nil?
      raise result.o3 unless result.o3.nil?
      raise ::Thrift::ApplicationException.new(::Thrift::ApplicationException::MISSING_RESULT, 'get_schema_req failed: unknown result')
    end

    def create_table(tbl)
      send_create_table(tbl)
      recv_create_table()
    end

    def send_create_table(tbl)
      send_message('create_table', Create_table_args, :tbl => tbl)
    end

    def recv_create_table()
      result = receive_message(Create_table_result)
      raise result.o1 unless result.o1.nil?
      raise result.o2 unless result.o2.nil?
      raise result.o3 unless result.o3.nil?
      raise result.o4 unless result.o4.nil?
      return
    end

    def create_table_with_environment_context(tbl, environment_context)
      send_create_table_with_environment_context(tbl, environment_context)
      recv_create_table_with_environment_context()
    end

    def send_create_table_with_environment_context(tbl, environment_context)
      send_message('create_table_with_environment_context', Create_table_with_environment_context_args, :tbl => tbl, :environment_context => environment_context)
    end

    def recv_create_table_with_environment_context()
      result = receive_message(Create_table_with_environment_context_result)
      raise result.o1 unless result.o1.nil?
      raise result.o2 unless result.o2.nil?
      raise result.o3 unless result.o3.nil?
      raise result.o4 unless result.o4.nil?
      return
    end

    def create_table_with_constraints(tbl, primaryKeys, foreignKeys, uniqueConstraints, notNullConstraints, defaultConstraints, checkConstraints)
      send_create_table_with_constraints(tbl, primaryKeys, foreignKeys, uniqueConstraints, notNullConstraints, defaultConstraints, checkConstraints)
      recv_create_table_with_constraints()
    end

    def send_create_table_with_constraints(tbl, primaryKeys, foreignKeys, uniqueConstraints, notNullConstraints, defaultConstraints, checkConstraints)
      send_message('create_table_with_constraints', Create_table_with_constraints_args, :tbl => tbl, :primaryKeys => primaryKeys, :foreignKeys => foreignKeys, :uniqueConstraints => uniqueConstraints, :notNullConstraints => notNullConstraints, :defaultConstraints => defaultConstraints, :checkConstraints => checkConstraints)
    end

    def recv_create_table_with_constraints()
      result = receive_message(Create_table_with_constraints_result)
      raise result.o1 unless result.o1.nil?
      raise result.o2 unless result.o2.nil?
      raise result.o3 unless result.o3.nil?
      raise result.o4 unless result.o4.nil?
      return
    end

    def create_table_req(request)
      send_create_table_req(request)
      recv_create_table_req()
    end

    def send_create_table_req(request)
      send_message('create_table_req', Create_table_req_args, :request => request)
    end

    def recv_create_table_req()
      result = receive_message(Create_table_req_result)
      raise result.o1 unless result.o1.nil?
      raise result.o2 unless result.o2.nil?
      raise result.o3 unless result.o3.nil?
      raise result.o4 unless result.o4.nil?
      return
    end

    def drop_constraint(req)
      send_drop_constraint(req)
      recv_drop_constraint()
    end

    def send_drop_constraint(req)
      send_message('drop_constraint', Drop_constraint_args, :req => req)
    end

    def recv_drop_constraint()
      result = receive_message(Drop_constraint_result)
      raise result.o1 unless result.o1.nil?
      raise result.o3 unless result.o3.nil?
      return
    end

    def add_primary_key(req)
      send_add_primary_key(req)
      recv_add_primary_key()
    end

    def send_add_primary_key(req)
      send_message('add_primary_key', Add_primary_key_args, :req => req)
    end

    def recv_add_primary_key()
      result = receive_message(Add_primary_key_result)
      raise result.o1 unless result.o1.nil?
      raise result.o2 unless result.o2.nil?
      return
    end

    def add_foreign_key(req)
      send_add_foreign_key(req)
      recv_add_foreign_key()
    end

    def send_add_foreign_key(req)
      send_message('add_foreign_key', Add_foreign_key_args, :req => req)
    end

    def recv_add_foreign_key()
      result = receive_message(Add_foreign_key_result)
      raise result.o1 unless result.o1.nil?
      raise result.o2 unless result.o2.nil?
      return
    end

    def add_unique_constraint(req)
      send_add_unique_constraint(req)
      recv_add_unique_constraint()
    end

    def send_add_unique_constraint(req)
      send_message('add_unique_constraint', Add_unique_constraint_args, :req => req)
    end

    def recv_add_unique_constraint()
      result = receive_message(Add_unique_constraint_result)
      raise result.o1 unless result.o1.nil?
      raise result.o2 unless result.o2.nil?
      return
    end

    def add_not_null_constraint(req)
      send_add_not_null_constraint(req)
      recv_add_not_null_constraint()
    end

    def send_add_not_null_constraint(req)
      send_message('add_not_null_constraint', Add_not_null_constraint_args, :req => req)
    end

    def recv_add_not_null_constraint()
      result = receive_message(Add_not_null_constraint_result)
      raise result.o1 unless result.o1.nil?
      raise result.o2 unless result.o2.nil?
      return
    end

    def add_default_constraint(req)
      send_add_default_constraint(req)
      recv_add_default_constraint()
    end

    def send_add_default_constraint(req)
      send_message('add_default_constraint', Add_default_constraint_args, :req => req)
    end

    def recv_add_default_constraint()
      result = receive_message(Add_default_constraint_result)
      raise result.o1 unless result.o1.nil?
      raise result.o2 unless result.o2.nil?
      return
    end

    def add_check_constraint(req)
      send_add_check_constraint(req)
      recv_add_check_constraint()
    end

    def send_add_check_constraint(req)
      send_message('add_check_constraint', Add_check_constraint_args, :req => req)
    end

    def recv_add_check_constraint()
      result = receive_message(Add_check_constraint_result)
      raise result.o1 unless result.o1.nil?
      raise result.o2 unless result.o2.nil?
      return
    end

    def drop_table(dbname, name, deleteData)
      send_drop_table(dbname, name, deleteData)
      recv_drop_table()
    end

    def send_drop_table(dbname, name, deleteData)
      send_message('drop_table', Drop_table_args, :dbname => dbname, :name => name, :deleteData => deleteData)
    end

    def recv_drop_table()
      result = receive_message(Drop_table_result)
      raise result.o1 unless result.o1.nil?
      raise result.o3 unless result.o3.nil?
      return
    end

    def drop_table_with_environment_context(dbname, name, deleteData, environment_context)
      send_drop_table_with_environment_context(dbname, name, deleteData, environment_context)
      recv_drop_table_with_environment_context()
    end

    def send_drop_table_with_environment_context(dbname, name, deleteData, environment_context)
      send_message('drop_table_with_environment_context', Drop_table_with_environment_context_args, :dbname => dbname, :name => name, :deleteData => deleteData, :environment_context => environment_context)
    end

    def recv_drop_table_with_environment_context()
      result = receive_message(Drop_table_with_environment_context_result)
      raise result.o1 unless result.o1.nil?
      raise result.o3 unless result.o3.nil?
      return
    end

    def truncate_table(dbName, tableName, partNames)
      send_truncate_table(dbName, tableName, partNames)
      recv_truncate_table()
    end

    def send_truncate_table(dbName, tableName, partNames)
      send_message('truncate_table', Truncate_table_args, :dbName => dbName, :tableName => tableName, :partNames => partNames)
    end

    def recv_truncate_table()
      result = receive_message(Truncate_table_result)
      raise result.o1 unless result.o1.nil?
      return
    end

    def truncate_table_req(req)
      send_truncate_table_req(req)
      return recv_truncate_table_req()
    end

    def send_truncate_table_req(req)
      send_message('truncate_table_req', Truncate_table_req_args, :req => req)
    end

    def recv_truncate_table_req()
      result = receive_message(Truncate_table_req_result)
      return result.success unless result.success.nil?
      raise result.o1 unless result.o1.nil?
      raise ::Thrift::ApplicationException.new(::Thrift::ApplicationException::MISSING_RESULT, 'truncate_table_req failed: unknown result')
    end

    def get_tables(db_name, pattern)
      send_get_tables(db_name, pattern)
      return recv_get_tables()
    end

    def send_get_tables(db_name, pattern)
      send_message('get_tables', Get_tables_args, :db_name => db_name, :pattern => pattern)
    end

    def recv_get_tables()
      result = receive_message(Get_tables_result)
      return result.success unless result.success.nil?
      raise result.o1 unless result.o1.nil?
      raise ::Thrift::ApplicationException.new(::Thrift::ApplicationException::MISSING_RESULT, 'get_tables failed: unknown result')
    end

    def get_tables_by_type(db_name, pattern, tableType)
      send_get_tables_by_type(db_name, pattern, tableType)
      return recv_get_tables_by_type()
    end

    def send_get_tables_by_type(db_name, pattern, tableType)
      send_message('get_tables_by_type', Get_tables_by_type_args, :db_name => db_name, :pattern => pattern, :tableType => tableType)
    end

    def recv_get_tables_by_type()
      result = receive_message(Get_tables_by_type_result)
      return result.success unless result.success.nil?
      raise result.o1 unless result.o1.nil?
      raise ::Thrift::ApplicationException.new(::Thrift::ApplicationException::MISSING_RESULT, 'get_tables_by_type failed: unknown result')
    end

    def get_all_materialized_view_objects_for_rewriting()
      send_get_all_materialized_view_objects_for_rewriting()
      return recv_get_all_materialized_view_objects_for_rewriting()
    end

    def send_get_all_materialized_view_objects_for_rewriting()
      send_message('get_all_materialized_view_objects_for_rewriting', Get_all_materialized_view_objects_for_rewriting_args)
    end

    def recv_get_all_materialized_view_objects_for_rewriting()
      result = receive_message(Get_all_materialized_view_objects_for_rewriting_result)
      return result.success unless result.success.nil?
      raise result.o1 unless result.o1.nil?
      raise ::Thrift::ApplicationException.new(::Thrift::ApplicationException::MISSING_RESULT, 'get_all_materialized_view_objects_for_rewriting failed: unknown result')
    end

    def get_materialized_views_for_rewriting(db_name)
      send_get_materialized_views_for_rewriting(db_name)
      return recv_get_materialized_views_for_rewriting()
    end

    def send_get_materialized_views_for_rewriting(db_name)
      send_message('get_materialized_views_for_rewriting', Get_materialized_views_for_rewriting_args, :db_name => db_name)
    end

    def recv_get_materialized_views_for_rewriting()
      result = receive_message(Get_materialized_views_for_rewriting_result)
      return result.success unless result.success.nil?
      raise result.o1 unless result.o1.nil?
      raise ::Thrift::ApplicationException.new(::Thrift::ApplicationException::MISSING_RESULT, 'get_materialized_views_for_rewriting failed: unknown result')
    end

    def get_table_meta(db_patterns, tbl_patterns, tbl_types)
      send_get_table_meta(db_patterns, tbl_patterns, tbl_types)
      return recv_get_table_meta()
    end

    def send_get_table_meta(db_patterns, tbl_patterns, tbl_types)
      send_message('get_table_meta', Get_table_meta_args, :db_patterns => db_patterns, :tbl_patterns => tbl_patterns, :tbl_types => tbl_types)
    end

    def recv_get_table_meta()
      result = receive_message(Get_table_meta_result)
      return result.success unless result.success.nil?
      raise result.o1 unless result.o1.nil?
      raise ::Thrift::ApplicationException.new(::Thrift::ApplicationException::MISSING_RESULT, 'get_table_meta failed: unknown result')
    end

    def get_all_tables(db_name)
      send_get_all_tables(db_name)
      return recv_get_all_tables()
    end

    def send_get_all_tables(db_name)
      send_message('get_all_tables', Get_all_tables_args, :db_name => db_name)
    end

    def recv_get_all_tables()
      result = receive_message(Get_all_tables_result)
      return result.success unless result.success.nil?
      raise result.o1 unless result.o1.nil?
      raise ::Thrift::ApplicationException.new(::Thrift::ApplicationException::MISSING_RESULT, 'get_all_tables failed: unknown result')
    end

    def get_table(dbname, tbl_name)
      send_get_table(dbname, tbl_name)
      return recv_get_table()
    end

    def send_get_table(dbname, tbl_name)
      send_message('get_table', Get_table_args, :dbname => dbname, :tbl_name => tbl_name)
    end

    def recv_get_table()
      result = receive_message(Get_table_result)
      return result.success unless result.success.nil?
      raise result.o1 unless result.o1.nil?
      raise result.o2 unless result.o2.nil?
      raise ::Thrift::ApplicationException.new(::Thrift::ApplicationException::MISSING_RESULT, 'get_table failed: unknown result')
    end

    def get_table_objects_by_name(dbname, tbl_names)
      send_get_table_objects_by_name(dbname, tbl_names)
      return recv_get_table_objects_by_name()
    end

    def send_get_table_objects_by_name(dbname, tbl_names)
      send_message('get_table_objects_by_name', Get_table_objects_by_name_args, :dbname => dbname, :tbl_names => tbl_names)
    end

    def recv_get_table_objects_by_name()
      result = receive_message(Get_table_objects_by_name_result)
      return result.success unless result.success.nil?
      raise ::Thrift::ApplicationException.new(::Thrift::ApplicationException::MISSING_RESULT, 'get_table_objects_by_name failed: unknown result')
    end

    def get_tables_ext(req)
      send_get_tables_ext(req)
      return recv_get_tables_ext()
    end

    def send_get_tables_ext(req)
      send_message('get_tables_ext', Get_tables_ext_args, :req => req)
    end

    def recv_get_tables_ext()
      result = receive_message(Get_tables_ext_result)
      return result.success unless result.success.nil?
      raise result.o1 unless result.o1.nil?
      raise ::Thrift::ApplicationException.new(::Thrift::ApplicationException::MISSING_RESULT, 'get_tables_ext failed: unknown result')
    end

    def get_table_req(req)
      send_get_table_req(req)
      return recv_get_table_req()
    end

    def send_get_table_req(req)
      send_message('get_table_req', Get_table_req_args, :req => req)
    end

    def recv_get_table_req()
      result = receive_message(Get_table_req_result)
      return result.success unless result.success.nil?
      raise result.o1 unless result.o1.nil?
      raise result.o2 unless result.o2.nil?
      raise ::Thrift::ApplicationException.new(::Thrift::ApplicationException::MISSING_RESULT, 'get_table_req failed: unknown result')
    end

    def get_table_objects_by_name_req(req)
      send_get_table_objects_by_name_req(req)
      return recv_get_table_objects_by_name_req()
    end

    def send_get_table_objects_by_name_req(req)
      send_message('get_table_objects_by_name_req', Get_table_objects_by_name_req_args, :req => req)
    end

    def recv_get_table_objects_by_name_req()
      result = receive_message(Get_table_objects_by_name_req_result)
      return result.success unless result.success.nil?
      raise result.o1 unless result.o1.nil?
      raise result.o2 unless result.o2.nil?
      raise result.o3 unless result.o3.nil?
      raise ::Thrift::ApplicationException.new(::Thrift::ApplicationException::MISSING_RESULT, 'get_table_objects_by_name_req failed: unknown result')
    end

    def get_materialization_invalidation_info(creation_metadata, validTxnList)
      send_get_materialization_invalidation_info(creation_metadata, validTxnList)
      return recv_get_materialization_invalidation_info()
    end

    def send_get_materialization_invalidation_info(creation_metadata, validTxnList)
      send_message('get_materialization_invalidation_info', Get_materialization_invalidation_info_args, :creation_metadata => creation_metadata, :validTxnList => validTxnList)
    end

    def recv_get_materialization_invalidation_info()
      result = receive_message(Get_materialization_invalidation_info_result)
      return result.success unless result.success.nil?
      raise result.o1 unless result.o1.nil?
      raise result.o2 unless result.o2.nil?
      raise result.o3 unless result.o3.nil?
      raise ::Thrift::ApplicationException.new(::Thrift::ApplicationException::MISSING_RESULT, 'get_materialization_invalidation_info failed: unknown result')
    end

    def update_creation_metadata(catName, dbname, tbl_name, creation_metadata)
      send_update_creation_metadata(catName, dbname, tbl_name, creation_metadata)
      recv_update_creation_metadata()
    end

    def send_update_creation_metadata(catName, dbname, tbl_name, creation_metadata)
      send_message('update_creation_metadata', Update_creation_metadata_args, :catName => catName, :dbname => dbname, :tbl_name => tbl_name, :creation_metadata => creation_metadata)
    end

    def recv_update_creation_metadata()
      result = receive_message(Update_creation_metadata_result)
      raise result.o1 unless result.o1.nil?
      raise result.o2 unless result.o2.nil?
      raise result.o3 unless result.o3.nil?
      return
    end

    def get_table_names_by_filter(dbname, filter, max_tables)
      send_get_table_names_by_filter(dbname, filter, max_tables)
      return recv_get_table_names_by_filter()
    end

    def send_get_table_names_by_filter(dbname, filter, max_tables)
      send_message('get_table_names_by_filter', Get_table_names_by_filter_args, :dbname => dbname, :filter => filter, :max_tables => max_tables)
    end

    def recv_get_table_names_by_filter()
      result = receive_message(Get_table_names_by_filter_result)
      return result.success unless result.success.nil?
      raise result.o1 unless result.o1.nil?
      raise result.o2 unless result.o2.nil?
      raise result.o3 unless result.o3.nil?
      raise ::Thrift::ApplicationException.new(::Thrift::ApplicationException::MISSING_RESULT, 'get_table_names_by_filter failed: unknown result')
    end

    def alter_table(dbname, tbl_name, new_tbl)
      send_alter_table(dbname, tbl_name, new_tbl)
      recv_alter_table()
    end

    def send_alter_table(dbname, tbl_name, new_tbl)
      send_message('alter_table', Alter_table_args, :dbname => dbname, :tbl_name => tbl_name, :new_tbl => new_tbl)
    end

    def recv_alter_table()
      result = receive_message(Alter_table_result)
      raise result.o1 unless result.o1.nil?
      raise result.o2 unless result.o2.nil?
      return
    end

    def alter_table_with_environment_context(dbname, tbl_name, new_tbl, environment_context)
      send_alter_table_with_environment_context(dbname, tbl_name, new_tbl, environment_context)
      recv_alter_table_with_environment_context()
    end

    def send_alter_table_with_environment_context(dbname, tbl_name, new_tbl, environment_context)
      send_message('alter_table_with_environment_context', Alter_table_with_environment_context_args, :dbname => dbname, :tbl_name => tbl_name, :new_tbl => new_tbl, :environment_context => environment_context)
    end

    def recv_alter_table_with_environment_context()
      result = receive_message(Alter_table_with_environment_context_result)
      raise result.o1 unless result.o1.nil?
      raise result.o2 unless result.o2.nil?
      return
    end

    def alter_table_with_cascade(dbname, tbl_name, new_tbl, cascade)
      send_alter_table_with_cascade(dbname, tbl_name, new_tbl, cascade)
      recv_alter_table_with_cascade()
    end

    def send_alter_table_with_cascade(dbname, tbl_name, new_tbl, cascade)
      send_message('alter_table_with_cascade', Alter_table_with_cascade_args, :dbname => dbname, :tbl_name => tbl_name, :new_tbl => new_tbl, :cascade => cascade)
    end

    def recv_alter_table_with_cascade()
      result = receive_message(Alter_table_with_cascade_result)
      raise result.o1 unless result.o1.nil?
      raise result.o2 unless result.o2.nil?
      return
    end

    def alter_table_req(req)
      send_alter_table_req(req)
      return recv_alter_table_req()
    end

    def send_alter_table_req(req)
      send_message('alter_table_req', Alter_table_req_args, :req => req)
    end

    def recv_alter_table_req()
      result = receive_message(Alter_table_req_result)
      return result.success unless result.success.nil?
      raise result.o1 unless result.o1.nil?
      raise result.o2 unless result.o2.nil?
      raise ::Thrift::ApplicationException.new(::Thrift::ApplicationException::MISSING_RESULT, 'alter_table_req failed: unknown result')
    end

    def add_partition(new_part)
      send_add_partition(new_part)
      return recv_add_partition()
    end

    def send_add_partition(new_part)
      send_message('add_partition', Add_partition_args, :new_part => new_part)
    end

    def recv_add_partition()
      result = receive_message(Add_partition_result)
      return result.success unless result.success.nil?
      raise result.o1 unless result.o1.nil?
      raise result.o2 unless result.o2.nil?
      raise result.o3 unless result.o3.nil?
      raise ::Thrift::ApplicationException.new(::Thrift::ApplicationException::MISSING_RESULT, 'add_partition failed: unknown result')
    end

    def add_partition_with_environment_context(new_part, environment_context)
      send_add_partition_with_environment_context(new_part, environment_context)
      return recv_add_partition_with_environment_context()
    end

    def send_add_partition_with_environment_context(new_part, environment_context)
      send_message('add_partition_with_environment_context', Add_partition_with_environment_context_args, :new_part => new_part, :environment_context => environment_context)
    end

    def recv_add_partition_with_environment_context()
      result = receive_message(Add_partition_with_environment_context_result)
      return result.success unless result.success.nil?
      raise result.o1 unless result.o1.nil?
      raise result.o2 unless result.o2.nil?
      raise result.o3 unless result.o3.nil?
      raise ::Thrift::ApplicationException.new(::Thrift::ApplicationException::MISSING_RESULT, 'add_partition_with_environment_context failed: unknown result')
    end

    def add_partitions(new_parts)
      send_add_partitions(new_parts)
      return recv_add_partitions()
    end

    def send_add_partitions(new_parts)
      send_message('add_partitions', Add_partitions_args, :new_parts => new_parts)
    end

    def recv_add_partitions()
      result = receive_message(Add_partitions_result)
      return result.success unless result.success.nil?
      raise result.o1 unless result.o1.nil?
      raise result.o2 unless result.o2.nil?
      raise result.o3 unless result.o3.nil?
      raise ::Thrift::ApplicationException.new(::Thrift::ApplicationException::MISSING_RESULT, 'add_partitions failed: unknown result')
    end

    def add_partitions_pspec(new_parts)
      send_add_partitions_pspec(new_parts)
      return recv_add_partitions_pspec()
    end

    def send_add_partitions_pspec(new_parts)
      send_message('add_partitions_pspec', Add_partitions_pspec_args, :new_parts => new_parts)
    end

    def recv_add_partitions_pspec()
      result = receive_message(Add_partitions_pspec_result)
      return result.success unless result.success.nil?
      raise result.o1 unless result.o1.nil?
      raise result.o2 unless result.o2.nil?
      raise result.o3 unless result.o3.nil?
      raise ::Thrift::ApplicationException.new(::Thrift::ApplicationException::MISSING_RESULT, 'add_partitions_pspec failed: unknown result')
    end

    def append_partition(db_name, tbl_name, part_vals)
      send_append_partition(db_name, tbl_name, part_vals)
      return recv_append_partition()
    end

    def send_append_partition(db_name, tbl_name, part_vals)
      send_message('append_partition', Append_partition_args, :db_name => db_name, :tbl_name => tbl_name, :part_vals => part_vals)
    end

    def recv_append_partition()
      result = receive_message(Append_partition_result)
      return result.success unless result.success.nil?
      raise result.o1 unless result.o1.nil?
      raise result.o2 unless result.o2.nil?
      raise result.o3 unless result.o3.nil?
      raise ::Thrift::ApplicationException.new(::Thrift::ApplicationException::MISSING_RESULT, 'append_partition failed: unknown result')
    end

    def add_partitions_req(request)
      send_add_partitions_req(request)
      return recv_add_partitions_req()
    end

    def send_add_partitions_req(request)
      send_message('add_partitions_req', Add_partitions_req_args, :request => request)
    end

    def recv_add_partitions_req()
      result = receive_message(Add_partitions_req_result)
      return result.success unless result.success.nil?
      raise result.o1 unless result.o1.nil?
      raise result.o2 unless result.o2.nil?
      raise result.o3 unless result.o3.nil?
      raise ::Thrift::ApplicationException.new(::Thrift::ApplicationException::MISSING_RESULT, 'add_partitions_req failed: unknown result')
    end

    def append_partition_with_environment_context(db_name, tbl_name, part_vals, environment_context)
      send_append_partition_with_environment_context(db_name, tbl_name, part_vals, environment_context)
      return recv_append_partition_with_environment_context()
    end

    def send_append_partition_with_environment_context(db_name, tbl_name, part_vals, environment_context)
      send_message('append_partition_with_environment_context', Append_partition_with_environment_context_args, :db_name => db_name, :tbl_name => tbl_name, :part_vals => part_vals, :environment_context => environment_context)
    end

    def recv_append_partition_with_environment_context()
      result = receive_message(Append_partition_with_environment_context_result)
      return result.success unless result.success.nil?
      raise result.o1 unless result.o1.nil?
      raise result.o2 unless result.o2.nil?
      raise result.o3 unless result.o3.nil?
      raise ::Thrift::ApplicationException.new(::Thrift::ApplicationException::MISSING_RESULT, 'append_partition_with_environment_context failed: unknown result')
    end

    def append_partition_by_name(db_name, tbl_name, part_name)
      send_append_partition_by_name(db_name, tbl_name, part_name)
      return recv_append_partition_by_name()
    end

    def send_append_partition_by_name(db_name, tbl_name, part_name)
      send_message('append_partition_by_name', Append_partition_by_name_args, :db_name => db_name, :tbl_name => tbl_name, :part_name => part_name)
    end

    def recv_append_partition_by_name()
      result = receive_message(Append_partition_by_name_result)
      return result.success unless result.success.nil?
      raise result.o1 unless result.o1.nil?
      raise result.o2 unless result.o2.nil?
      raise result.o3 unless result.o3.nil?
      raise ::Thrift::ApplicationException.new(::Thrift::ApplicationException::MISSING_RESULT, 'append_partition_by_name failed: unknown result')
    end

    def append_partition_by_name_with_environment_context(db_name, tbl_name, part_name, environment_context)
      send_append_partition_by_name_with_environment_context(db_name, tbl_name, part_name, environment_context)
      return recv_append_partition_by_name_with_environment_context()
    end

    def send_append_partition_by_name_with_environment_context(db_name, tbl_name, part_name, environment_context)
      send_message('append_partition_by_name_with_environment_context', Append_partition_by_name_with_environment_context_args, :db_name => db_name, :tbl_name => tbl_name, :part_name => part_name, :environment_context => environment_context)
    end

    def recv_append_partition_by_name_with_environment_context()
      result = receive_message(Append_partition_by_name_with_environment_context_result)
      return result.success unless result.success.nil?
      raise result.o1 unless result.o1.nil?
      raise result.o2 unless result.o2.nil?
      raise result.o3 unless result.o3.nil?
      raise ::Thrift::ApplicationException.new(::Thrift::ApplicationException::MISSING_RESULT, 'append_partition_by_name_with_environment_context failed: unknown result')
    end

    def drop_partition(db_name, tbl_name, part_vals, deleteData)
      send_drop_partition(db_name, tbl_name, part_vals, deleteData)
      return recv_drop_partition()
    end

    def send_drop_partition(db_name, tbl_name, part_vals, deleteData)
      send_message('drop_partition', Drop_partition_args, :db_name => db_name, :tbl_name => tbl_name, :part_vals => part_vals, :deleteData => deleteData)
    end

    def recv_drop_partition()
      result = receive_message(Drop_partition_result)
      return result.success unless result.success.nil?
      raise result.o1 unless result.o1.nil?
      raise result.o2 unless result.o2.nil?
      raise ::Thrift::ApplicationException.new(::Thrift::ApplicationException::MISSING_RESULT, 'drop_partition failed: unknown result')
    end

    def drop_partition_with_environment_context(db_name, tbl_name, part_vals, deleteData, environment_context)
      send_drop_partition_with_environment_context(db_name, tbl_name, part_vals, deleteData, environment_context)
      return recv_drop_partition_with_environment_context()
    end

    def send_drop_partition_with_environment_context(db_name, tbl_name, part_vals, deleteData, environment_context)
      send_message('drop_partition_with_environment_context', Drop_partition_with_environment_context_args, :db_name => db_name, :tbl_name => tbl_name, :part_vals => part_vals, :deleteData => deleteData, :environment_context => environment_context)
    end

    def recv_drop_partition_with_environment_context()
      result = receive_message(Drop_partition_with_environment_context_result)
      return result.success unless result.success.nil?
      raise result.o1 unless result.o1.nil?
      raise result.o2 unless result.o2.nil?
      raise ::Thrift::ApplicationException.new(::Thrift::ApplicationException::MISSING_RESULT, 'drop_partition_with_environment_context failed: unknown result')
    end

    def drop_partition_by_name(db_name, tbl_name, part_name, deleteData)
      send_drop_partition_by_name(db_name, tbl_name, part_name, deleteData)
      return recv_drop_partition_by_name()
    end

    def send_drop_partition_by_name(db_name, tbl_name, part_name, deleteData)
      send_message('drop_partition_by_name', Drop_partition_by_name_args, :db_name => db_name, :tbl_name => tbl_name, :part_name => part_name, :deleteData => deleteData)
    end

    def recv_drop_partition_by_name()
      result = receive_message(Drop_partition_by_name_result)
      return result.success unless result.success.nil?
      raise result.o1 unless result.o1.nil?
      raise result.o2 unless result.o2.nil?
      raise ::Thrift::ApplicationException.new(::Thrift::ApplicationException::MISSING_RESULT, 'drop_partition_by_name failed: unknown result')
    end

    def drop_partition_by_name_with_environment_context(db_name, tbl_name, part_name, deleteData, environment_context)
      send_drop_partition_by_name_with_environment_context(db_name, tbl_name, part_name, deleteData, environment_context)
      return recv_drop_partition_by_name_with_environment_context()
    end

    def send_drop_partition_by_name_with_environment_context(db_name, tbl_name, part_name, deleteData, environment_context)
      send_message('drop_partition_by_name_with_environment_context', Drop_partition_by_name_with_environment_context_args, :db_name => db_name, :tbl_name => tbl_name, :part_name => part_name, :deleteData => deleteData, :environment_context => environment_context)
    end

    def recv_drop_partition_by_name_with_environment_context()
      result = receive_message(Drop_partition_by_name_with_environment_context_result)
      return result.success unless result.success.nil?
      raise result.o1 unless result.o1.nil?
      raise result.o2 unless result.o2.nil?
      raise ::Thrift::ApplicationException.new(::Thrift::ApplicationException::MISSING_RESULT, 'drop_partition_by_name_with_environment_context failed: unknown result')
    end

    def drop_partitions_req(req)
      send_drop_partitions_req(req)
      return recv_drop_partitions_req()
    end

    def send_drop_partitions_req(req)
      send_message('drop_partitions_req', Drop_partitions_req_args, :req => req)
    end

    def recv_drop_partitions_req()
      result = receive_message(Drop_partitions_req_result)
      return result.success unless result.success.nil?
      raise result.o1 unless result.o1.nil?
      raise result.o2 unless result.o2.nil?
      raise ::Thrift::ApplicationException.new(::Thrift::ApplicationException::MISSING_RESULT, 'drop_partitions_req failed: unknown result')
    end

    def get_partition(db_name, tbl_name, part_vals)
      send_get_partition(db_name, tbl_name, part_vals)
      return recv_get_partition()
    end

    def send_get_partition(db_name, tbl_name, part_vals)
      send_message('get_partition', Get_partition_args, :db_name => db_name, :tbl_name => tbl_name, :part_vals => part_vals)
    end

    def recv_get_partition()
      result = receive_message(Get_partition_result)
      return result.success unless result.success.nil?
      raise result.o1 unless result.o1.nil?
      raise result.o2 unless result.o2.nil?
      raise ::Thrift::ApplicationException.new(::Thrift::ApplicationException::MISSING_RESULT, 'get_partition failed: unknown result')
    end

    def get_partition_req(req)
      send_get_partition_req(req)
      return recv_get_partition_req()
    end

    def send_get_partition_req(req)
      send_message('get_partition_req', Get_partition_req_args, :req => req)
    end

    def recv_get_partition_req()
      result = receive_message(Get_partition_req_result)
      return result.success unless result.success.nil?
      raise result.o1 unless result.o1.nil?
      raise result.o2 unless result.o2.nil?
      raise ::Thrift::ApplicationException.new(::Thrift::ApplicationException::MISSING_RESULT, 'get_partition_req failed: unknown result')
    end

    def exchange_partition(partitionSpecs, source_db, source_table_name, dest_db, dest_table_name)
      send_exchange_partition(partitionSpecs, source_db, source_table_name, dest_db, dest_table_name)
      return recv_exchange_partition()
    end

    def send_exchange_partition(partitionSpecs, source_db, source_table_name, dest_db, dest_table_name)
      send_message('exchange_partition', Exchange_partition_args, :partitionSpecs => partitionSpecs, :source_db => source_db, :source_table_name => source_table_name, :dest_db => dest_db, :dest_table_name => dest_table_name)
    end

    def recv_exchange_partition()
      result = receive_message(Exchange_partition_result)
      return result.success unless result.success.nil?
      raise result.o1 unless result.o1.nil?
      raise result.o2 unless result.o2.nil?
      raise result.o3 unless result.o3.nil?
      raise result.o4 unless result.o4.nil?
      raise ::Thrift::ApplicationException.new(::Thrift::ApplicationException::MISSING_RESULT, 'exchange_partition failed: unknown result')
    end

    def exchange_partitions(partitionSpecs, source_db, source_table_name, dest_db, dest_table_name)
      send_exchange_partitions(partitionSpecs, source_db, source_table_name, dest_db, dest_table_name)
      return recv_exchange_partitions()
    end

    def send_exchange_partitions(partitionSpecs, source_db, source_table_name, dest_db, dest_table_name)
      send_message('exchange_partitions', Exchange_partitions_args, :partitionSpecs => partitionSpecs, :source_db => source_db, :source_table_name => source_table_name, :dest_db => dest_db, :dest_table_name => dest_table_name)
    end

    def recv_exchange_partitions()
      result = receive_message(Exchange_partitions_result)
      return result.success unless result.success.nil?
      raise result.o1 unless result.o1.nil?
      raise result.o2 unless result.o2.nil?
      raise result.o3 unless result.o3.nil?
      raise result.o4 unless result.o4.nil?
      raise ::Thrift::ApplicationException.new(::Thrift::ApplicationException::MISSING_RESULT, 'exchange_partitions failed: unknown result')
    end

    def get_partition_with_auth(db_name, tbl_name, part_vals, user_name, group_names)
      send_get_partition_with_auth(db_name, tbl_name, part_vals, user_name, group_names)
      return recv_get_partition_with_auth()
    end

    def send_get_partition_with_auth(db_name, tbl_name, part_vals, user_name, group_names)
      send_message('get_partition_with_auth', Get_partition_with_auth_args, :db_name => db_name, :tbl_name => tbl_name, :part_vals => part_vals, :user_name => user_name, :group_names => group_names)
    end

    def recv_get_partition_with_auth()
      result = receive_message(Get_partition_with_auth_result)
      return result.success unless result.success.nil?
      raise result.o1 unless result.o1.nil?
      raise result.o2 unless result.o2.nil?
      raise ::Thrift::ApplicationException.new(::Thrift::ApplicationException::MISSING_RESULT, 'get_partition_with_auth failed: unknown result')
    end

    def get_partition_by_name(db_name, tbl_name, part_name)
      send_get_partition_by_name(db_name, tbl_name, part_name)
      return recv_get_partition_by_name()
    end

    def send_get_partition_by_name(db_name, tbl_name, part_name)
      send_message('get_partition_by_name', Get_partition_by_name_args, :db_name => db_name, :tbl_name => tbl_name, :part_name => part_name)
    end

    def recv_get_partition_by_name()
      result = receive_message(Get_partition_by_name_result)
      return result.success unless result.success.nil?
      raise result.o1 unless result.o1.nil?
      raise result.o2 unless result.o2.nil?
      raise ::Thrift::ApplicationException.new(::Thrift::ApplicationException::MISSING_RESULT, 'get_partition_by_name failed: unknown result')
    end

    def get_partitions(db_name, tbl_name, max_parts)
      send_get_partitions(db_name, tbl_name, max_parts)
      return recv_get_partitions()
    end

    def send_get_partitions(db_name, tbl_name, max_parts)
      send_message('get_partitions', Get_partitions_args, :db_name => db_name, :tbl_name => tbl_name, :max_parts => max_parts)
    end

    def recv_get_partitions()
      result = receive_message(Get_partitions_result)
      return result.success unless result.success.nil?
      raise result.o1 unless result.o1.nil?
      raise result.o2 unless result.o2.nil?
      raise ::Thrift::ApplicationException.new(::Thrift::ApplicationException::MISSING_RESULT, 'get_partitions failed: unknown result')
    end

    def get_partitions_req(req)
      send_get_partitions_req(req)
      return recv_get_partitions_req()
    end

    def send_get_partitions_req(req)
      send_message('get_partitions_req', Get_partitions_req_args, :req => req)
    end

    def recv_get_partitions_req()
      result = receive_message(Get_partitions_req_result)
      return result.success unless result.success.nil?
      raise result.o1 unless result.o1.nil?
      raise result.o2 unless result.o2.nil?
      raise ::Thrift::ApplicationException.new(::Thrift::ApplicationException::MISSING_RESULT, 'get_partitions_req failed: unknown result')
    end

    def get_partitions_with_auth(db_name, tbl_name, max_parts, user_name, group_names)
      send_get_partitions_with_auth(db_name, tbl_name, max_parts, user_name, group_names)
      return recv_get_partitions_with_auth()
    end

    def send_get_partitions_with_auth(db_name, tbl_name, max_parts, user_name, group_names)
      send_message('get_partitions_with_auth', Get_partitions_with_auth_args, :db_name => db_name, :tbl_name => tbl_name, :max_parts => max_parts, :user_name => user_name, :group_names => group_names)
    end

    def recv_get_partitions_with_auth()
      result = receive_message(Get_partitions_with_auth_result)
      return result.success unless result.success.nil?
      raise result.o1 unless result.o1.nil?
      raise result.o2 unless result.o2.nil?
      raise ::Thrift::ApplicationException.new(::Thrift::ApplicationException::MISSING_RESULT, 'get_partitions_with_auth failed: unknown result')
    end

    def get_partitions_pspec(db_name, tbl_name, max_parts)
      send_get_partitions_pspec(db_name, tbl_name, max_parts)
      return recv_get_partitions_pspec()
    end

    def send_get_partitions_pspec(db_name, tbl_name, max_parts)
      send_message('get_partitions_pspec', Get_partitions_pspec_args, :db_name => db_name, :tbl_name => tbl_name, :max_parts => max_parts)
    end

    def recv_get_partitions_pspec()
      result = receive_message(Get_partitions_pspec_result)
      return result.success unless result.success.nil?
      raise result.o1 unless result.o1.nil?
      raise result.o2 unless result.o2.nil?
      raise ::Thrift::ApplicationException.new(::Thrift::ApplicationException::MISSING_RESULT, 'get_partitions_pspec failed: unknown result')
    end

    def get_partition_names(db_name, tbl_name, max_parts)
      send_get_partition_names(db_name, tbl_name, max_parts)
      return recv_get_partition_names()
    end

    def send_get_partition_names(db_name, tbl_name, max_parts)
      send_message('get_partition_names', Get_partition_names_args, :db_name => db_name, :tbl_name => tbl_name, :max_parts => max_parts)
    end

    def recv_get_partition_names()
      result = receive_message(Get_partition_names_result)
      return result.success unless result.success.nil?
      raise result.o1 unless result.o1.nil?
      raise result.o2 unless result.o2.nil?
      raise ::Thrift::ApplicationException.new(::Thrift::ApplicationException::MISSING_RESULT, 'get_partition_names failed: unknown result')
    end

    def get_partition_values(request)
      send_get_partition_values(request)
      return recv_get_partition_values()
    end

    def send_get_partition_values(request)
      send_message('get_partition_values', Get_partition_values_args, :request => request)
    end

    def recv_get_partition_values()
      result = receive_message(Get_partition_values_result)
      return result.success unless result.success.nil?
      raise result.o1 unless result.o1.nil?
      raise result.o2 unless result.o2.nil?
      raise ::Thrift::ApplicationException.new(::Thrift::ApplicationException::MISSING_RESULT, 'get_partition_values failed: unknown result')
    end

    def get_partitions_ps(db_name, tbl_name, part_vals, max_parts)
      send_get_partitions_ps(db_name, tbl_name, part_vals, max_parts)
      return recv_get_partitions_ps()
    end

    def send_get_partitions_ps(db_name, tbl_name, part_vals, max_parts)
      send_message('get_partitions_ps', Get_partitions_ps_args, :db_name => db_name, :tbl_name => tbl_name, :part_vals => part_vals, :max_parts => max_parts)
    end

    def recv_get_partitions_ps()
      result = receive_message(Get_partitions_ps_result)
      return result.success unless result.success.nil?
      raise result.o1 unless result.o1.nil?
      raise result.o2 unless result.o2.nil?
      raise ::Thrift::ApplicationException.new(::Thrift::ApplicationException::MISSING_RESULT, 'get_partitions_ps failed: unknown result')
    end

    def get_partitions_ps_with_auth(db_name, tbl_name, part_vals, max_parts, user_name, group_names)
      send_get_partitions_ps_with_auth(db_name, tbl_name, part_vals, max_parts, user_name, group_names)
      return recv_get_partitions_ps_with_auth()
    end

    def send_get_partitions_ps_with_auth(db_name, tbl_name, part_vals, max_parts, user_name, group_names)
      send_message('get_partitions_ps_with_auth', Get_partitions_ps_with_auth_args, :db_name => db_name, :tbl_name => tbl_name, :part_vals => part_vals, :max_parts => max_parts, :user_name => user_name, :group_names => group_names)
    end

    def recv_get_partitions_ps_with_auth()
      result = receive_message(Get_partitions_ps_with_auth_result)
      return result.success unless result.success.nil?
      raise result.o1 unless result.o1.nil?
      raise result.o2 unless result.o2.nil?
      raise ::Thrift::ApplicationException.new(::Thrift::ApplicationException::MISSING_RESULT, 'get_partitions_ps_with_auth failed: unknown result')
    end

    def get_partitions_ps_with_auth_req(req)
      send_get_partitions_ps_with_auth_req(req)
      return recv_get_partitions_ps_with_auth_req()
    end

    def send_get_partitions_ps_with_auth_req(req)
      send_message('get_partitions_ps_with_auth_req', Get_partitions_ps_with_auth_req_args, :req => req)
    end

    def recv_get_partitions_ps_with_auth_req()
      result = receive_message(Get_partitions_ps_with_auth_req_result)
      return result.success unless result.success.nil?
      raise result.o1 unless result.o1.nil?
      raise result.o2 unless result.o2.nil?
      raise ::Thrift::ApplicationException.new(::Thrift::ApplicationException::MISSING_RESULT, 'get_partitions_ps_with_auth_req failed: unknown result')
    end

    def get_partition_names_ps(db_name, tbl_name, part_vals, max_parts)
      send_get_partition_names_ps(db_name, tbl_name, part_vals, max_parts)
      return recv_get_partition_names_ps()
    end

    def send_get_partition_names_ps(db_name, tbl_name, part_vals, max_parts)
      send_message('get_partition_names_ps', Get_partition_names_ps_args, :db_name => db_name, :tbl_name => tbl_name, :part_vals => part_vals, :max_parts => max_parts)
    end

    def recv_get_partition_names_ps()
      result = receive_message(Get_partition_names_ps_result)
      return result.success unless result.success.nil?
      raise result.o1 unless result.o1.nil?
      raise result.o2 unless result.o2.nil?
      raise ::Thrift::ApplicationException.new(::Thrift::ApplicationException::MISSING_RESULT, 'get_partition_names_ps failed: unknown result')
    end

    def get_partition_names_ps_req(req)
      send_get_partition_names_ps_req(req)
      return recv_get_partition_names_ps_req()
    end

    def send_get_partition_names_ps_req(req)
      send_message('get_partition_names_ps_req', Get_partition_names_ps_req_args, :req => req)
    end

    def recv_get_partition_names_ps_req()
      result = receive_message(Get_partition_names_ps_req_result)
      return result.success unless result.success.nil?
      raise result.o1 unless result.o1.nil?
      raise result.o2 unless result.o2.nil?
      raise ::Thrift::ApplicationException.new(::Thrift::ApplicationException::MISSING_RESULT, 'get_partition_names_ps_req failed: unknown result')
    end

    def get_partition_names_req(req)
      send_get_partition_names_req(req)
      return recv_get_partition_names_req()
    end

    def send_get_partition_names_req(req)
      send_message('get_partition_names_req', Get_partition_names_req_args, :req => req)
    end

    def recv_get_partition_names_req()
      result = receive_message(Get_partition_names_req_result)
      return result.success unless result.success.nil?
      raise result.o1 unless result.o1.nil?
      raise result.o2 unless result.o2.nil?
      raise ::Thrift::ApplicationException.new(::Thrift::ApplicationException::MISSING_RESULT, 'get_partition_names_req failed: unknown result')
    end

    def get_partitions_by_filter(db_name, tbl_name, filter, max_parts)
      send_get_partitions_by_filter(db_name, tbl_name, filter, max_parts)
      return recv_get_partitions_by_filter()
    end

    def send_get_partitions_by_filter(db_name, tbl_name, filter, max_parts)
      send_message('get_partitions_by_filter', Get_partitions_by_filter_args, :db_name => db_name, :tbl_name => tbl_name, :filter => filter, :max_parts => max_parts)
    end

    def recv_get_partitions_by_filter()
      result = receive_message(Get_partitions_by_filter_result)
      return result.success unless result.success.nil?
      raise result.o1 unless result.o1.nil?
      raise result.o2 unless result.o2.nil?
      raise ::Thrift::ApplicationException.new(::Thrift::ApplicationException::MISSING_RESULT, 'get_partitions_by_filter failed: unknown result')
    end

    def get_part_specs_by_filter(db_name, tbl_name, filter, max_parts)
      send_get_part_specs_by_filter(db_name, tbl_name, filter, max_parts)
      return recv_get_part_specs_by_filter()
    end

    def send_get_part_specs_by_filter(db_name, tbl_name, filter, max_parts)
      send_message('get_part_specs_by_filter', Get_part_specs_by_filter_args, :db_name => db_name, :tbl_name => tbl_name, :filter => filter, :max_parts => max_parts)
    end

    def recv_get_part_specs_by_filter()
      result = receive_message(Get_part_specs_by_filter_result)
      return result.success unless result.success.nil?
      raise result.o1 unless result.o1.nil?
      raise result.o2 unless result.o2.nil?
      raise ::Thrift::ApplicationException.new(::Thrift::ApplicationException::MISSING_RESULT, 'get_part_specs_by_filter failed: unknown result')
    end

    def get_partitions_by_expr(req)
      send_get_partitions_by_expr(req)
      return recv_get_partitions_by_expr()
    end

    def send_get_partitions_by_expr(req)
      send_message('get_partitions_by_expr', Get_partitions_by_expr_args, :req => req)
    end

    def recv_get_partitions_by_expr()
      result = receive_message(Get_partitions_by_expr_result)
      return result.success unless result.success.nil?
      raise result.o1 unless result.o1.nil?
      raise result.o2 unless result.o2.nil?
      raise ::Thrift::ApplicationException.new(::Thrift::ApplicationException::MISSING_RESULT, 'get_partitions_by_expr failed: unknown result')
    end

    def get_partitions_spec_by_expr(req)
      send_get_partitions_spec_by_expr(req)
      return recv_get_partitions_spec_by_expr()
    end

    def send_get_partitions_spec_by_expr(req)
      send_message('get_partitions_spec_by_expr', Get_partitions_spec_by_expr_args, :req => req)
    end

    def recv_get_partitions_spec_by_expr()
      result = receive_message(Get_partitions_spec_by_expr_result)
      return result.success unless result.success.nil?
      raise result.o1 unless result.o1.nil?
      raise result.o2 unless result.o2.nil?
      raise ::Thrift::ApplicationException.new(::Thrift::ApplicationException::MISSING_RESULT, 'get_partitions_spec_by_expr failed: unknown result')
    end

    def get_num_partitions_by_filter(db_name, tbl_name, filter)
      send_get_num_partitions_by_filter(db_name, tbl_name, filter)
      return recv_get_num_partitions_by_filter()
    end

    def send_get_num_partitions_by_filter(db_name, tbl_name, filter)
      send_message('get_num_partitions_by_filter', Get_num_partitions_by_filter_args, :db_name => db_name, :tbl_name => tbl_name, :filter => filter)
    end

    def recv_get_num_partitions_by_filter()
      result = receive_message(Get_num_partitions_by_filter_result)
      return result.success unless result.success.nil?
      raise result.o1 unless result.o1.nil?
      raise result.o2 unless result.o2.nil?
      raise ::Thrift::ApplicationException.new(::Thrift::ApplicationException::MISSING_RESULT, 'get_num_partitions_by_filter failed: unknown result')
    end

    def get_partitions_by_names(db_name, tbl_name, names)
      send_get_partitions_by_names(db_name, tbl_name, names)
      return recv_get_partitions_by_names()
    end

    def send_get_partitions_by_names(db_name, tbl_name, names)
      send_message('get_partitions_by_names', Get_partitions_by_names_args, :db_name => db_name, :tbl_name => tbl_name, :names => names)
    end

    def recv_get_partitions_by_names()
      result = receive_message(Get_partitions_by_names_result)
      return result.success unless result.success.nil?
      raise result.o1 unless result.o1.nil?
      raise result.o2 unless result.o2.nil?
      raise ::Thrift::ApplicationException.new(::Thrift::ApplicationException::MISSING_RESULT, 'get_partitions_by_names failed: unknown result')
    end

    def get_partitions_by_names_req(req)
      send_get_partitions_by_names_req(req)
      return recv_get_partitions_by_names_req()
    end

    def send_get_partitions_by_names_req(req)
      send_message('get_partitions_by_names_req', Get_partitions_by_names_req_args, :req => req)
    end

    def recv_get_partitions_by_names_req()
      result = receive_message(Get_partitions_by_names_req_result)
      return result.success unless result.success.nil?
      raise result.o1 unless result.o1.nil?
      raise result.o2 unless result.o2.nil?
      raise ::Thrift::ApplicationException.new(::Thrift::ApplicationException::MISSING_RESULT, 'get_partitions_by_names_req failed: unknown result')
    end

    def alter_partition(db_name, tbl_name, new_part)
      send_alter_partition(db_name, tbl_name, new_part)
      recv_alter_partition()
    end

    def send_alter_partition(db_name, tbl_name, new_part)
      send_message('alter_partition', Alter_partition_args, :db_name => db_name, :tbl_name => tbl_name, :new_part => new_part)
    end

    def recv_alter_partition()
      result = receive_message(Alter_partition_result)
      raise result.o1 unless result.o1.nil?
      raise result.o2 unless result.o2.nil?
      return
    end

    def alter_partitions(db_name, tbl_name, new_parts)
      send_alter_partitions(db_name, tbl_name, new_parts)
      recv_alter_partitions()
    end

    def send_alter_partitions(db_name, tbl_name, new_parts)
      send_message('alter_partitions', Alter_partitions_args, :db_name => db_name, :tbl_name => tbl_name, :new_parts => new_parts)
    end

    def recv_alter_partitions()
      result = receive_message(Alter_partitions_result)
      raise result.o1 unless result.o1.nil?
      raise result.o2 unless result.o2.nil?
      return
    end

    def alter_partitions_with_environment_context(db_name, tbl_name, new_parts, environment_context)
      send_alter_partitions_with_environment_context(db_name, tbl_name, new_parts, environment_context)
      recv_alter_partitions_with_environment_context()
    end

    def send_alter_partitions_with_environment_context(db_name, tbl_name, new_parts, environment_context)
      send_message('alter_partitions_with_environment_context', Alter_partitions_with_environment_context_args, :db_name => db_name, :tbl_name => tbl_name, :new_parts => new_parts, :environment_context => environment_context)
    end

    def recv_alter_partitions_with_environment_context()
      result = receive_message(Alter_partitions_with_environment_context_result)
      raise result.o1 unless result.o1.nil?
      raise result.o2 unless result.o2.nil?
      return
    end

    def alter_partitions_req(req)
      send_alter_partitions_req(req)
      return recv_alter_partitions_req()
    end

    def send_alter_partitions_req(req)
      send_message('alter_partitions_req', Alter_partitions_req_args, :req => req)
    end

    def recv_alter_partitions_req()
      result = receive_message(Alter_partitions_req_result)
      return result.success unless result.success.nil?
      raise result.o1 unless result.o1.nil?
      raise result.o2 unless result.o2.nil?
      raise ::Thrift::ApplicationException.new(::Thrift::ApplicationException::MISSING_RESULT, 'alter_partitions_req failed: unknown result')
    end

    def alter_partition_with_environment_context(db_name, tbl_name, new_part, environment_context)
      send_alter_partition_with_environment_context(db_name, tbl_name, new_part, environment_context)
      recv_alter_partition_with_environment_context()
    end

    def send_alter_partition_with_environment_context(db_name, tbl_name, new_part, environment_context)
      send_message('alter_partition_with_environment_context', Alter_partition_with_environment_context_args, :db_name => db_name, :tbl_name => tbl_name, :new_part => new_part, :environment_context => environment_context)
    end

    def recv_alter_partition_with_environment_context()
      result = receive_message(Alter_partition_with_environment_context_result)
      raise result.o1 unless result.o1.nil?
      raise result.o2 unless result.o2.nil?
      return
    end

    def rename_partition(db_name, tbl_name, part_vals, new_part)
      send_rename_partition(db_name, tbl_name, part_vals, new_part)
      recv_rename_partition()
    end

    def send_rename_partition(db_name, tbl_name, part_vals, new_part)
      send_message('rename_partition', Rename_partition_args, :db_name => db_name, :tbl_name => tbl_name, :part_vals => part_vals, :new_part => new_part)
    end

    def recv_rename_partition()
      result = receive_message(Rename_partition_result)
      raise result.o1 unless result.o1.nil?
      raise result.o2 unless result.o2.nil?
      return
    end

    def rename_partition_req(req)
      send_rename_partition_req(req)
      return recv_rename_partition_req()
    end

    def send_rename_partition_req(req)
      send_message('rename_partition_req', Rename_partition_req_args, :req => req)
    end

    def recv_rename_partition_req()
      result = receive_message(Rename_partition_req_result)
      return result.success unless result.success.nil?
      raise result.o1 unless result.o1.nil?
      raise result.o2 unless result.o2.nil?
      raise ::Thrift::ApplicationException.new(::Thrift::ApplicationException::MISSING_RESULT, 'rename_partition_req failed: unknown result')
    end

    def partition_name_has_valid_characters(part_vals, throw_exception)
      send_partition_name_has_valid_characters(part_vals, throw_exception)
      return recv_partition_name_has_valid_characters()
    end

    def send_partition_name_has_valid_characters(part_vals, throw_exception)
      send_message('partition_name_has_valid_characters', Partition_name_has_valid_characters_args, :part_vals => part_vals, :throw_exception => throw_exception)
    end

    def recv_partition_name_has_valid_characters()
      result = receive_message(Partition_name_has_valid_characters_result)
      return result.success unless result.success.nil?
      raise result.o1 unless result.o1.nil?
      raise ::Thrift::ApplicationException.new(::Thrift::ApplicationException::MISSING_RESULT, 'partition_name_has_valid_characters failed: unknown result')
    end

    def get_config_value(name, defaultValue)
      send_get_config_value(name, defaultValue)
      return recv_get_config_value()
    end

    def send_get_config_value(name, defaultValue)
      send_message('get_config_value', Get_config_value_args, :name => name, :defaultValue => defaultValue)
    end

    def recv_get_config_value()
      result = receive_message(Get_config_value_result)
      return result.success unless result.success.nil?
      raise result.o1 unless result.o1.nil?
      raise ::Thrift::ApplicationException.new(::Thrift::ApplicationException::MISSING_RESULT, 'get_config_value failed: unknown result')
    end

    def partition_name_to_vals(part_name)
      send_partition_name_to_vals(part_name)
      return recv_partition_name_to_vals()
    end

    def send_partition_name_to_vals(part_name)
      send_message('partition_name_to_vals', Partition_name_to_vals_args, :part_name => part_name)
    end

    def recv_partition_name_to_vals()
      result = receive_message(Partition_name_to_vals_result)
      return result.success unless result.success.nil?
      raise result.o1 unless result.o1.nil?
      raise ::Thrift::ApplicationException.new(::Thrift::ApplicationException::MISSING_RESULT, 'partition_name_to_vals failed: unknown result')
    end

    def partition_name_to_spec(part_name)
      send_partition_name_to_spec(part_name)
      return recv_partition_name_to_spec()
    end

    def send_partition_name_to_spec(part_name)
      send_message('partition_name_to_spec', Partition_name_to_spec_args, :part_name => part_name)
    end

    def recv_partition_name_to_spec()
      result = receive_message(Partition_name_to_spec_result)
      return result.success unless result.success.nil?
      raise result.o1 unless result.o1.nil?
      raise ::Thrift::ApplicationException.new(::Thrift::ApplicationException::MISSING_RESULT, 'partition_name_to_spec failed: unknown result')
    end

    def markPartitionForEvent(db_name, tbl_name, part_vals, eventType)
      send_markPartitionForEvent(db_name, tbl_name, part_vals, eventType)
      recv_markPartitionForEvent()
    end

    def send_markPartitionForEvent(db_name, tbl_name, part_vals, eventType)
      send_message('markPartitionForEvent', MarkPartitionForEvent_args, :db_name => db_name, :tbl_name => tbl_name, :part_vals => part_vals, :eventType => eventType)
    end

    def recv_markPartitionForEvent()
      result = receive_message(MarkPartitionForEvent_result)
      raise result.o1 unless result.o1.nil?
      raise result.o2 unless result.o2.nil?
      raise result.o3 unless result.o3.nil?
      raise result.o4 unless result.o4.nil?
      raise result.o5 unless result.o5.nil?
      raise result.o6 unless result.o6.nil?
      return
    end

    def isPartitionMarkedForEvent(db_name, tbl_name, part_vals, eventType)
      send_isPartitionMarkedForEvent(db_name, tbl_name, part_vals, eventType)
      return recv_isPartitionMarkedForEvent()
    end

    def send_isPartitionMarkedForEvent(db_name, tbl_name, part_vals, eventType)
      send_message('isPartitionMarkedForEvent', IsPartitionMarkedForEvent_args, :db_name => db_name, :tbl_name => tbl_name, :part_vals => part_vals, :eventType => eventType)
    end

    def recv_isPartitionMarkedForEvent()
      result = receive_message(IsPartitionMarkedForEvent_result)
      return result.success unless result.success.nil?
      raise result.o1 unless result.o1.nil?
      raise result.o2 unless result.o2.nil?
      raise result.o3 unless result.o3.nil?
      raise result.o4 unless result.o4.nil?
      raise result.o5 unless result.o5.nil?
      raise result.o6 unless result.o6.nil?
      raise ::Thrift::ApplicationException.new(::Thrift::ApplicationException::MISSING_RESULT, 'isPartitionMarkedForEvent failed: unknown result')
    end

    def get_primary_keys(request)
      send_get_primary_keys(request)
      return recv_get_primary_keys()
    end

    def send_get_primary_keys(request)
      send_message('get_primary_keys', Get_primary_keys_args, :request => request)
    end

    def recv_get_primary_keys()
      result = receive_message(Get_primary_keys_result)
      return result.success unless result.success.nil?
      raise result.o1 unless result.o1.nil?
      raise result.o2 unless result.o2.nil?
      raise ::Thrift::ApplicationException.new(::Thrift::ApplicationException::MISSING_RESULT, 'get_primary_keys failed: unknown result')
    end

    def get_foreign_keys(request)
      send_get_foreign_keys(request)
      return recv_get_foreign_keys()
    end

    def send_get_foreign_keys(request)
      send_message('get_foreign_keys', Get_foreign_keys_args, :request => request)
    end

    def recv_get_foreign_keys()
      result = receive_message(Get_foreign_keys_result)
      return result.success unless result.success.nil?
      raise result.o1 unless result.o1.nil?
      raise result.o2 unless result.o2.nil?
      raise ::Thrift::ApplicationException.new(::Thrift::ApplicationException::MISSING_RESULT, 'get_foreign_keys failed: unknown result')
    end

    def get_unique_constraints(request)
      send_get_unique_constraints(request)
      return recv_get_unique_constraints()
    end

    def send_get_unique_constraints(request)
      send_message('get_unique_constraints', Get_unique_constraints_args, :request => request)
    end

    def recv_get_unique_constraints()
      result = receive_message(Get_unique_constraints_result)
      return result.success unless result.success.nil?
      raise result.o1 unless result.o1.nil?
      raise result.o2 unless result.o2.nil?
      raise ::Thrift::ApplicationException.new(::Thrift::ApplicationException::MISSING_RESULT, 'get_unique_constraints failed: unknown result')
    end

    def get_not_null_constraints(request)
      send_get_not_null_constraints(request)
      return recv_get_not_null_constraints()
    end

    def send_get_not_null_constraints(request)
      send_message('get_not_null_constraints', Get_not_null_constraints_args, :request => request)
    end

    def recv_get_not_null_constraints()
      result = receive_message(Get_not_null_constraints_result)
      return result.success unless result.success.nil?
      raise result.o1 unless result.o1.nil?
      raise result.o2 unless result.o2.nil?
      raise ::Thrift::ApplicationException.new(::Thrift::ApplicationException::MISSING_RESULT, 'get_not_null_constraints failed: unknown result')
    end

    def get_default_constraints(request)
      send_get_default_constraints(request)
      return recv_get_default_constraints()
    end

    def send_get_default_constraints(request)
      send_message('get_default_constraints', Get_default_constraints_args, :request => request)
    end

    def recv_get_default_constraints()
      result = receive_message(Get_default_constraints_result)
      return result.success unless result.success.nil?
      raise result.o1 unless result.o1.nil?
      raise result.o2 unless result.o2.nil?
      raise ::Thrift::ApplicationException.new(::Thrift::ApplicationException::MISSING_RESULT, 'get_default_constraints failed: unknown result')
    end

    def get_check_constraints(request)
      send_get_check_constraints(request)
      return recv_get_check_constraints()
    end

    def send_get_check_constraints(request)
      send_message('get_check_constraints', Get_check_constraints_args, :request => request)
    end

    def recv_get_check_constraints()
      result = receive_message(Get_check_constraints_result)
      return result.success unless result.success.nil?
      raise result.o1 unless result.o1.nil?
      raise result.o2 unless result.o2.nil?
      raise ::Thrift::ApplicationException.new(::Thrift::ApplicationException::MISSING_RESULT, 'get_check_constraints failed: unknown result')
    end

    def update_table_column_statistics(stats_obj)
      send_update_table_column_statistics(stats_obj)
      return recv_update_table_column_statistics()
    end

    def send_update_table_column_statistics(stats_obj)
      send_message('update_table_column_statistics', Update_table_column_statistics_args, :stats_obj => stats_obj)
    end

    def recv_update_table_column_statistics()
      result = receive_message(Update_table_column_statistics_result)
      return result.success unless result.success.nil?
      raise result.o1 unless result.o1.nil?
      raise result.o2 unless result.o2.nil?
      raise result.o3 unless result.o3.nil?
      raise result.o4 unless result.o4.nil?
      raise ::Thrift::ApplicationException.new(::Thrift::ApplicationException::MISSING_RESULT, 'update_table_column_statistics failed: unknown result')
    end

    def update_partition_column_statistics(stats_obj)
      send_update_partition_column_statistics(stats_obj)
      return recv_update_partition_column_statistics()
    end

    def send_update_partition_column_statistics(stats_obj)
      send_message('update_partition_column_statistics', Update_partition_column_statistics_args, :stats_obj => stats_obj)
    end

    def recv_update_partition_column_statistics()
      result = receive_message(Update_partition_column_statistics_result)
      return result.success unless result.success.nil?
      raise result.o1 unless result.o1.nil?
      raise result.o2 unless result.o2.nil?
      raise result.o3 unless result.o3.nil?
      raise result.o4 unless result.o4.nil?
      raise ::Thrift::ApplicationException.new(::Thrift::ApplicationException::MISSING_RESULT, 'update_partition_column_statistics failed: unknown result')
    end

    def update_table_column_statistics_req(req)
      send_update_table_column_statistics_req(req)
      return recv_update_table_column_statistics_req()
    end

    def send_update_table_column_statistics_req(req)
      send_message('update_table_column_statistics_req', Update_table_column_statistics_req_args, :req => req)
    end

    def recv_update_table_column_statistics_req()
      result = receive_message(Update_table_column_statistics_req_result)
      return result.success unless result.success.nil?
      raise result.o1 unless result.o1.nil?
      raise result.o2 unless result.o2.nil?
      raise result.o3 unless result.o3.nil?
      raise result.o4 unless result.o4.nil?
      raise ::Thrift::ApplicationException.new(::Thrift::ApplicationException::MISSING_RESULT, 'update_table_column_statistics_req failed: unknown result')
    end

    def update_partition_column_statistics_req(req)
      send_update_partition_column_statistics_req(req)
      return recv_update_partition_column_statistics_req()
    end

    def send_update_partition_column_statistics_req(req)
      send_message('update_partition_column_statistics_req', Update_partition_column_statistics_req_args, :req => req)
    end

    def recv_update_partition_column_statistics_req()
      result = receive_message(Update_partition_column_statistics_req_result)
      return result.success unless result.success.nil?
      raise result.o1 unless result.o1.nil?
      raise result.o2 unless result.o2.nil?
      raise result.o3 unless result.o3.nil?
      raise result.o4 unless result.o4.nil?
      raise ::Thrift::ApplicationException.new(::Thrift::ApplicationException::MISSING_RESULT, 'update_partition_column_statistics_req failed: unknown result')
    end

    def get_table_column_statistics(db_name, tbl_name, col_name)
      send_get_table_column_statistics(db_name, tbl_name, col_name)
      return recv_get_table_column_statistics()
    end

    def send_get_table_column_statistics(db_name, tbl_name, col_name)
      send_message('get_table_column_statistics', Get_table_column_statistics_args, :db_name => db_name, :tbl_name => tbl_name, :col_name => col_name)
    end

    def recv_get_table_column_statistics()
      result = receive_message(Get_table_column_statistics_result)
      return result.success unless result.success.nil?
      raise result.o1 unless result.o1.nil?
      raise result.o2 unless result.o2.nil?
      raise result.o3 unless result.o3.nil?
      raise result.o4 unless result.o4.nil?
      raise ::Thrift::ApplicationException.new(::Thrift::ApplicationException::MISSING_RESULT, 'get_table_column_statistics failed: unknown result')
    end

    def get_partition_column_statistics(db_name, tbl_name, part_name, col_name)
      send_get_partition_column_statistics(db_name, tbl_name, part_name, col_name)
      return recv_get_partition_column_statistics()
    end

    def send_get_partition_column_statistics(db_name, tbl_name, part_name, col_name)
      send_message('get_partition_column_statistics', Get_partition_column_statistics_args, :db_name => db_name, :tbl_name => tbl_name, :part_name => part_name, :col_name => col_name)
    end

    def recv_get_partition_column_statistics()
      result = receive_message(Get_partition_column_statistics_result)
      return result.success unless result.success.nil?
      raise result.o1 unless result.o1.nil?
      raise result.o2 unless result.o2.nil?
      raise result.o3 unless result.o3.nil?
      raise result.o4 unless result.o4.nil?
      raise ::Thrift::ApplicationException.new(::Thrift::ApplicationException::MISSING_RESULT, 'get_partition_column_statistics failed: unknown result')
    end

    def get_table_statistics_req(request)
      send_get_table_statistics_req(request)
      return recv_get_table_statistics_req()
    end

    def send_get_table_statistics_req(request)
      send_message('get_table_statistics_req', Get_table_statistics_req_args, :request => request)
    end

    def recv_get_table_statistics_req()
      result = receive_message(Get_table_statistics_req_result)
      return result.success unless result.success.nil?
      raise result.o1 unless result.o1.nil?
      raise result.o2 unless result.o2.nil?
      raise ::Thrift::ApplicationException.new(::Thrift::ApplicationException::MISSING_RESULT, 'get_table_statistics_req failed: unknown result')
    end

    def get_partitions_statistics_req(request)
      send_get_partitions_statistics_req(request)
      return recv_get_partitions_statistics_req()
    end

    def send_get_partitions_statistics_req(request)
      send_message('get_partitions_statistics_req', Get_partitions_statistics_req_args, :request => request)
    end

    def recv_get_partitions_statistics_req()
      result = receive_message(Get_partitions_statistics_req_result)
      return result.success unless result.success.nil?
      raise result.o1 unless result.o1.nil?
      raise result.o2 unless result.o2.nil?
      raise ::Thrift::ApplicationException.new(::Thrift::ApplicationException::MISSING_RESULT, 'get_partitions_statistics_req failed: unknown result')
    end

    def get_aggr_stats_for(request)
      send_get_aggr_stats_for(request)
      return recv_get_aggr_stats_for()
    end

    def send_get_aggr_stats_for(request)
      send_message('get_aggr_stats_for', Get_aggr_stats_for_args, :request => request)
    end

    def recv_get_aggr_stats_for()
      result = receive_message(Get_aggr_stats_for_result)
      return result.success unless result.success.nil?
      raise result.o1 unless result.o1.nil?
      raise result.o2 unless result.o2.nil?
      raise ::Thrift::ApplicationException.new(::Thrift::ApplicationException::MISSING_RESULT, 'get_aggr_stats_for failed: unknown result')
    end

    def set_aggr_stats_for(request)
      send_set_aggr_stats_for(request)
      return recv_set_aggr_stats_for()
    end

    def send_set_aggr_stats_for(request)
      send_message('set_aggr_stats_for', Set_aggr_stats_for_args, :request => request)
    end

    def recv_set_aggr_stats_for()
      result = receive_message(Set_aggr_stats_for_result)
      return result.success unless result.success.nil?
      raise result.o1 unless result.o1.nil?
      raise result.o2 unless result.o2.nil?
      raise result.o3 unless result.o3.nil?
      raise result.o4 unless result.o4.nil?
      raise ::Thrift::ApplicationException.new(::Thrift::ApplicationException::MISSING_RESULT, 'set_aggr_stats_for failed: unknown result')
    end

    def delete_partition_column_statistics(db_name, tbl_name, part_name, col_name, engine)
      send_delete_partition_column_statistics(db_name, tbl_name, part_name, col_name, engine)
      return recv_delete_partition_column_statistics()
    end

    def send_delete_partition_column_statistics(db_name, tbl_name, part_name, col_name, engine)
      send_message('delete_partition_column_statistics', Delete_partition_column_statistics_args, :db_name => db_name, :tbl_name => tbl_name, :part_name => part_name, :col_name => col_name, :engine => engine)
    end

    def recv_delete_partition_column_statistics()
      result = receive_message(Delete_partition_column_statistics_result)
      return result.success unless result.success.nil?
      raise result.o1 unless result.o1.nil?
      raise result.o2 unless result.o2.nil?
      raise result.o3 unless result.o3.nil?
      raise result.o4 unless result.o4.nil?
      raise ::Thrift::ApplicationException.new(::Thrift::ApplicationException::MISSING_RESULT, 'delete_partition_column_statistics failed: unknown result')
    end

    def delete_table_column_statistics(db_name, tbl_name, col_name, engine)
      send_delete_table_column_statistics(db_name, tbl_name, col_name, engine)
      return recv_delete_table_column_statistics()
    end

    def send_delete_table_column_statistics(db_name, tbl_name, col_name, engine)
      send_message('delete_table_column_statistics', Delete_table_column_statistics_args, :db_name => db_name, :tbl_name => tbl_name, :col_name => col_name, :engine => engine)
    end

    def recv_delete_table_column_statistics()
      result = receive_message(Delete_table_column_statistics_result)
      return result.success unless result.success.nil?
      raise result.o1 unless result.o1.nil?
      raise result.o2 unless result.o2.nil?
      raise result.o3 unless result.o3.nil?
      raise result.o4 unless result.o4.nil?
      raise ::Thrift::ApplicationException.new(::Thrift::ApplicationException::MISSING_RESULT, 'delete_table_column_statistics failed: unknown result')
    end

    def create_function(func)
      send_create_function(func)
      recv_create_function()
    end

    def send_create_function(func)
      send_message('create_function', Create_function_args, :func => func)
    end

    def recv_create_function()
      result = receive_message(Create_function_result)
      raise result.o1 unless result.o1.nil?
      raise result.o2 unless result.o2.nil?
      raise result.o3 unless result.o3.nil?
      raise result.o4 unless result.o4.nil?
      return
    end

    def drop_function(dbName, funcName)
      send_drop_function(dbName, funcName)
      recv_drop_function()
    end

    def send_drop_function(dbName, funcName)
      send_message('drop_function', Drop_function_args, :dbName => dbName, :funcName => funcName)
    end

    def recv_drop_function()
      result = receive_message(Drop_function_result)
      raise result.o1 unless result.o1.nil?
      raise result.o3 unless result.o3.nil?
      return
    end

    def alter_function(dbName, funcName, newFunc)
      send_alter_function(dbName, funcName, newFunc)
      recv_alter_function()
    end

    def send_alter_function(dbName, funcName, newFunc)
      send_message('alter_function', Alter_function_args, :dbName => dbName, :funcName => funcName, :newFunc => newFunc)
    end

    def recv_alter_function()
      result = receive_message(Alter_function_result)
      raise result.o1 unless result.o1.nil?
      raise result.o2 unless result.o2.nil?
      return
    end

    def get_functions(dbName, pattern)
      send_get_functions(dbName, pattern)
      return recv_get_functions()
    end

    def send_get_functions(dbName, pattern)
      send_message('get_functions', Get_functions_args, :dbName => dbName, :pattern => pattern)
    end

    def recv_get_functions()
      result = receive_message(Get_functions_result)
      return result.success unless result.success.nil?
      raise result.o1 unless result.o1.nil?
      raise ::Thrift::ApplicationException.new(::Thrift::ApplicationException::MISSING_RESULT, 'get_functions failed: unknown result')
    end

    def get_function(dbName, funcName)
      send_get_function(dbName, funcName)
      return recv_get_function()
    end

    def send_get_function(dbName, funcName)
      send_message('get_function', Get_function_args, :dbName => dbName, :funcName => funcName)
    end

    def recv_get_function()
      result = receive_message(Get_function_result)
      return result.success unless result.success.nil?
      raise result.o1 unless result.o1.nil?
      raise result.o2 unless result.o2.nil?
      raise ::Thrift::ApplicationException.new(::Thrift::ApplicationException::MISSING_RESULT, 'get_function failed: unknown result')
    end

    def get_all_functions()
      send_get_all_functions()
      return recv_get_all_functions()
    end

    def send_get_all_functions()
      send_message('get_all_functions', Get_all_functions_args)
    end

    def recv_get_all_functions()
      result = receive_message(Get_all_functions_result)
      return result.success unless result.success.nil?
      raise result.o1 unless result.o1.nil?
      raise ::Thrift::ApplicationException.new(::Thrift::ApplicationException::MISSING_RESULT, 'get_all_functions failed: unknown result')
    end

    def create_role(role)
      send_create_role(role)
      return recv_create_role()
    end

    def send_create_role(role)
      send_message('create_role', Create_role_args, :role => role)
    end

    def recv_create_role()
      result = receive_message(Create_role_result)
      return result.success unless result.success.nil?
      raise result.o1 unless result.o1.nil?
      raise ::Thrift::ApplicationException.new(::Thrift::ApplicationException::MISSING_RESULT, 'create_role failed: unknown result')
    end

    def drop_role(role_name)
      send_drop_role(role_name)
      return recv_drop_role()
    end

    def send_drop_role(role_name)
      send_message('drop_role', Drop_role_args, :role_name => role_name)
    end

    def recv_drop_role()
      result = receive_message(Drop_role_result)
      return result.success unless result.success.nil?
      raise result.o1 unless result.o1.nil?
      raise ::Thrift::ApplicationException.new(::Thrift::ApplicationException::MISSING_RESULT, 'drop_role failed: unknown result')
    end

    def get_role_names()
      send_get_role_names()
      return recv_get_role_names()
    end

    def send_get_role_names()
      send_message('get_role_names', Get_role_names_args)
    end

    def recv_get_role_names()
      result = receive_message(Get_role_names_result)
      return result.success unless result.success.nil?
      raise result.o1 unless result.o1.nil?
      raise ::Thrift::ApplicationException.new(::Thrift::ApplicationException::MISSING_RESULT, 'get_role_names failed: unknown result')
    end

    def grant_role(role_name, principal_name, principal_type, grantor, grantorType, grant_option)
      send_grant_role(role_name, principal_name, principal_type, grantor, grantorType, grant_option)
      return recv_grant_role()
    end

    def send_grant_role(role_name, principal_name, principal_type, grantor, grantorType, grant_option)
      send_message('grant_role', Grant_role_args, :role_name => role_name, :principal_name => principal_name, :principal_type => principal_type, :grantor => grantor, :grantorType => grantorType, :grant_option => grant_option)
    end

    def recv_grant_role()
      result = receive_message(Grant_role_result)
      return result.success unless result.success.nil?
      raise result.o1 unless result.o1.nil?
      raise ::Thrift::ApplicationException.new(::Thrift::ApplicationException::MISSING_RESULT, 'grant_role failed: unknown result')
    end

    def revoke_role(role_name, principal_name, principal_type)
      send_revoke_role(role_name, principal_name, principal_type)
      return recv_revoke_role()
    end

    def send_revoke_role(role_name, principal_name, principal_type)
      send_message('revoke_role', Revoke_role_args, :role_name => role_name, :principal_name => principal_name, :principal_type => principal_type)
    end

    def recv_revoke_role()
      result = receive_message(Revoke_role_result)
      return result.success unless result.success.nil?
      raise result.o1 unless result.o1.nil?
      raise ::Thrift::ApplicationException.new(::Thrift::ApplicationException::MISSING_RESULT, 'revoke_role failed: unknown result')
    end

    def list_roles(principal_name, principal_type)
      send_list_roles(principal_name, principal_type)
      return recv_list_roles()
    end

    def send_list_roles(principal_name, principal_type)
      send_message('list_roles', List_roles_args, :principal_name => principal_name, :principal_type => principal_type)
    end

    def recv_list_roles()
      result = receive_message(List_roles_result)
      return result.success unless result.success.nil?
      raise result.o1 unless result.o1.nil?
      raise ::Thrift::ApplicationException.new(::Thrift::ApplicationException::MISSING_RESULT, 'list_roles failed: unknown result')
    end

    def grant_revoke_role(request)
      send_grant_revoke_role(request)
      return recv_grant_revoke_role()
    end

    def send_grant_revoke_role(request)
      send_message('grant_revoke_role', Grant_revoke_role_args, :request => request)
    end

    def recv_grant_revoke_role()
      result = receive_message(Grant_revoke_role_result)
      return result.success unless result.success.nil?
      raise result.o1 unless result.o1.nil?
      raise ::Thrift::ApplicationException.new(::Thrift::ApplicationException::MISSING_RESULT, 'grant_revoke_role failed: unknown result')
    end

    def get_principals_in_role(request)
      send_get_principals_in_role(request)
      return recv_get_principals_in_role()
    end

    def send_get_principals_in_role(request)
      send_message('get_principals_in_role', Get_principals_in_role_args, :request => request)
    end

    def recv_get_principals_in_role()
      result = receive_message(Get_principals_in_role_result)
      return result.success unless result.success.nil?
      raise result.o1 unless result.o1.nil?
      raise ::Thrift::ApplicationException.new(::Thrift::ApplicationException::MISSING_RESULT, 'get_principals_in_role failed: unknown result')
    end

    def get_role_grants_for_principal(request)
      send_get_role_grants_for_principal(request)
      return recv_get_role_grants_for_principal()
    end

    def send_get_role_grants_for_principal(request)
      send_message('get_role_grants_for_principal', Get_role_grants_for_principal_args, :request => request)
    end

    def recv_get_role_grants_for_principal()
      result = receive_message(Get_role_grants_for_principal_result)
      return result.success unless result.success.nil?
      raise result.o1 unless result.o1.nil?
      raise ::Thrift::ApplicationException.new(::Thrift::ApplicationException::MISSING_RESULT, 'get_role_grants_for_principal failed: unknown result')
    end

    def get_privilege_set(hiveObject, user_name, group_names)
      send_get_privilege_set(hiveObject, user_name, group_names)
      return recv_get_privilege_set()
    end

    def send_get_privilege_set(hiveObject, user_name, group_names)
      send_message('get_privilege_set', Get_privilege_set_args, :hiveObject => hiveObject, :user_name => user_name, :group_names => group_names)
    end

    def recv_get_privilege_set()
      result = receive_message(Get_privilege_set_result)
      return result.success unless result.success.nil?
      raise result.o1 unless result.o1.nil?
      raise ::Thrift::ApplicationException.new(::Thrift::ApplicationException::MISSING_RESULT, 'get_privilege_set failed: unknown result')
    end

    def list_privileges(principal_name, principal_type, hiveObject)
      send_list_privileges(principal_name, principal_type, hiveObject)
      return recv_list_privileges()
    end

    def send_list_privileges(principal_name, principal_type, hiveObject)
      send_message('list_privileges', List_privileges_args, :principal_name => principal_name, :principal_type => principal_type, :hiveObject => hiveObject)
    end

    def recv_list_privileges()
      result = receive_message(List_privileges_result)
      return result.success unless result.success.nil?
      raise result.o1 unless result.o1.nil?
      raise ::Thrift::ApplicationException.new(::Thrift::ApplicationException::MISSING_RESULT, 'list_privileges failed: unknown result')
    end

    def grant_privileges(privileges)
      send_grant_privileges(privileges)
      return recv_grant_privileges()
    end

    def send_grant_privileges(privileges)
      send_message('grant_privileges', Grant_privileges_args, :privileges => privileges)
    end

    def recv_grant_privileges()
      result = receive_message(Grant_privileges_result)
      return result.success unless result.success.nil?
      raise result.o1 unless result.o1.nil?
      raise ::Thrift::ApplicationException.new(::Thrift::ApplicationException::MISSING_RESULT, 'grant_privileges failed: unknown result')
    end

    def revoke_privileges(privileges)
      send_revoke_privileges(privileges)
      return recv_revoke_privileges()
    end

    def send_revoke_privileges(privileges)
      send_message('revoke_privileges', Revoke_privileges_args, :privileges => privileges)
    end

    def recv_revoke_privileges()
      result = receive_message(Revoke_privileges_result)
      return result.success unless result.success.nil?
      raise result.o1 unless result.o1.nil?
      raise ::Thrift::ApplicationException.new(::Thrift::ApplicationException::MISSING_RESULT, 'revoke_privileges failed: unknown result')
    end

    def grant_revoke_privileges(request)
      send_grant_revoke_privileges(request)
      return recv_grant_revoke_privileges()
    end

    def send_grant_revoke_privileges(request)
      send_message('grant_revoke_privileges', Grant_revoke_privileges_args, :request => request)
    end

    def recv_grant_revoke_privileges()
      result = receive_message(Grant_revoke_privileges_result)
      return result.success unless result.success.nil?
      raise result.o1 unless result.o1.nil?
      raise ::Thrift::ApplicationException.new(::Thrift::ApplicationException::MISSING_RESULT, 'grant_revoke_privileges failed: unknown result')
    end

    def refresh_privileges(objToRefresh, authorizer, grantRequest)
      send_refresh_privileges(objToRefresh, authorizer, grantRequest)
      return recv_refresh_privileges()
    end

    def send_refresh_privileges(objToRefresh, authorizer, grantRequest)
      send_message('refresh_privileges', Refresh_privileges_args, :objToRefresh => objToRefresh, :authorizer => authorizer, :grantRequest => grantRequest)
    end

    def recv_refresh_privileges()
      result = receive_message(Refresh_privileges_result)
      return result.success unless result.success.nil?
      raise result.o1 unless result.o1.nil?
      raise ::Thrift::ApplicationException.new(::Thrift::ApplicationException::MISSING_RESULT, 'refresh_privileges failed: unknown result')
    end

    def set_ugi(user_name, group_names)
      send_set_ugi(user_name, group_names)
      return recv_set_ugi()
    end

    def send_set_ugi(user_name, group_names)
      send_message('set_ugi', Set_ugi_args, :user_name => user_name, :group_names => group_names)
    end

    def recv_set_ugi()
      result = receive_message(Set_ugi_result)
      return result.success unless result.success.nil?
      raise result.o1 unless result.o1.nil?
      raise ::Thrift::ApplicationException.new(::Thrift::ApplicationException::MISSING_RESULT, 'set_ugi failed: unknown result')
    end

    def get_delegation_token(token_owner, renewer_kerberos_principal_name)
      send_get_delegation_token(token_owner, renewer_kerberos_principal_name)
      return recv_get_delegation_token()
    end

    def send_get_delegation_token(token_owner, renewer_kerberos_principal_name)
      send_message('get_delegation_token', Get_delegation_token_args, :token_owner => token_owner, :renewer_kerberos_principal_name => renewer_kerberos_principal_name)
    end

    def recv_get_delegation_token()
      result = receive_message(Get_delegation_token_result)
      return result.success unless result.success.nil?
      raise result.o1 unless result.o1.nil?
      raise ::Thrift::ApplicationException.new(::Thrift::ApplicationException::MISSING_RESULT, 'get_delegation_token failed: unknown result')
    end

    def renew_delegation_token(token_str_form)
      send_renew_delegation_token(token_str_form)
      return recv_renew_delegation_token()
    end

    def send_renew_delegation_token(token_str_form)
      send_message('renew_delegation_token', Renew_delegation_token_args, :token_str_form => token_str_form)
    end

    def recv_renew_delegation_token()
      result = receive_message(Renew_delegation_token_result)
      return result.success unless result.success.nil?
      raise result.o1 unless result.o1.nil?
      raise ::Thrift::ApplicationException.new(::Thrift::ApplicationException::MISSING_RESULT, 'renew_delegation_token failed: unknown result')
    end

    def cancel_delegation_token(token_str_form)
      send_cancel_delegation_token(token_str_form)
      recv_cancel_delegation_token()
    end

    def send_cancel_delegation_token(token_str_form)
      send_message('cancel_delegation_token', Cancel_delegation_token_args, :token_str_form => token_str_form)
    end

    def recv_cancel_delegation_token()
      result = receive_message(Cancel_delegation_token_result)
      raise result.o1 unless result.o1.nil?
      return
    end

    def add_token(token_identifier, delegation_token)
      send_add_token(token_identifier, delegation_token)
      return recv_add_token()
    end

    def send_add_token(token_identifier, delegation_token)
      send_message('add_token', Add_token_args, :token_identifier => token_identifier, :delegation_token => delegation_token)
    end

    def recv_add_token()
      result = receive_message(Add_token_result)
      return result.success unless result.success.nil?
      raise ::Thrift::ApplicationException.new(::Thrift::ApplicationException::MISSING_RESULT, 'add_token failed: unknown result')
    end

    def remove_token(token_identifier)
      send_remove_token(token_identifier)
      return recv_remove_token()
    end

    def send_remove_token(token_identifier)
      send_message('remove_token', Remove_token_args, :token_identifier => token_identifier)
    end

    def recv_remove_token()
      result = receive_message(Remove_token_result)
      return result.success unless result.success.nil?
      raise ::Thrift::ApplicationException.new(::Thrift::ApplicationException::MISSING_RESULT, 'remove_token failed: unknown result')
    end

    def get_token(token_identifier)
      send_get_token(token_identifier)
      return recv_get_token()
    end

    def send_get_token(token_identifier)
      send_message('get_token', Get_token_args, :token_identifier => token_identifier)
    end

    def recv_get_token()
      result = receive_message(Get_token_result)
      return result.success unless result.success.nil?
      raise ::Thrift::ApplicationException.new(::Thrift::ApplicationException::MISSING_RESULT, 'get_token failed: unknown result')
    end

    def get_all_token_identifiers()
      send_get_all_token_identifiers()
      return recv_get_all_token_identifiers()
    end

    def send_get_all_token_identifiers()
      send_message('get_all_token_identifiers', Get_all_token_identifiers_args)
    end

    def recv_get_all_token_identifiers()
      result = receive_message(Get_all_token_identifiers_result)
      return result.success unless result.success.nil?
      raise ::Thrift::ApplicationException.new(::Thrift::ApplicationException::MISSING_RESULT, 'get_all_token_identifiers failed: unknown result')
    end

    def add_master_key(key)
      send_add_master_key(key)
      return recv_add_master_key()
    end

    def send_add_master_key(key)
      send_message('add_master_key', Add_master_key_args, :key => key)
    end

    def recv_add_master_key()
      result = receive_message(Add_master_key_result)
      return result.success unless result.success.nil?
      raise result.o1 unless result.o1.nil?
      raise ::Thrift::ApplicationException.new(::Thrift::ApplicationException::MISSING_RESULT, 'add_master_key failed: unknown result')
    end

    def update_master_key(seq_number, key)
      send_update_master_key(seq_number, key)
      recv_update_master_key()
    end

    def send_update_master_key(seq_number, key)
      send_message('update_master_key', Update_master_key_args, :seq_number => seq_number, :key => key)
    end

    def recv_update_master_key()
      result = receive_message(Update_master_key_result)
      raise result.o1 unless result.o1.nil?
      raise result.o2 unless result.o2.nil?
      return
    end

    def remove_master_key(key_seq)
      send_remove_master_key(key_seq)
      return recv_remove_master_key()
    end

    def send_remove_master_key(key_seq)
      send_message('remove_master_key', Remove_master_key_args, :key_seq => key_seq)
    end

    def recv_remove_master_key()
      result = receive_message(Remove_master_key_result)
      return result.success unless result.success.nil?
      raise ::Thrift::ApplicationException.new(::Thrift::ApplicationException::MISSING_RESULT, 'remove_master_key failed: unknown result')
    end

    def get_master_keys()
      send_get_master_keys()
      return recv_get_master_keys()
    end

    def send_get_master_keys()
      send_message('get_master_keys', Get_master_keys_args)
    end

    def recv_get_master_keys()
      result = receive_message(Get_master_keys_result)
      return result.success unless result.success.nil?
      raise ::Thrift::ApplicationException.new(::Thrift::ApplicationException::MISSING_RESULT, 'get_master_keys failed: unknown result')
    end

    def get_open_txns()
      send_get_open_txns()
      return recv_get_open_txns()
    end

    def send_get_open_txns()
      send_message('get_open_txns', Get_open_txns_args)
    end

    def recv_get_open_txns()
      result = receive_message(Get_open_txns_result)
      return result.success unless result.success.nil?
      raise ::Thrift::ApplicationException.new(::Thrift::ApplicationException::MISSING_RESULT, 'get_open_txns failed: unknown result')
    end

    def get_open_txns_info()
      send_get_open_txns_info()
      return recv_get_open_txns_info()
    end

    def send_get_open_txns_info()
      send_message('get_open_txns_info', Get_open_txns_info_args)
    end

    def recv_get_open_txns_info()
      result = receive_message(Get_open_txns_info_result)
      return result.success unless result.success.nil?
      raise ::Thrift::ApplicationException.new(::Thrift::ApplicationException::MISSING_RESULT, 'get_open_txns_info failed: unknown result')
    end

    def open_txns(rqst)
      send_open_txns(rqst)
      return recv_open_txns()
    end

    def send_open_txns(rqst)
      send_message('open_txns', Open_txns_args, :rqst => rqst)
    end

    def recv_open_txns()
      result = receive_message(Open_txns_result)
      return result.success unless result.success.nil?
      raise ::Thrift::ApplicationException.new(::Thrift::ApplicationException::MISSING_RESULT, 'open_txns failed: unknown result')
    end

    def abort_txn(rqst)
      send_abort_txn(rqst)
      recv_abort_txn()
    end

    def send_abort_txn(rqst)
      send_message('abort_txn', Abort_txn_args, :rqst => rqst)
    end

    def recv_abort_txn()
      result = receive_message(Abort_txn_result)
      raise result.o1 unless result.o1.nil?
      return
    end

    def abort_txns(rqst)
      send_abort_txns(rqst)
      recv_abort_txns()
    end

    def send_abort_txns(rqst)
      send_message('abort_txns', Abort_txns_args, :rqst => rqst)
    end

    def recv_abort_txns()
      result = receive_message(Abort_txns_result)
      raise result.o1 unless result.o1.nil?
      return
    end

    def commit_txn(rqst)
      send_commit_txn(rqst)
      recv_commit_txn()
    end

    def send_commit_txn(rqst)
      send_message('commit_txn', Commit_txn_args, :rqst => rqst)
    end

    def recv_commit_txn()
      result = receive_message(Commit_txn_result)
      raise result.o1 unless result.o1.nil?
      raise result.o2 unless result.o2.nil?
      return
    end

    def repl_tbl_writeid_state(rqst)
      send_repl_tbl_writeid_state(rqst)
      recv_repl_tbl_writeid_state()
    end

    def send_repl_tbl_writeid_state(rqst)
      send_message('repl_tbl_writeid_state', Repl_tbl_writeid_state_args, :rqst => rqst)
    end

    def recv_repl_tbl_writeid_state()
      result = receive_message(Repl_tbl_writeid_state_result)
      return
    end

    def get_valid_write_ids(rqst)
      send_get_valid_write_ids(rqst)
      return recv_get_valid_write_ids()
    end

    def send_get_valid_write_ids(rqst)
      send_message('get_valid_write_ids', Get_valid_write_ids_args, :rqst => rqst)
    end

    def recv_get_valid_write_ids()
      result = receive_message(Get_valid_write_ids_result)
      return result.success unless result.success.nil?
      raise result.o1 unless result.o1.nil?
      raise result.o2 unless result.o2.nil?
      raise ::Thrift::ApplicationException.new(::Thrift::ApplicationException::MISSING_RESULT, 'get_valid_write_ids failed: unknown result')
    end

    def allocate_table_write_ids(rqst)
      send_allocate_table_write_ids(rqst)
      return recv_allocate_table_write_ids()
    end

    def send_allocate_table_write_ids(rqst)
      send_message('allocate_table_write_ids', Allocate_table_write_ids_args, :rqst => rqst)
    end

    def recv_allocate_table_write_ids()
      result = receive_message(Allocate_table_write_ids_result)
      return result.success unless result.success.nil?
      raise result.o1 unless result.o1.nil?
      raise result.o2 unless result.o2.nil?
      raise result.o3 unless result.o3.nil?
      raise ::Thrift::ApplicationException.new(::Thrift::ApplicationException::MISSING_RESULT, 'allocate_table_write_ids failed: unknown result')
    end

    def lock(rqst)
      send_lock(rqst)
      return recv_lock()
    end

    def send_lock(rqst)
      send_message('lock', Lock_args, :rqst => rqst)
    end

    def recv_lock()
      result = receive_message(Lock_result)
      return result.success unless result.success.nil?
      raise result.o1 unless result.o1.nil?
      raise result.o2 unless result.o2.nil?
      raise ::Thrift::ApplicationException.new(::Thrift::ApplicationException::MISSING_RESULT, 'lock failed: unknown result')
    end

    def check_lock(rqst)
      send_check_lock(rqst)
      return recv_check_lock()
    end

    def send_check_lock(rqst)
      send_message('check_lock', Check_lock_args, :rqst => rqst)
    end

    def recv_check_lock()
      result = receive_message(Check_lock_result)
      return result.success unless result.success.nil?
      raise result.o1 unless result.o1.nil?
      raise result.o2 unless result.o2.nil?
      raise result.o3 unless result.o3.nil?
      raise ::Thrift::ApplicationException.new(::Thrift::ApplicationException::MISSING_RESULT, 'check_lock failed: unknown result')
    end

    def unlock(rqst)
      send_unlock(rqst)
      recv_unlock()
    end

    def send_unlock(rqst)
      send_message('unlock', Unlock_args, :rqst => rqst)
    end

    def recv_unlock()
      result = receive_message(Unlock_result)
      raise result.o1 unless result.o1.nil?
      raise result.o2 unless result.o2.nil?
      return
    end

    def show_locks(rqst)
      send_show_locks(rqst)
      return recv_show_locks()
    end

    def send_show_locks(rqst)
      send_message('show_locks', Show_locks_args, :rqst => rqst)
    end

    def recv_show_locks()
      result = receive_message(Show_locks_result)
      return result.success unless result.success.nil?
      raise ::Thrift::ApplicationException.new(::Thrift::ApplicationException::MISSING_RESULT, 'show_locks failed: unknown result')
    end

    def heartbeat(ids)
      send_heartbeat(ids)
      recv_heartbeat()
    end

    def send_heartbeat(ids)
      send_message('heartbeat', Heartbeat_args, :ids => ids)
    end

    def recv_heartbeat()
      result = receive_message(Heartbeat_result)
      raise result.o1 unless result.o1.nil?
      raise result.o2 unless result.o2.nil?
      raise result.o3 unless result.o3.nil?
      return
    end

    def heartbeat_txn_range(txns)
      send_heartbeat_txn_range(txns)
      return recv_heartbeat_txn_range()
    end

    def send_heartbeat_txn_range(txns)
      send_message('heartbeat_txn_range', Heartbeat_txn_range_args, :txns => txns)
    end

    def recv_heartbeat_txn_range()
      result = receive_message(Heartbeat_txn_range_result)
      return result.success unless result.success.nil?
      raise ::Thrift::ApplicationException.new(::Thrift::ApplicationException::MISSING_RESULT, 'heartbeat_txn_range failed: unknown result')
    end

    def compact(rqst)
      send_compact(rqst)
      recv_compact()
    end

    def send_compact(rqst)
      send_message('compact', Compact_args, :rqst => rqst)
    end

    def recv_compact()
      result = receive_message(Compact_result)
      return
    end

    def compact2(rqst)
      send_compact2(rqst)
      return recv_compact2()
    end

    def send_compact2(rqst)
      send_message('compact2', Compact2_args, :rqst => rqst)
    end

    def recv_compact2()
      result = receive_message(Compact2_result)
      return result.success unless result.success.nil?
      raise ::Thrift::ApplicationException.new(::Thrift::ApplicationException::MISSING_RESULT, 'compact2 failed: unknown result')
    end

    def show_compact(rqst)
      send_show_compact(rqst)
      return recv_show_compact()
    end

    def send_show_compact(rqst)
      send_message('show_compact', Show_compact_args, :rqst => rqst)
    end

    def recv_show_compact()
      result = receive_message(Show_compact_result)
      return result.success unless result.success.nil?
      raise ::Thrift::ApplicationException.new(::Thrift::ApplicationException::MISSING_RESULT, 'show_compact failed: unknown result')
    end

    def add_dynamic_partitions(rqst)
      send_add_dynamic_partitions(rqst)
      recv_add_dynamic_partitions()
    end

    def send_add_dynamic_partitions(rqst)
      send_message('add_dynamic_partitions', Add_dynamic_partitions_args, :rqst => rqst)
    end

    def recv_add_dynamic_partitions()
      result = receive_message(Add_dynamic_partitions_result)
      raise result.o1 unless result.o1.nil?
      raise result.o2 unless result.o2.nil?
      return
    end

    def find_next_compact(workerId)
      send_find_next_compact(workerId)
      return recv_find_next_compact()
    end

    def send_find_next_compact(workerId)
      send_message('find_next_compact', Find_next_compact_args, :workerId => workerId)
    end

    def recv_find_next_compact()
      result = receive_message(Find_next_compact_result)
      return result.success unless result.success.nil?
      raise result.o1 unless result.o1.nil?
      raise ::Thrift::ApplicationException.new(::Thrift::ApplicationException::MISSING_RESULT, 'find_next_compact failed: unknown result')
    end

    def update_compactor_state(cr, txn_id)
      send_update_compactor_state(cr, txn_id)
      recv_update_compactor_state()
    end

    def send_update_compactor_state(cr, txn_id)
      send_message('update_compactor_state', Update_compactor_state_args, :cr => cr, :txn_id => txn_id)
    end

    def recv_update_compactor_state()
      result = receive_message(Update_compactor_state_result)
      return
    end

    def find_columns_with_stats(cr)
      send_find_columns_with_stats(cr)
      return recv_find_columns_with_stats()
    end

    def send_find_columns_with_stats(cr)
      send_message('find_columns_with_stats', Find_columns_with_stats_args, :cr => cr)
    end

    def recv_find_columns_with_stats()
      result = receive_message(Find_columns_with_stats_result)
      return result.success unless result.success.nil?
      raise ::Thrift::ApplicationException.new(::Thrift::ApplicationException::MISSING_RESULT, 'find_columns_with_stats failed: unknown result')
    end

    def mark_cleaned(cr)
      send_mark_cleaned(cr)
      recv_mark_cleaned()
    end

    def send_mark_cleaned(cr)
      send_message('mark_cleaned', Mark_cleaned_args, :cr => cr)
    end

    def recv_mark_cleaned()
      result = receive_message(Mark_cleaned_result)
      raise result.o1 unless result.o1.nil?
      return
    end

    def mark_compacted(cr)
      send_mark_compacted(cr)
      recv_mark_compacted()
    end

    def send_mark_compacted(cr)
      send_message('mark_compacted', Mark_compacted_args, :cr => cr)
    end

    def recv_mark_compacted()
      result = receive_message(Mark_compacted_result)
      raise result.o1 unless result.o1.nil?
      return
    end

    def mark_failed(cr)
      send_mark_failed(cr)
      recv_mark_failed()
    end

    def send_mark_failed(cr)
      send_message('mark_failed', Mark_failed_args, :cr => cr)
    end

    def recv_mark_failed()
      result = receive_message(Mark_failed_result)
      raise result.o1 unless result.o1.nil?
      return
    end

    def set_hadoop_jobid(jobId, cq_id)
      send_set_hadoop_jobid(jobId, cq_id)
      recv_set_hadoop_jobid()
    end

    def send_set_hadoop_jobid(jobId, cq_id)
      send_message('set_hadoop_jobid', Set_hadoop_jobid_args, :jobId => jobId, :cq_id => cq_id)
    end

    def recv_set_hadoop_jobid()
      result = receive_message(Set_hadoop_jobid_result)
      return
    end

    def get_next_notification(rqst)
      send_get_next_notification(rqst)
      return recv_get_next_notification()
    end

    def send_get_next_notification(rqst)
      send_message('get_next_notification', Get_next_notification_args, :rqst => rqst)
    end

    def recv_get_next_notification()
      result = receive_message(Get_next_notification_result)
      return result.success unless result.success.nil?
      raise ::Thrift::ApplicationException.new(::Thrift::ApplicationException::MISSING_RESULT, 'get_next_notification failed: unknown result')
    end

    def get_current_notificationEventId()
      send_get_current_notificationEventId()
      return recv_get_current_notificationEventId()
    end

    def send_get_current_notificationEventId()
      send_message('get_current_notificationEventId', Get_current_notificationEventId_args)
    end

    def recv_get_current_notificationEventId()
      result = receive_message(Get_current_notificationEventId_result)
      return result.success unless result.success.nil?
      raise ::Thrift::ApplicationException.new(::Thrift::ApplicationException::MISSING_RESULT, 'get_current_notificationEventId failed: unknown result')
    end

    def get_notification_events_count(rqst)
      send_get_notification_events_count(rqst)
      return recv_get_notification_events_count()
    end

    def send_get_notification_events_count(rqst)
      send_message('get_notification_events_count', Get_notification_events_count_args, :rqst => rqst)
    end

    def recv_get_notification_events_count()
      result = receive_message(Get_notification_events_count_result)
      return result.success unless result.success.nil?
      raise ::Thrift::ApplicationException.new(::Thrift::ApplicationException::MISSING_RESULT, 'get_notification_events_count failed: unknown result')
    end

    def fire_listener_event(rqst)
      send_fire_listener_event(rqst)
      return recv_fire_listener_event()
    end

    def send_fire_listener_event(rqst)
      send_message('fire_listener_event', Fire_listener_event_args, :rqst => rqst)
    end

    def recv_fire_listener_event()
      result = receive_message(Fire_listener_event_result)
      return result.success unless result.success.nil?
      raise ::Thrift::ApplicationException.new(::Thrift::ApplicationException::MISSING_RESULT, 'fire_listener_event failed: unknown result')
    end

    def flushCache()
      send_flushCache()
      recv_flushCache()
    end

    def send_flushCache()
      send_message('flushCache', FlushCache_args)
    end

    def recv_flushCache()
      result = receive_message(FlushCache_result)
      return
    end

    def add_write_notification_log(rqst)
      send_add_write_notification_log(rqst)
      return recv_add_write_notification_log()
    end

    def send_add_write_notification_log(rqst)
      send_message('add_write_notification_log', Add_write_notification_log_args, :rqst => rqst)
    end

    def recv_add_write_notification_log()
      result = receive_message(Add_write_notification_log_result)
      return result.success unless result.success.nil?
      raise ::Thrift::ApplicationException.new(::Thrift::ApplicationException::MISSING_RESULT, 'add_write_notification_log failed: unknown result')
    end

    def cm_recycle(request)
      send_cm_recycle(request)
      return recv_cm_recycle()
    end

    def send_cm_recycle(request)
      send_message('cm_recycle', Cm_recycle_args, :request => request)
    end

    def recv_cm_recycle()
      result = receive_message(Cm_recycle_result)
      return result.success unless result.success.nil?
      raise result.o1 unless result.o1.nil?
      raise ::Thrift::ApplicationException.new(::Thrift::ApplicationException::MISSING_RESULT, 'cm_recycle failed: unknown result')
    end

    def get_file_metadata_by_expr(req)
      send_get_file_metadata_by_expr(req)
      return recv_get_file_metadata_by_expr()
    end

    def send_get_file_metadata_by_expr(req)
      send_message('get_file_metadata_by_expr', Get_file_metadata_by_expr_args, :req => req)
    end

    def recv_get_file_metadata_by_expr()
      result = receive_message(Get_file_metadata_by_expr_result)
      return result.success unless result.success.nil?
      raise ::Thrift::ApplicationException.new(::Thrift::ApplicationException::MISSING_RESULT, 'get_file_metadata_by_expr failed: unknown result')
    end

    def get_file_metadata(req)
      send_get_file_metadata(req)
      return recv_get_file_metadata()
    end

    def send_get_file_metadata(req)
      send_message('get_file_metadata', Get_file_metadata_args, :req => req)
    end

    def recv_get_file_metadata()
      result = receive_message(Get_file_metadata_result)
      return result.success unless result.success.nil?
      raise ::Thrift::ApplicationException.new(::Thrift::ApplicationException::MISSING_RESULT, 'get_file_metadata failed: unknown result')
    end

    def put_file_metadata(req)
      send_put_file_metadata(req)
      return recv_put_file_metadata()
    end

    def send_put_file_metadata(req)
      send_message('put_file_metadata', Put_file_metadata_args, :req => req)
    end

    def recv_put_file_metadata()
      result = receive_message(Put_file_metadata_result)
      return result.success unless result.success.nil?
      raise ::Thrift::ApplicationException.new(::Thrift::ApplicationException::MISSING_RESULT, 'put_file_metadata failed: unknown result')
    end

    def clear_file_metadata(req)
      send_clear_file_metadata(req)
      return recv_clear_file_metadata()
    end

    def send_clear_file_metadata(req)
      send_message('clear_file_metadata', Clear_file_metadata_args, :req => req)
    end

    def recv_clear_file_metadata()
      result = receive_message(Clear_file_metadata_result)
      return result.success unless result.success.nil?
      raise ::Thrift::ApplicationException.new(::Thrift::ApplicationException::MISSING_RESULT, 'clear_file_metadata failed: unknown result')
    end

    def cache_file_metadata(req)
      send_cache_file_metadata(req)
      return recv_cache_file_metadata()
    end

    def send_cache_file_metadata(req)
      send_message('cache_file_metadata', Cache_file_metadata_args, :req => req)
    end

    def recv_cache_file_metadata()
      result = receive_message(Cache_file_metadata_result)
      return result.success unless result.success.nil?
      raise ::Thrift::ApplicationException.new(::Thrift::ApplicationException::MISSING_RESULT, 'cache_file_metadata failed: unknown result')
    end

    def get_metastore_db_uuid()
      send_get_metastore_db_uuid()
      return recv_get_metastore_db_uuid()
    end

    def send_get_metastore_db_uuid()
      send_message('get_metastore_db_uuid', Get_metastore_db_uuid_args)
    end

    def recv_get_metastore_db_uuid()
      result = receive_message(Get_metastore_db_uuid_result)
      return result.success unless result.success.nil?
      raise result.o1 unless result.o1.nil?
      raise ::Thrift::ApplicationException.new(::Thrift::ApplicationException::MISSING_RESULT, 'get_metastore_db_uuid failed: unknown result')
    end

    def create_resource_plan(request)
      send_create_resource_plan(request)
      return recv_create_resource_plan()
    end

    def send_create_resource_plan(request)
      send_message('create_resource_plan', Create_resource_plan_args, :request => request)
    end

    def recv_create_resource_plan()
      result = receive_message(Create_resource_plan_result)
      return result.success unless result.success.nil?
      raise result.o1 unless result.o1.nil?
      raise result.o2 unless result.o2.nil?
      raise result.o3 unless result.o3.nil?
      raise ::Thrift::ApplicationException.new(::Thrift::ApplicationException::MISSING_RESULT, 'create_resource_plan failed: unknown result')
    end

    def get_resource_plan(request)
      send_get_resource_plan(request)
      return recv_get_resource_plan()
    end

    def send_get_resource_plan(request)
      send_message('get_resource_plan', Get_resource_plan_args, :request => request)
    end

    def recv_get_resource_plan()
      result = receive_message(Get_resource_plan_result)
      return result.success unless result.success.nil?
      raise result.o1 unless result.o1.nil?
      raise result.o2 unless result.o2.nil?
      raise ::Thrift::ApplicationException.new(::Thrift::ApplicationException::MISSING_RESULT, 'get_resource_plan failed: unknown result')
    end

    def get_active_resource_plan(request)
      send_get_active_resource_plan(request)
      return recv_get_active_resource_plan()
    end

    def send_get_active_resource_plan(request)
      send_message('get_active_resource_plan', Get_active_resource_plan_args, :request => request)
    end

    def recv_get_active_resource_plan()
      result = receive_message(Get_active_resource_plan_result)
      return result.success unless result.success.nil?
      raise result.o2 unless result.o2.nil?
      raise ::Thrift::ApplicationException.new(::Thrift::ApplicationException::MISSING_RESULT, 'get_active_resource_plan failed: unknown result')
    end

    def get_all_resource_plans(request)
      send_get_all_resource_plans(request)
      return recv_get_all_resource_plans()
    end

    def send_get_all_resource_plans(request)
      send_message('get_all_resource_plans', Get_all_resource_plans_args, :request => request)
    end

    def recv_get_all_resource_plans()
      result = receive_message(Get_all_resource_plans_result)
      return result.success unless result.success.nil?
      raise result.o1 unless result.o1.nil?
      raise ::Thrift::ApplicationException.new(::Thrift::ApplicationException::MISSING_RESULT, 'get_all_resource_plans failed: unknown result')
    end

    def alter_resource_plan(request)
      send_alter_resource_plan(request)
      return recv_alter_resource_plan()
    end

    def send_alter_resource_plan(request)
      send_message('alter_resource_plan', Alter_resource_plan_args, :request => request)
    end

    def recv_alter_resource_plan()
      result = receive_message(Alter_resource_plan_result)
      return result.success unless result.success.nil?
      raise result.o1 unless result.o1.nil?
      raise result.o2 unless result.o2.nil?
      raise result.o3 unless result.o3.nil?
      raise ::Thrift::ApplicationException.new(::Thrift::ApplicationException::MISSING_RESULT, 'alter_resource_plan failed: unknown result')
    end

    def validate_resource_plan(request)
      send_validate_resource_plan(request)
      return recv_validate_resource_plan()
    end

    def send_validate_resource_plan(request)
      send_message('validate_resource_plan', Validate_resource_plan_args, :request => request)
    end

    def recv_validate_resource_plan()
      result = receive_message(Validate_resource_plan_result)
      return result.success unless result.success.nil?
      raise result.o1 unless result.o1.nil?
      raise result.o2 unless result.o2.nil?
      raise ::Thrift::ApplicationException.new(::Thrift::ApplicationException::MISSING_RESULT, 'validate_resource_plan failed: unknown result')
    end

    def drop_resource_plan(request)
      send_drop_resource_plan(request)
      return recv_drop_resource_plan()
    end

    def send_drop_resource_plan(request)
      send_message('drop_resource_plan', Drop_resource_plan_args, :request => request)
    end

    def recv_drop_resource_plan()
      result = receive_message(Drop_resource_plan_result)
      return result.success unless result.success.nil?
      raise result.o1 unless result.o1.nil?
      raise result.o2 unless result.o2.nil?
      raise result.o3 unless result.o3.nil?
      raise ::Thrift::ApplicationException.new(::Thrift::ApplicationException::MISSING_RESULT, 'drop_resource_plan failed: unknown result')
    end

    def create_wm_trigger(request)
      send_create_wm_trigger(request)
      return recv_create_wm_trigger()
    end

    def send_create_wm_trigger(request)
      send_message('create_wm_trigger', Create_wm_trigger_args, :request => request)
    end

    def recv_create_wm_trigger()
      result = receive_message(Create_wm_trigger_result)
      return result.success unless result.success.nil?
      raise result.o1 unless result.o1.nil?
      raise result.o2 unless result.o2.nil?
      raise result.o3 unless result.o3.nil?
      raise result.o4 unless result.o4.nil?
      raise ::Thrift::ApplicationException.new(::Thrift::ApplicationException::MISSING_RESULT, 'create_wm_trigger failed: unknown result')
    end

    def alter_wm_trigger(request)
      send_alter_wm_trigger(request)
      return recv_alter_wm_trigger()
    end

    def send_alter_wm_trigger(request)
      send_message('alter_wm_trigger', Alter_wm_trigger_args, :request => request)
    end

    def recv_alter_wm_trigger()
      result = receive_message(Alter_wm_trigger_result)
      return result.success unless result.success.nil?
      raise result.o1 unless result.o1.nil?
      raise result.o2 unless result.o2.nil?
      raise result.o3 unless result.o3.nil?
      raise ::Thrift::ApplicationException.new(::Thrift::ApplicationException::MISSING_RESULT, 'alter_wm_trigger failed: unknown result')
    end

    def drop_wm_trigger(request)
      send_drop_wm_trigger(request)
      return recv_drop_wm_trigger()
    end

    def send_drop_wm_trigger(request)
      send_message('drop_wm_trigger', Drop_wm_trigger_args, :request => request)
    end

    def recv_drop_wm_trigger()
      result = receive_message(Drop_wm_trigger_result)
      return result.success unless result.success.nil?
      raise result.o1 unless result.o1.nil?
      raise result.o2 unless result.o2.nil?
      raise result.o3 unless result.o3.nil?
      raise ::Thrift::ApplicationException.new(::Thrift::ApplicationException::MISSING_RESULT, 'drop_wm_trigger failed: unknown result')
    end

    def get_triggers_for_resourceplan(request)
      send_get_triggers_for_resourceplan(request)
      return recv_get_triggers_for_resourceplan()
    end

    def send_get_triggers_for_resourceplan(request)
      send_message('get_triggers_for_resourceplan', Get_triggers_for_resourceplan_args, :request => request)
    end

    def recv_get_triggers_for_resourceplan()
      result = receive_message(Get_triggers_for_resourceplan_result)
      return result.success unless result.success.nil?
      raise result.o1 unless result.o1.nil?
      raise result.o2 unless result.o2.nil?
      raise ::Thrift::ApplicationException.new(::Thrift::ApplicationException::MISSING_RESULT, 'get_triggers_for_resourceplan failed: unknown result')
    end

    def create_wm_pool(request)
      send_create_wm_pool(request)
      return recv_create_wm_pool()
    end

    def send_create_wm_pool(request)
      send_message('create_wm_pool', Create_wm_pool_args, :request => request)
    end

    def recv_create_wm_pool()
      result = receive_message(Create_wm_pool_result)
      return result.success unless result.success.nil?
      raise result.o1 unless result.o1.nil?
      raise result.o2 unless result.o2.nil?
      raise result.o3 unless result.o3.nil?
      raise result.o4 unless result.o4.nil?
      raise ::Thrift::ApplicationException.new(::Thrift::ApplicationException::MISSING_RESULT, 'create_wm_pool failed: unknown result')
    end

    def alter_wm_pool(request)
      send_alter_wm_pool(request)
      return recv_alter_wm_pool()
    end

    def send_alter_wm_pool(request)
      send_message('alter_wm_pool', Alter_wm_pool_args, :request => request)
    end

    def recv_alter_wm_pool()
      result = receive_message(Alter_wm_pool_result)
      return result.success unless result.success.nil?
      raise result.o1 unless result.o1.nil?
      raise result.o2 unless result.o2.nil?
      raise result.o3 unless result.o3.nil?
      raise result.o4 unless result.o4.nil?
      raise ::Thrift::ApplicationException.new(::Thrift::ApplicationException::MISSING_RESULT, 'alter_wm_pool failed: unknown result')
    end

    def drop_wm_pool(request)
      send_drop_wm_pool(request)
      return recv_drop_wm_pool()
    end

    def send_drop_wm_pool(request)
      send_message('drop_wm_pool', Drop_wm_pool_args, :request => request)
    end

    def recv_drop_wm_pool()
      result = receive_message(Drop_wm_pool_result)
      return result.success unless result.success.nil?
      raise result.o1 unless result.o1.nil?
      raise result.o2 unless result.o2.nil?
      raise result.o3 unless result.o3.nil?
      raise ::Thrift::ApplicationException.new(::Thrift::ApplicationException::MISSING_RESULT, 'drop_wm_pool failed: unknown result')
    end

    def create_or_update_wm_mapping(request)
      send_create_or_update_wm_mapping(request)
      return recv_create_or_update_wm_mapping()
    end

    def send_create_or_update_wm_mapping(request)
      send_message('create_or_update_wm_mapping', Create_or_update_wm_mapping_args, :request => request)
    end

    def recv_create_or_update_wm_mapping()
      result = receive_message(Create_or_update_wm_mapping_result)
      return result.success unless result.success.nil?
      raise result.o1 unless result.o1.nil?
      raise result.o2 unless result.o2.nil?
      raise result.o3 unless result.o3.nil?
      raise result.o4 unless result.o4.nil?
      raise ::Thrift::ApplicationException.new(::Thrift::ApplicationException::MISSING_RESULT, 'create_or_update_wm_mapping failed: unknown result')
    end

    def drop_wm_mapping(request)
      send_drop_wm_mapping(request)
      return recv_drop_wm_mapping()
    end

    def send_drop_wm_mapping(request)
      send_message('drop_wm_mapping', Drop_wm_mapping_args, :request => request)
    end

    def recv_drop_wm_mapping()
      result = receive_message(Drop_wm_mapping_result)
      return result.success unless result.success.nil?
      raise result.o1 unless result.o1.nil?
      raise result.o2 unless result.o2.nil?
      raise result.o3 unless result.o3.nil?
      raise ::Thrift::ApplicationException.new(::Thrift::ApplicationException::MISSING_RESULT, 'drop_wm_mapping failed: unknown result')
    end

    def create_or_drop_wm_trigger_to_pool_mapping(request)
      send_create_or_drop_wm_trigger_to_pool_mapping(request)
      return recv_create_or_drop_wm_trigger_to_pool_mapping()
    end

    def send_create_or_drop_wm_trigger_to_pool_mapping(request)
      send_message('create_or_drop_wm_trigger_to_pool_mapping', Create_or_drop_wm_trigger_to_pool_mapping_args, :request => request)
    end

    def recv_create_or_drop_wm_trigger_to_pool_mapping()
      result = receive_message(Create_or_drop_wm_trigger_to_pool_mapping_result)
      return result.success unless result.success.nil?
      raise result.o1 unless result.o1.nil?
      raise result.o2 unless result.o2.nil?
      raise result.o3 unless result.o3.nil?
      raise result.o4 unless result.o4.nil?
      raise ::Thrift::ApplicationException.new(::Thrift::ApplicationException::MISSING_RESULT, 'create_or_drop_wm_trigger_to_pool_mapping failed: unknown result')
    end

    def create_ischema(schema)
      send_create_ischema(schema)
      recv_create_ischema()
    end

    def send_create_ischema(schema)
      send_message('create_ischema', Create_ischema_args, :schema => schema)
    end

    def recv_create_ischema()
      result = receive_message(Create_ischema_result)
      raise result.o1 unless result.o1.nil?
      raise result.o2 unless result.o2.nil?
      raise result.o3 unless result.o3.nil?
      return
    end

    def alter_ischema(rqst)
      send_alter_ischema(rqst)
      recv_alter_ischema()
    end

    def send_alter_ischema(rqst)
      send_message('alter_ischema', Alter_ischema_args, :rqst => rqst)
    end

    def recv_alter_ischema()
      result = receive_message(Alter_ischema_result)
      raise result.o1 unless result.o1.nil?
      raise result.o2 unless result.o2.nil?
      return
    end

    def get_ischema(name)
      send_get_ischema(name)
      return recv_get_ischema()
    end

    def send_get_ischema(name)
      send_message('get_ischema', Get_ischema_args, :name => name)
    end

    def recv_get_ischema()
      result = receive_message(Get_ischema_result)
      return result.success unless result.success.nil?
      raise result.o1 unless result.o1.nil?
      raise result.o2 unless result.o2.nil?
      raise ::Thrift::ApplicationException.new(::Thrift::ApplicationException::MISSING_RESULT, 'get_ischema failed: unknown result')
    end

    def drop_ischema(name)
      send_drop_ischema(name)
      recv_drop_ischema()
    end

    def send_drop_ischema(name)
      send_message('drop_ischema', Drop_ischema_args, :name => name)
    end

    def recv_drop_ischema()
      result = receive_message(Drop_ischema_result)
      raise result.o1 unless result.o1.nil?
      raise result.o2 unless result.o2.nil?
      raise result.o3 unless result.o3.nil?
      return
    end

    def add_schema_version(schemaVersion)
      send_add_schema_version(schemaVersion)
      recv_add_schema_version()
    end

    def send_add_schema_version(schemaVersion)
      send_message('add_schema_version', Add_schema_version_args, :schemaVersion => schemaVersion)
    end

    def recv_add_schema_version()
      result = receive_message(Add_schema_version_result)
      raise result.o1 unless result.o1.nil?
      raise result.o2 unless result.o2.nil?
      raise result.o3 unless result.o3.nil?
      return
    end

    def get_schema_version(schemaVersion)
      send_get_schema_version(schemaVersion)
      return recv_get_schema_version()
    end

    def send_get_schema_version(schemaVersion)
      send_message('get_schema_version', Get_schema_version_args, :schemaVersion => schemaVersion)
    end

    def recv_get_schema_version()
      result = receive_message(Get_schema_version_result)
      return result.success unless result.success.nil?
      raise result.o1 unless result.o1.nil?
      raise result.o2 unless result.o2.nil?
      raise ::Thrift::ApplicationException.new(::Thrift::ApplicationException::MISSING_RESULT, 'get_schema_version failed: unknown result')
    end

    def get_schema_latest_version(schemaName)
      send_get_schema_latest_version(schemaName)
      return recv_get_schema_latest_version()
    end

    def send_get_schema_latest_version(schemaName)
      send_message('get_schema_latest_version', Get_schema_latest_version_args, :schemaName => schemaName)
    end

    def recv_get_schema_latest_version()
      result = receive_message(Get_schema_latest_version_result)
      return result.success unless result.success.nil?
      raise result.o1 unless result.o1.nil?
      raise result.o2 unless result.o2.nil?
      raise ::Thrift::ApplicationException.new(::Thrift::ApplicationException::MISSING_RESULT, 'get_schema_latest_version failed: unknown result')
    end

    def get_schema_all_versions(schemaName)
      send_get_schema_all_versions(schemaName)
      return recv_get_schema_all_versions()
    end

    def send_get_schema_all_versions(schemaName)
      send_message('get_schema_all_versions', Get_schema_all_versions_args, :schemaName => schemaName)
    end

    def recv_get_schema_all_versions()
      result = receive_message(Get_schema_all_versions_result)
      return result.success unless result.success.nil?
      raise result.o1 unless result.o1.nil?
      raise result.o2 unless result.o2.nil?
      raise ::Thrift::ApplicationException.new(::Thrift::ApplicationException::MISSING_RESULT, 'get_schema_all_versions failed: unknown result')
    end

    def drop_schema_version(schemaVersion)
      send_drop_schema_version(schemaVersion)
      recv_drop_schema_version()
    end

    def send_drop_schema_version(schemaVersion)
      send_message('drop_schema_version', Drop_schema_version_args, :schemaVersion => schemaVersion)
    end

    def recv_drop_schema_version()
      result = receive_message(Drop_schema_version_result)
      raise result.o1 unless result.o1.nil?
      raise result.o2 unless result.o2.nil?
      return
    end

    def get_schemas_by_cols(rqst)
      send_get_schemas_by_cols(rqst)
      return recv_get_schemas_by_cols()
    end

    def send_get_schemas_by_cols(rqst)
      send_message('get_schemas_by_cols', Get_schemas_by_cols_args, :rqst => rqst)
    end

    def recv_get_schemas_by_cols()
      result = receive_message(Get_schemas_by_cols_result)
      return result.success unless result.success.nil?
      raise result.o1 unless result.o1.nil?
      raise ::Thrift::ApplicationException.new(::Thrift::ApplicationException::MISSING_RESULT, 'get_schemas_by_cols failed: unknown result')
    end

    def map_schema_version_to_serde(rqst)
      send_map_schema_version_to_serde(rqst)
      recv_map_schema_version_to_serde()
    end

    def send_map_schema_version_to_serde(rqst)
      send_message('map_schema_version_to_serde', Map_schema_version_to_serde_args, :rqst => rqst)
    end

    def recv_map_schema_version_to_serde()
      result = receive_message(Map_schema_version_to_serde_result)
      raise result.o1 unless result.o1.nil?
      raise result.o2 unless result.o2.nil?
      return
    end

    def set_schema_version_state(rqst)
      send_set_schema_version_state(rqst)
      recv_set_schema_version_state()
    end

    def send_set_schema_version_state(rqst)
      send_message('set_schema_version_state', Set_schema_version_state_args, :rqst => rqst)
    end

    def recv_set_schema_version_state()
      result = receive_message(Set_schema_version_state_result)
      raise result.o1 unless result.o1.nil?
      raise result.o2 unless result.o2.nil?
      raise result.o3 unless result.o3.nil?
      return
    end

    def add_serde(serde)
      send_add_serde(serde)
      recv_add_serde()
    end

    def send_add_serde(serde)
      send_message('add_serde', Add_serde_args, :serde => serde)
    end

    def recv_add_serde()
      result = receive_message(Add_serde_result)
      raise result.o1 unless result.o1.nil?
      raise result.o2 unless result.o2.nil?
      return
    end

    def get_serde(rqst)
      send_get_serde(rqst)
      return recv_get_serde()
    end

    def send_get_serde(rqst)
      send_message('get_serde', Get_serde_args, :rqst => rqst)
    end

    def recv_get_serde()
      result = receive_message(Get_serde_result)
      return result.success unless result.success.nil?
      raise result.o1 unless result.o1.nil?
      raise result.o2 unless result.o2.nil?
      raise ::Thrift::ApplicationException.new(::Thrift::ApplicationException::MISSING_RESULT, 'get_serde failed: unknown result')
    end

    def get_lock_materialization_rebuild(dbName, tableName, txnId)
      send_get_lock_materialization_rebuild(dbName, tableName, txnId)
      return recv_get_lock_materialization_rebuild()
    end

    def send_get_lock_materialization_rebuild(dbName, tableName, txnId)
      send_message('get_lock_materialization_rebuild', Get_lock_materialization_rebuild_args, :dbName => dbName, :tableName => tableName, :txnId => txnId)
    end

    def recv_get_lock_materialization_rebuild()
      result = receive_message(Get_lock_materialization_rebuild_result)
      return result.success unless result.success.nil?
      raise ::Thrift::ApplicationException.new(::Thrift::ApplicationException::MISSING_RESULT, 'get_lock_materialization_rebuild failed: unknown result')
    end

    def heartbeat_lock_materialization_rebuild(dbName, tableName, txnId)
      send_heartbeat_lock_materialization_rebuild(dbName, tableName, txnId)
      return recv_heartbeat_lock_materialization_rebuild()
    end

    def send_heartbeat_lock_materialization_rebuild(dbName, tableName, txnId)
      send_message('heartbeat_lock_materialization_rebuild', Heartbeat_lock_materialization_rebuild_args, :dbName => dbName, :tableName => tableName, :txnId => txnId)
    end

    def recv_heartbeat_lock_materialization_rebuild()
      result = receive_message(Heartbeat_lock_materialization_rebuild_result)
      return result.success unless result.success.nil?
      raise ::Thrift::ApplicationException.new(::Thrift::ApplicationException::MISSING_RESULT, 'heartbeat_lock_materialization_rebuild failed: unknown result')
    end

    def add_runtime_stats(stat)
      send_add_runtime_stats(stat)
      recv_add_runtime_stats()
    end

    def send_add_runtime_stats(stat)
      send_message('add_runtime_stats', Add_runtime_stats_args, :stat => stat)
    end

    def recv_add_runtime_stats()
      result = receive_message(Add_runtime_stats_result)
      raise result.o1 unless result.o1.nil?
      return
    end

    def get_runtime_stats(rqst)
      send_get_runtime_stats(rqst)
      return recv_get_runtime_stats()
    end

    def send_get_runtime_stats(rqst)
      send_message('get_runtime_stats', Get_runtime_stats_args, :rqst => rqst)
    end

    def recv_get_runtime_stats()
      result = receive_message(Get_runtime_stats_result)
      return result.success unless result.success.nil?
      raise result.o1 unless result.o1.nil?
      raise ::Thrift::ApplicationException.new(::Thrift::ApplicationException::MISSING_RESULT, 'get_runtime_stats failed: unknown result')
    end

    def get_partitions_with_specs(request)
      send_get_partitions_with_specs(request)
      return recv_get_partitions_with_specs()
    end

    def send_get_partitions_with_specs(request)
      send_message('get_partitions_with_specs', Get_partitions_with_specs_args, :request => request)
    end

    def recv_get_partitions_with_specs()
      result = receive_message(Get_partitions_with_specs_result)
      return result.success unless result.success.nil?
      raise result.o1 unless result.o1.nil?
      raise ::Thrift::ApplicationException.new(::Thrift::ApplicationException::MISSING_RESULT, 'get_partitions_with_specs failed: unknown result')
    end

    def scheduled_query_poll(request)
      send_scheduled_query_poll(request)
      return recv_scheduled_query_poll()
    end

    def send_scheduled_query_poll(request)
      send_message('scheduled_query_poll', Scheduled_query_poll_args, :request => request)
    end

    def recv_scheduled_query_poll()
      result = receive_message(Scheduled_query_poll_result)
      return result.success unless result.success.nil?
      raise result.o1 unless result.o1.nil?
      raise ::Thrift::ApplicationException.new(::Thrift::ApplicationException::MISSING_RESULT, 'scheduled_query_poll failed: unknown result')
    end

    def scheduled_query_maintenance(request)
      send_scheduled_query_maintenance(request)
      recv_scheduled_query_maintenance()
    end

    def send_scheduled_query_maintenance(request)
      send_message('scheduled_query_maintenance', Scheduled_query_maintenance_args, :request => request)
    end

    def recv_scheduled_query_maintenance()
      result = receive_message(Scheduled_query_maintenance_result)
      raise result.o1 unless result.o1.nil?
      raise result.o2 unless result.o2.nil?
      raise result.o3 unless result.o3.nil?
      raise result.o4 unless result.o4.nil?
      return
    end

    def scheduled_query_progress(info)
      send_scheduled_query_progress(info)
      recv_scheduled_query_progress()
    end

    def send_scheduled_query_progress(info)
      send_message('scheduled_query_progress', Scheduled_query_progress_args, :info => info)
    end

    def recv_scheduled_query_progress()
      result = receive_message(Scheduled_query_progress_result)
      raise result.o1 unless result.o1.nil?
      raise result.o2 unless result.o2.nil?
      return
    end

    def get_scheduled_query(scheduleKey)
      send_get_scheduled_query(scheduleKey)
      return recv_get_scheduled_query()
    end

    def send_get_scheduled_query(scheduleKey)
      send_message('get_scheduled_query', Get_scheduled_query_args, :scheduleKey => scheduleKey)
    end

    def recv_get_scheduled_query()
      result = receive_message(Get_scheduled_query_result)
      return result.success unless result.success.nil?
      raise result.o1 unless result.o1.nil?
      raise result.o2 unless result.o2.nil?
      raise ::Thrift::ApplicationException.new(::Thrift::ApplicationException::MISSING_RESULT, 'get_scheduled_query failed: unknown result')
    end

    def add_replication_metrics(replicationMetricList)
      send_add_replication_metrics(replicationMetricList)
      recv_add_replication_metrics()
    end

    def send_add_replication_metrics(replicationMetricList)
      send_message('add_replication_metrics', Add_replication_metrics_args, :replicationMetricList => replicationMetricList)
    end

    def recv_add_replication_metrics()
      result = receive_message(Add_replication_metrics_result)
      raise result.o1 unless result.o1.nil?
      return
    end

    def get_replication_metrics(rqst)
      send_get_replication_metrics(rqst)
      return recv_get_replication_metrics()
    end

    def send_get_replication_metrics(rqst)
      send_message('get_replication_metrics', Get_replication_metrics_args, :rqst => rqst)
    end

    def recv_get_replication_metrics()
      result = receive_message(Get_replication_metrics_result)
      return result.success unless result.success.nil?
      raise result.o1 unless result.o1.nil?
      raise ::Thrift::ApplicationException.new(::Thrift::ApplicationException::MISSING_RESULT, 'get_replication_metrics failed: unknown result')
    end

  end

  class Processor < ::FacebookService::Processor 
    include ::Thrift::Processor

    def process_getMetaConf(seqid, iprot, oprot)
      args = read_args(iprot, GetMetaConf_args)
      result = GetMetaConf_result.new()
      begin
        result.success = @handler.getMetaConf(args.key)
      rescue ::MetaException => o1
        result.o1 = o1
      end
      write_result(result, oprot, 'getMetaConf', seqid)
    end

    def process_setMetaConf(seqid, iprot, oprot)
      args = read_args(iprot, SetMetaConf_args)
      result = SetMetaConf_result.new()
      begin
        @handler.setMetaConf(args.key, args.value)
      rescue ::MetaException => o1
        result.o1 = o1
      end
      write_result(result, oprot, 'setMetaConf', seqid)
    end

    def process_create_catalog(seqid, iprot, oprot)
      args = read_args(iprot, Create_catalog_args)
      result = Create_catalog_result.new()
      begin
        @handler.create_catalog(args.catalog)
      rescue ::AlreadyExistsException => o1
        result.o1 = o1
      rescue ::InvalidObjectException => o2
        result.o2 = o2
      rescue ::MetaException => o3
        result.o3 = o3
      end
      write_result(result, oprot, 'create_catalog', seqid)
    end

    def process_alter_catalog(seqid, iprot, oprot)
      args = read_args(iprot, Alter_catalog_args)
      result = Alter_catalog_result.new()
      begin
        @handler.alter_catalog(args.rqst)
      rescue ::NoSuchObjectException => o1
        result.o1 = o1
      rescue ::InvalidOperationException => o2
        result.o2 = o2
      rescue ::MetaException => o3
        result.o3 = o3
      end
      write_result(result, oprot, 'alter_catalog', seqid)
    end

    def process_get_catalog(seqid, iprot, oprot)
      args = read_args(iprot, Get_catalog_args)
      result = Get_catalog_result.new()
      begin
        result.success = @handler.get_catalog(args.catName)
      rescue ::NoSuchObjectException => o1
        result.o1 = o1
      rescue ::MetaException => o2
        result.o2 = o2
      end
      write_result(result, oprot, 'get_catalog', seqid)
    end

    def process_get_catalogs(seqid, iprot, oprot)
      args = read_args(iprot, Get_catalogs_args)
      result = Get_catalogs_result.new()
      begin
        result.success = @handler.get_catalogs()
      rescue ::MetaException => o1
        result.o1 = o1
      end
      write_result(result, oprot, 'get_catalogs', seqid)
    end

    def process_drop_catalog(seqid, iprot, oprot)
      args = read_args(iprot, Drop_catalog_args)
      result = Drop_catalog_result.new()
      begin
        @handler.drop_catalog(args.catName)
      rescue ::NoSuchObjectException => o1
        result.o1 = o1
      rescue ::InvalidOperationException => o2
        result.o2 = o2
      rescue ::MetaException => o3
        result.o3 = o3
      end
      write_result(result, oprot, 'drop_catalog', seqid)
    end

    def process_create_database(seqid, iprot, oprot)
      args = read_args(iprot, Create_database_args)
      result = Create_database_result.new()
      begin
        @handler.create_database(args.database)
      rescue ::AlreadyExistsException => o1
        result.o1 = o1
      rescue ::InvalidObjectException => o2
        result.o2 = o2
      rescue ::MetaException => o3
        result.o3 = o3
      end
      write_result(result, oprot, 'create_database', seqid)
    end

    def process_get_database(seqid, iprot, oprot)
      args = read_args(iprot, Get_database_args)
      result = Get_database_result.new()
      begin
        result.success = @handler.get_database(args.name)
      rescue ::NoSuchObjectException => o1
        result.o1 = o1
      rescue ::MetaException => o2
        result.o2 = o2
      end
      write_result(result, oprot, 'get_database', seqid)
    end

    def process_get_database_req(seqid, iprot, oprot)
      args = read_args(iprot, Get_database_req_args)
      result = Get_database_req_result.new()
      begin
        result.success = @handler.get_database_req(args.request)
      rescue ::NoSuchObjectException => o1
        result.o1 = o1
      rescue ::MetaException => o2
        result.o2 = o2
      end
      write_result(result, oprot, 'get_database_req', seqid)
    end

    def process_drop_database(seqid, iprot, oprot)
      args = read_args(iprot, Drop_database_args)
      result = Drop_database_result.new()
      begin
        @handler.drop_database(args.name, args.deleteData, args.cascade)
      rescue ::NoSuchObjectException => o1
        result.o1 = o1
      rescue ::InvalidOperationException => o2
        result.o2 = o2
      rescue ::MetaException => o3
        result.o3 = o3
      end
      write_result(result, oprot, 'drop_database', seqid)
    end

    def process_get_databases(seqid, iprot, oprot)
      args = read_args(iprot, Get_databases_args)
      result = Get_databases_result.new()
      begin
        result.success = @handler.get_databases(args.pattern)
      rescue ::MetaException => o1
        result.o1 = o1
      end
      write_result(result, oprot, 'get_databases', seqid)
    end

    def process_get_all_databases(seqid, iprot, oprot)
      args = read_args(iprot, Get_all_databases_args)
      result = Get_all_databases_result.new()
      begin
        result.success = @handler.get_all_databases()
      rescue ::MetaException => o1
        result.o1 = o1
      end
      write_result(result, oprot, 'get_all_databases', seqid)
    end

    def process_alter_database(seqid, iprot, oprot)
      args = read_args(iprot, Alter_database_args)
      result = Alter_database_result.new()
      begin
        @handler.alter_database(args.dbname, args.db)
      rescue ::MetaException => o1
        result.o1 = o1
      rescue ::NoSuchObjectException => o2
        result.o2 = o2
      end
      write_result(result, oprot, 'alter_database', seqid)
    end

    def process_get_type(seqid, iprot, oprot)
      args = read_args(iprot, Get_type_args)
      result = Get_type_result.new()
      begin
        result.success = @handler.get_type(args.name)
      rescue ::MetaException => o1
        result.o1 = o1
      rescue ::NoSuchObjectException => o2
        result.o2 = o2
      end
      write_result(result, oprot, 'get_type', seqid)
    end

    def process_create_type(seqid, iprot, oprot)
      args = read_args(iprot, Create_type_args)
      result = Create_type_result.new()
      begin
        result.success = @handler.create_type(args.type)
      rescue ::AlreadyExistsException => o1
        result.o1 = o1
      rescue ::InvalidObjectException => o2
        result.o2 = o2
      rescue ::MetaException => o3
        result.o3 = o3
      end
      write_result(result, oprot, 'create_type', seqid)
    end

    def process_drop_type(seqid, iprot, oprot)
      args = read_args(iprot, Drop_type_args)
      result = Drop_type_result.new()
      begin
        result.success = @handler.drop_type(args.type)
      rescue ::MetaException => o1
        result.o1 = o1
      rescue ::NoSuchObjectException => o2
        result.o2 = o2
      end
      write_result(result, oprot, 'drop_type', seqid)
    end

    def process_get_type_all(seqid, iprot, oprot)
      args = read_args(iprot, Get_type_all_args)
      result = Get_type_all_result.new()
      begin
        result.success = @handler.get_type_all(args.name)
      rescue ::MetaException => o2
        result.o2 = o2
      end
      write_result(result, oprot, 'get_type_all', seqid)
    end

    def process_get_fields(seqid, iprot, oprot)
      args = read_args(iprot, Get_fields_args)
      result = Get_fields_result.new()
      begin
        result.success = @handler.get_fields(args.db_name, args.table_name)
      rescue ::MetaException => o1
        result.o1 = o1
      rescue ::UnknownTableException => o2
        result.o2 = o2
      rescue ::UnknownDBException => o3
        result.o3 = o3
      end
      write_result(result, oprot, 'get_fields', seqid)
    end

    def process_get_fields_with_environment_context(seqid, iprot, oprot)
      args = read_args(iprot, Get_fields_with_environment_context_args)
      result = Get_fields_with_environment_context_result.new()
      begin
        result.success = @handler.get_fields_with_environment_context(args.db_name, args.table_name, args.environment_context)
      rescue ::MetaException => o1
        result.o1 = o1
      rescue ::UnknownTableException => o2
        result.o2 = o2
      rescue ::UnknownDBException => o3
        result.o3 = o3
      end
      write_result(result, oprot, 'get_fields_with_environment_context', seqid)
    end

    def process_get_fields_req(seqid, iprot, oprot)
      args = read_args(iprot, Get_fields_req_args)
      result = Get_fields_req_result.new()
      begin
        result.success = @handler.get_fields_req(args.req)
      rescue ::MetaException => o1
        result.o1 = o1
      rescue ::UnknownTableException => o2
        result.o2 = o2
      rescue ::UnknownDBException => o3
        result.o3 = o3
      end
      write_result(result, oprot, 'get_fields_req', seqid)
    end

    def process_get_schema(seqid, iprot, oprot)
      args = read_args(iprot, Get_schema_args)
      result = Get_schema_result.new()
      begin
        result.success = @handler.get_schema(args.db_name, args.table_name)
      rescue ::MetaException => o1
        result.o1 = o1
      rescue ::UnknownTableException => o2
        result.o2 = o2
      rescue ::UnknownDBException => o3
        result.o3 = o3
      end
      write_result(result, oprot, 'get_schema', seqid)
    end

    def process_get_schema_with_environment_context(seqid, iprot, oprot)
      args = read_args(iprot, Get_schema_with_environment_context_args)
      result = Get_schema_with_environment_context_result.new()
      begin
        result.success = @handler.get_schema_with_environment_context(args.db_name, args.table_name, args.environment_context)
      rescue ::MetaException => o1
        result.o1 = o1
      rescue ::UnknownTableException => o2
        result.o2 = o2
      rescue ::UnknownDBException => o3
        result.o3 = o3
      end
      write_result(result, oprot, 'get_schema_with_environment_context', seqid)
    end

    def process_get_schema_req(seqid, iprot, oprot)
      args = read_args(iprot, Get_schema_req_args)
      result = Get_schema_req_result.new()
      begin
        result.success = @handler.get_schema_req(args.req)
      rescue ::MetaException => o1
        result.o1 = o1
      rescue ::UnknownTableException => o2
        result.o2 = o2
      rescue ::UnknownDBException => o3
        result.o3 = o3
      end
      write_result(result, oprot, 'get_schema_req', seqid)
    end

    def process_create_table(seqid, iprot, oprot)
      args = read_args(iprot, Create_table_args)
      result = Create_table_result.new()
      begin
        @handler.create_table(args.tbl)
      rescue ::AlreadyExistsException => o1
        result.o1 = o1
      rescue ::InvalidObjectException => o2
        result.o2 = o2
      rescue ::MetaException => o3
        result.o3 = o3
      rescue ::NoSuchObjectException => o4
        result.o4 = o4
      end
      write_result(result, oprot, 'create_table', seqid)
    end

    def process_create_table_with_environment_context(seqid, iprot, oprot)
      args = read_args(iprot, Create_table_with_environment_context_args)
      result = Create_table_with_environment_context_result.new()
      begin
        @handler.create_table_with_environment_context(args.tbl, args.environment_context)
      rescue ::AlreadyExistsException => o1
        result.o1 = o1
      rescue ::InvalidObjectException => o2
        result.o2 = o2
      rescue ::MetaException => o3
        result.o3 = o3
      rescue ::NoSuchObjectException => o4
        result.o4 = o4
      end
      write_result(result, oprot, 'create_table_with_environment_context', seqid)
    end

    def process_create_table_with_constraints(seqid, iprot, oprot)
      args = read_args(iprot, Create_table_with_constraints_args)
      result = Create_table_with_constraints_result.new()
      begin
        @handler.create_table_with_constraints(args.tbl, args.primaryKeys, args.foreignKeys, args.uniqueConstraints, args.notNullConstraints, args.defaultConstraints, args.checkConstraints)
      rescue ::AlreadyExistsException => o1
        result.o1 = o1
      rescue ::InvalidObjectException => o2
        result.o2 = o2
      rescue ::MetaException => o3
        result.o3 = o3
      rescue ::NoSuchObjectException => o4
        result.o4 = o4
      end
      write_result(result, oprot, 'create_table_with_constraints', seqid)
    end

    def process_create_table_req(seqid, iprot, oprot)
      args = read_args(iprot, Create_table_req_args)
      result = Create_table_req_result.new()
      begin
        @handler.create_table_req(args.request)
      rescue ::AlreadyExistsException => o1
        result.o1 = o1
      rescue ::InvalidObjectException => o2
        result.o2 = o2
      rescue ::MetaException => o3
        result.o3 = o3
      rescue ::NoSuchObjectException => o4
        result.o4 = o4
      end
      write_result(result, oprot, 'create_table_req', seqid)
    end

    def process_drop_constraint(seqid, iprot, oprot)
      args = read_args(iprot, Drop_constraint_args)
      result = Drop_constraint_result.new()
      begin
        @handler.drop_constraint(args.req)
      rescue ::NoSuchObjectException => o1
        result.o1 = o1
      rescue ::MetaException => o3
        result.o3 = o3
      end
      write_result(result, oprot, 'drop_constraint', seqid)
    end

    def process_add_primary_key(seqid, iprot, oprot)
      args = read_args(iprot, Add_primary_key_args)
      result = Add_primary_key_result.new()
      begin
        @handler.add_primary_key(args.req)
      rescue ::NoSuchObjectException => o1
        result.o1 = o1
      rescue ::MetaException => o2
        result.o2 = o2
      end
      write_result(result, oprot, 'add_primary_key', seqid)
    end

    def process_add_foreign_key(seqid, iprot, oprot)
      args = read_args(iprot, Add_foreign_key_args)
      result = Add_foreign_key_result.new()
      begin
        @handler.add_foreign_key(args.req)
      rescue ::NoSuchObjectException => o1
        result.o1 = o1
      rescue ::MetaException => o2
        result.o2 = o2
      end
      write_result(result, oprot, 'add_foreign_key', seqid)
    end

    def process_add_unique_constraint(seqid, iprot, oprot)
      args = read_args(iprot, Add_unique_constraint_args)
      result = Add_unique_constraint_result.new()
      begin
        @handler.add_unique_constraint(args.req)
      rescue ::NoSuchObjectException => o1
        result.o1 = o1
      rescue ::MetaException => o2
        result.o2 = o2
      end
      write_result(result, oprot, 'add_unique_constraint', seqid)
    end

    def process_add_not_null_constraint(seqid, iprot, oprot)
      args = read_args(iprot, Add_not_null_constraint_args)
      result = Add_not_null_constraint_result.new()
      begin
        @handler.add_not_null_constraint(args.req)
      rescue ::NoSuchObjectException => o1
        result.o1 = o1
      rescue ::MetaException => o2
        result.o2 = o2
      end
      write_result(result, oprot, 'add_not_null_constraint', seqid)
    end

    def process_add_default_constraint(seqid, iprot, oprot)
      args = read_args(iprot, Add_default_constraint_args)
      result = Add_default_constraint_result.new()
      begin
        @handler.add_default_constraint(args.req)
      rescue ::NoSuchObjectException => o1
        result.o1 = o1
      rescue ::MetaException => o2
        result.o2 = o2
      end
      write_result(result, oprot, 'add_default_constraint', seqid)
    end

    def process_add_check_constraint(seqid, iprot, oprot)
      args = read_args(iprot, Add_check_constraint_args)
      result = Add_check_constraint_result.new()
      begin
        @handler.add_check_constraint(args.req)
      rescue ::NoSuchObjectException => o1
        result.o1 = o1
      rescue ::MetaException => o2
        result.o2 = o2
      end
      write_result(result, oprot, 'add_check_constraint', seqid)
    end

    def process_drop_table(seqid, iprot, oprot)
      args = read_args(iprot, Drop_table_args)
      result = Drop_table_result.new()
      begin
        @handler.drop_table(args.dbname, args.name, args.deleteData)
      rescue ::NoSuchObjectException => o1
        result.o1 = o1
      rescue ::MetaException => o3
        result.o3 = o3
      end
      write_result(result, oprot, 'drop_table', seqid)
    end

    def process_drop_table_with_environment_context(seqid, iprot, oprot)
      args = read_args(iprot, Drop_table_with_environment_context_args)
      result = Drop_table_with_environment_context_result.new()
      begin
        @handler.drop_table_with_environment_context(args.dbname, args.name, args.deleteData, args.environment_context)
      rescue ::NoSuchObjectException => o1
        result.o1 = o1
      rescue ::MetaException => o3
        result.o3 = o3
      end
      write_result(result, oprot, 'drop_table_with_environment_context', seqid)
    end

    def process_truncate_table(seqid, iprot, oprot)
      args = read_args(iprot, Truncate_table_args)
      result = Truncate_table_result.new()
      begin
        @handler.truncate_table(args.dbName, args.tableName, args.partNames)
      rescue ::MetaException => o1
        result.o1 = o1
      end
      write_result(result, oprot, 'truncate_table', seqid)
    end

    def process_truncate_table_req(seqid, iprot, oprot)
      args = read_args(iprot, Truncate_table_req_args)
      result = Truncate_table_req_result.new()
      begin
        result.success = @handler.truncate_table_req(args.req)
      rescue ::MetaException => o1
        result.o1 = o1
      end
      write_result(result, oprot, 'truncate_table_req', seqid)
    end

    def process_get_tables(seqid, iprot, oprot)
      args = read_args(iprot, Get_tables_args)
      result = Get_tables_result.new()
      begin
        result.success = @handler.get_tables(args.db_name, args.pattern)
      rescue ::MetaException => o1
        result.o1 = o1
      end
      write_result(result, oprot, 'get_tables', seqid)
    end

    def process_get_tables_by_type(seqid, iprot, oprot)
      args = read_args(iprot, Get_tables_by_type_args)
      result = Get_tables_by_type_result.new()
      begin
        result.success = @handler.get_tables_by_type(args.db_name, args.pattern, args.tableType)
      rescue ::MetaException => o1
        result.o1 = o1
      end
      write_result(result, oprot, 'get_tables_by_type', seqid)
    end

    def process_get_all_materialized_view_objects_for_rewriting(seqid, iprot, oprot)
      args = read_args(iprot, Get_all_materialized_view_objects_for_rewriting_args)
      result = Get_all_materialized_view_objects_for_rewriting_result.new()
      begin
        result.success = @handler.get_all_materialized_view_objects_for_rewriting()
      rescue ::MetaException => o1
        result.o1 = o1
      end
      write_result(result, oprot, 'get_all_materialized_view_objects_for_rewriting', seqid)
    end

    def process_get_materialized_views_for_rewriting(seqid, iprot, oprot)
      args = read_args(iprot, Get_materialized_views_for_rewriting_args)
      result = Get_materialized_views_for_rewriting_result.new()
      begin
        result.success = @handler.get_materialized_views_for_rewriting(args.db_name)
      rescue ::MetaException => o1
        result.o1 = o1
      end
      write_result(result, oprot, 'get_materialized_views_for_rewriting', seqid)
    end

    def process_get_table_meta(seqid, iprot, oprot)
      args = read_args(iprot, Get_table_meta_args)
      result = Get_table_meta_result.new()
      begin
        result.success = @handler.get_table_meta(args.db_patterns, args.tbl_patterns, args.tbl_types)
      rescue ::MetaException => o1
        result.o1 = o1
      end
      write_result(result, oprot, 'get_table_meta', seqid)
    end

    def process_get_all_tables(seqid, iprot, oprot)
      args = read_args(iprot, Get_all_tables_args)
      result = Get_all_tables_result.new()
      begin
        result.success = @handler.get_all_tables(args.db_name)
      rescue ::MetaException => o1
        result.o1 = o1
      end
      write_result(result, oprot, 'get_all_tables', seqid)
    end

    def process_get_table(seqid, iprot, oprot)
      args = read_args(iprot, Get_table_args)
      result = Get_table_result.new()
      begin
        result.success = @handler.get_table(args.dbname, args.tbl_name)
      rescue ::MetaException => o1
        result.o1 = o1
      rescue ::NoSuchObjectException => o2
        result.o2 = o2
      end
      write_result(result, oprot, 'get_table', seqid)
    end

    def process_get_table_objects_by_name(seqid, iprot, oprot)
      args = read_args(iprot, Get_table_objects_by_name_args)
      result = Get_table_objects_by_name_result.new()
      result.success = @handler.get_table_objects_by_name(args.dbname, args.tbl_names)
      write_result(result, oprot, 'get_table_objects_by_name', seqid)
    end

    def process_get_tables_ext(seqid, iprot, oprot)
      args = read_args(iprot, Get_tables_ext_args)
      result = Get_tables_ext_result.new()
      begin
        result.success = @handler.get_tables_ext(args.req)
      rescue ::MetaException => o1
        result.o1 = o1
      end
      write_result(result, oprot, 'get_tables_ext', seqid)
    end

    def process_get_table_req(seqid, iprot, oprot)
      args = read_args(iprot, Get_table_req_args)
      result = Get_table_req_result.new()
      begin
        result.success = @handler.get_table_req(args.req)
      rescue ::MetaException => o1
        result.o1 = o1
      rescue ::NoSuchObjectException => o2
        result.o2 = o2
      end
      write_result(result, oprot, 'get_table_req', seqid)
    end

    def process_get_table_objects_by_name_req(seqid, iprot, oprot)
      args = read_args(iprot, Get_table_objects_by_name_req_args)
      result = Get_table_objects_by_name_req_result.new()
      begin
        result.success = @handler.get_table_objects_by_name_req(args.req)
      rescue ::MetaException => o1
        result.o1 = o1
      rescue ::InvalidOperationException => o2
        result.o2 = o2
      rescue ::UnknownDBException => o3
        result.o3 = o3
      end
      write_result(result, oprot, 'get_table_objects_by_name_req', seqid)
    end

    def process_get_materialization_invalidation_info(seqid, iprot, oprot)
      args = read_args(iprot, Get_materialization_invalidation_info_args)
      result = Get_materialization_invalidation_info_result.new()
      begin
        result.success = @handler.get_materialization_invalidation_info(args.creation_metadata, args.validTxnList)
      rescue ::MetaException => o1
        result.o1 = o1
      rescue ::InvalidOperationException => o2
        result.o2 = o2
      rescue ::UnknownDBException => o3
        result.o3 = o3
      end
      write_result(result, oprot, 'get_materialization_invalidation_info', seqid)
    end

    def process_update_creation_metadata(seqid, iprot, oprot)
      args = read_args(iprot, Update_creation_metadata_args)
      result = Update_creation_metadata_result.new()
      begin
        @handler.update_creation_metadata(args.catName, args.dbname, args.tbl_name, args.creation_metadata)
      rescue ::MetaException => o1
        result.o1 = o1
      rescue ::InvalidOperationException => o2
        result.o2 = o2
      rescue ::UnknownDBException => o3
        result.o3 = o3
      end
      write_result(result, oprot, 'update_creation_metadata', seqid)
    end

    def process_get_table_names_by_filter(seqid, iprot, oprot)
      args = read_args(iprot, Get_table_names_by_filter_args)
      result = Get_table_names_by_filter_result.new()
      begin
        result.success = @handler.get_table_names_by_filter(args.dbname, args.filter, args.max_tables)
      rescue ::MetaException => o1
        result.o1 = o1
      rescue ::InvalidOperationException => o2
        result.o2 = o2
      rescue ::UnknownDBException => o3
        result.o3 = o3
      end
      write_result(result, oprot, 'get_table_names_by_filter', seqid)
    end

    def process_alter_table(seqid, iprot, oprot)
      args = read_args(iprot, Alter_table_args)
      result = Alter_table_result.new()
      begin
        @handler.alter_table(args.dbname, args.tbl_name, args.new_tbl)
      rescue ::InvalidOperationException => o1
        result.o1 = o1
      rescue ::MetaException => o2
        result.o2 = o2
      end
      write_result(result, oprot, 'alter_table', seqid)
    end

    def process_alter_table_with_environment_context(seqid, iprot, oprot)
      args = read_args(iprot, Alter_table_with_environment_context_args)
      result = Alter_table_with_environment_context_result.new()
      begin
        @handler.alter_table_with_environment_context(args.dbname, args.tbl_name, args.new_tbl, args.environment_context)
      rescue ::InvalidOperationException => o1
        result.o1 = o1
      rescue ::MetaException => o2
        result.o2 = o2
      end
      write_result(result, oprot, 'alter_table_with_environment_context', seqid)
    end

    def process_alter_table_with_cascade(seqid, iprot, oprot)
      args = read_args(iprot, Alter_table_with_cascade_args)
      result = Alter_table_with_cascade_result.new()
      begin
        @handler.alter_table_with_cascade(args.dbname, args.tbl_name, args.new_tbl, args.cascade)
      rescue ::InvalidOperationException => o1
        result.o1 = o1
      rescue ::MetaException => o2
        result.o2 = o2
      end
      write_result(result, oprot, 'alter_table_with_cascade', seqid)
    end

    def process_alter_table_req(seqid, iprot, oprot)
      args = read_args(iprot, Alter_table_req_args)
      result = Alter_table_req_result.new()
      begin
        result.success = @handler.alter_table_req(args.req)
      rescue ::InvalidOperationException => o1
        result.o1 = o1
      rescue ::MetaException => o2
        result.o2 = o2
      end
      write_result(result, oprot, 'alter_table_req', seqid)
    end

    def process_add_partition(seqid, iprot, oprot)
      args = read_args(iprot, Add_partition_args)
      result = Add_partition_result.new()
      begin
        result.success = @handler.add_partition(args.new_part)
      rescue ::InvalidObjectException => o1
        result.o1 = o1
      rescue ::AlreadyExistsException => o2
        result.o2 = o2
      rescue ::MetaException => o3
        result.o3 = o3
      end
      write_result(result, oprot, 'add_partition', seqid)
    end

    def process_add_partition_with_environment_context(seqid, iprot, oprot)
      args = read_args(iprot, Add_partition_with_environment_context_args)
      result = Add_partition_with_environment_context_result.new()
      begin
        result.success = @handler.add_partition_with_environment_context(args.new_part, args.environment_context)
      rescue ::InvalidObjectException => o1
        result.o1 = o1
      rescue ::AlreadyExistsException => o2
        result.o2 = o2
      rescue ::MetaException => o3
        result.o3 = o3
      end
      write_result(result, oprot, 'add_partition_with_environment_context', seqid)
    end

    def process_add_partitions(seqid, iprot, oprot)
      args = read_args(iprot, Add_partitions_args)
      result = Add_partitions_result.new()
      begin
        result.success = @handler.add_partitions(args.new_parts)
      rescue ::InvalidObjectException => o1
        result.o1 = o1
      rescue ::AlreadyExistsException => o2
        result.o2 = o2
      rescue ::MetaException => o3
        result.o3 = o3
      end
      write_result(result, oprot, 'add_partitions', seqid)
    end

    def process_add_partitions_pspec(seqid, iprot, oprot)
      args = read_args(iprot, Add_partitions_pspec_args)
      result = Add_partitions_pspec_result.new()
      begin
        result.success = @handler.add_partitions_pspec(args.new_parts)
      rescue ::InvalidObjectException => o1
        result.o1 = o1
      rescue ::AlreadyExistsException => o2
        result.o2 = o2
      rescue ::MetaException => o3
        result.o3 = o3
      end
      write_result(result, oprot, 'add_partitions_pspec', seqid)
    end

    def process_append_partition(seqid, iprot, oprot)
      args = read_args(iprot, Append_partition_args)
      result = Append_partition_result.new()
      begin
        result.success = @handler.append_partition(args.db_name, args.tbl_name, args.part_vals)
      rescue ::InvalidObjectException => o1
        result.o1 = o1
      rescue ::AlreadyExistsException => o2
        result.o2 = o2
      rescue ::MetaException => o3
        result.o3 = o3
      end
      write_result(result, oprot, 'append_partition', seqid)
    end

    def process_add_partitions_req(seqid, iprot, oprot)
      args = read_args(iprot, Add_partitions_req_args)
      result = Add_partitions_req_result.new()
      begin
        result.success = @handler.add_partitions_req(args.request)
      rescue ::InvalidObjectException => o1
        result.o1 = o1
      rescue ::AlreadyExistsException => o2
        result.o2 = o2
      rescue ::MetaException => o3
        result.o3 = o3
      end
      write_result(result, oprot, 'add_partitions_req', seqid)
    end

    def process_append_partition_with_environment_context(seqid, iprot, oprot)
      args = read_args(iprot, Append_partition_with_environment_context_args)
      result = Append_partition_with_environment_context_result.new()
      begin
        result.success = @handler.append_partition_with_environment_context(args.db_name, args.tbl_name, args.part_vals, args.environment_context)
      rescue ::InvalidObjectException => o1
        result.o1 = o1
      rescue ::AlreadyExistsException => o2
        result.o2 = o2
      rescue ::MetaException => o3
        result.o3 = o3
      end
      write_result(result, oprot, 'append_partition_with_environment_context', seqid)
    end

    def process_append_partition_by_name(seqid, iprot, oprot)
      args = read_args(iprot, Append_partition_by_name_args)
      result = Append_partition_by_name_result.new()
      begin
        result.success = @handler.append_partition_by_name(args.db_name, args.tbl_name, args.part_name)
      rescue ::InvalidObjectException => o1
        result.o1 = o1
      rescue ::AlreadyExistsException => o2
        result.o2 = o2
      rescue ::MetaException => o3
        result.o3 = o3
      end
      write_result(result, oprot, 'append_partition_by_name', seqid)
    end

    def process_append_partition_by_name_with_environment_context(seqid, iprot, oprot)
      args = read_args(iprot, Append_partition_by_name_with_environment_context_args)
      result = Append_partition_by_name_with_environment_context_result.new()
      begin
        result.success = @handler.append_partition_by_name_with_environment_context(args.db_name, args.tbl_name, args.part_name, args.environment_context)
      rescue ::InvalidObjectException => o1
        result.o1 = o1
      rescue ::AlreadyExistsException => o2
        result.o2 = o2
      rescue ::MetaException => o3
        result.o3 = o3
      end
      write_result(result, oprot, 'append_partition_by_name_with_environment_context', seqid)
    end

    def process_drop_partition(seqid, iprot, oprot)
      args = read_args(iprot, Drop_partition_args)
      result = Drop_partition_result.new()
      begin
        result.success = @handler.drop_partition(args.db_name, args.tbl_name, args.part_vals, args.deleteData)
      rescue ::NoSuchObjectException => o1
        result.o1 = o1
      rescue ::MetaException => o2
        result.o2 = o2
      end
      write_result(result, oprot, 'drop_partition', seqid)
    end

    def process_drop_partition_with_environment_context(seqid, iprot, oprot)
      args = read_args(iprot, Drop_partition_with_environment_context_args)
      result = Drop_partition_with_environment_context_result.new()
      begin
        result.success = @handler.drop_partition_with_environment_context(args.db_name, args.tbl_name, args.part_vals, args.deleteData, args.environment_context)
      rescue ::NoSuchObjectException => o1
        result.o1 = o1
      rescue ::MetaException => o2
        result.o2 = o2
      end
      write_result(result, oprot, 'drop_partition_with_environment_context', seqid)
    end

    def process_drop_partition_by_name(seqid, iprot, oprot)
      args = read_args(iprot, Drop_partition_by_name_args)
      result = Drop_partition_by_name_result.new()
      begin
        result.success = @handler.drop_partition_by_name(args.db_name, args.tbl_name, args.part_name, args.deleteData)
      rescue ::NoSuchObjectException => o1
        result.o1 = o1
      rescue ::MetaException => o2
        result.o2 = o2
      end
      write_result(result, oprot, 'drop_partition_by_name', seqid)
    end

    def process_drop_partition_by_name_with_environment_context(seqid, iprot, oprot)
      args = read_args(iprot, Drop_partition_by_name_with_environment_context_args)
      result = Drop_partition_by_name_with_environment_context_result.new()
      begin
        result.success = @handler.drop_partition_by_name_with_environment_context(args.db_name, args.tbl_name, args.part_name, args.deleteData, args.environment_context)
      rescue ::NoSuchObjectException => o1
        result.o1 = o1
      rescue ::MetaException => o2
        result.o2 = o2
      end
      write_result(result, oprot, 'drop_partition_by_name_with_environment_context', seqid)
    end

    def process_drop_partitions_req(seqid, iprot, oprot)
      args = read_args(iprot, Drop_partitions_req_args)
      result = Drop_partitions_req_result.new()
      begin
        result.success = @handler.drop_partitions_req(args.req)
      rescue ::NoSuchObjectException => o1
        result.o1 = o1
      rescue ::MetaException => o2
        result.o2 = o2
      end
      write_result(result, oprot, 'drop_partitions_req', seqid)
    end

    def process_get_partition(seqid, iprot, oprot)
      args = read_args(iprot, Get_partition_args)
      result = Get_partition_result.new()
      begin
        result.success = @handler.get_partition(args.db_name, args.tbl_name, args.part_vals)
      rescue ::MetaException => o1
        result.o1 = o1
      rescue ::NoSuchObjectException => o2
        result.o2 = o2
      end
      write_result(result, oprot, 'get_partition', seqid)
    end

    def process_get_partition_req(seqid, iprot, oprot)
      args = read_args(iprot, Get_partition_req_args)
      result = Get_partition_req_result.new()
      begin
        result.success = @handler.get_partition_req(args.req)
      rescue ::MetaException => o1
        result.o1 = o1
      rescue ::NoSuchObjectException => o2
        result.o2 = o2
      end
      write_result(result, oprot, 'get_partition_req', seqid)
    end

    def process_exchange_partition(seqid, iprot, oprot)
      args = read_args(iprot, Exchange_partition_args)
      result = Exchange_partition_result.new()
      begin
        result.success = @handler.exchange_partition(args.partitionSpecs, args.source_db, args.source_table_name, args.dest_db, args.dest_table_name)
      rescue ::MetaException => o1
        result.o1 = o1
      rescue ::NoSuchObjectException => o2
        result.o2 = o2
      rescue ::InvalidObjectException => o3
        result.o3 = o3
      rescue ::InvalidInputException => o4
        result.o4 = o4
      end
      write_result(result, oprot, 'exchange_partition', seqid)
    end

    def process_exchange_partitions(seqid, iprot, oprot)
      args = read_args(iprot, Exchange_partitions_args)
      result = Exchange_partitions_result.new()
      begin
        result.success = @handler.exchange_partitions(args.partitionSpecs, args.source_db, args.source_table_name, args.dest_db, args.dest_table_name)
      rescue ::MetaException => o1
        result.o1 = o1
      rescue ::NoSuchObjectException => o2
        result.o2 = o2
      rescue ::InvalidObjectException => o3
        result.o3 = o3
      rescue ::InvalidInputException => o4
        result.o4 = o4
      end
      write_result(result, oprot, 'exchange_partitions', seqid)
    end

    def process_get_partition_with_auth(seqid, iprot, oprot)
      args = read_args(iprot, Get_partition_with_auth_args)
      result = Get_partition_with_auth_result.new()
      begin
        result.success = @handler.get_partition_with_auth(args.db_name, args.tbl_name, args.part_vals, args.user_name, args.group_names)
      rescue ::MetaException => o1
        result.o1 = o1
      rescue ::NoSuchObjectException => o2
        result.o2 = o2
      end
      write_result(result, oprot, 'get_partition_with_auth', seqid)
    end

    def process_get_partition_by_name(seqid, iprot, oprot)
      args = read_args(iprot, Get_partition_by_name_args)
      result = Get_partition_by_name_result.new()
      begin
        result.success = @handler.get_partition_by_name(args.db_name, args.tbl_name, args.part_name)
      rescue ::MetaException => o1
        result.o1 = o1
      rescue ::NoSuchObjectException => o2
        result.o2 = o2
      end
      write_result(result, oprot, 'get_partition_by_name', seqid)
    end

    def process_get_partitions(seqid, iprot, oprot)
      args = read_args(iprot, Get_partitions_args)
      result = Get_partitions_result.new()
      begin
        result.success = @handler.get_partitions(args.db_name, args.tbl_name, args.max_parts)
      rescue ::NoSuchObjectException => o1
        result.o1 = o1
      rescue ::MetaException => o2
        result.o2 = o2
      end
      write_result(result, oprot, 'get_partitions', seqid)
    end

    def process_get_partitions_req(seqid, iprot, oprot)
      args = read_args(iprot, Get_partitions_req_args)
      result = Get_partitions_req_result.new()
      begin
        result.success = @handler.get_partitions_req(args.req)
      rescue ::NoSuchObjectException => o1
        result.o1 = o1
      rescue ::MetaException => o2
        result.o2 = o2
      end
      write_result(result, oprot, 'get_partitions_req', seqid)
    end

    def process_get_partitions_with_auth(seqid, iprot, oprot)
      args = read_args(iprot, Get_partitions_with_auth_args)
      result = Get_partitions_with_auth_result.new()
      begin
        result.success = @handler.get_partitions_with_auth(args.db_name, args.tbl_name, args.max_parts, args.user_name, args.group_names)
      rescue ::NoSuchObjectException => o1
        result.o1 = o1
      rescue ::MetaException => o2
        result.o2 = o2
      end
      write_result(result, oprot, 'get_partitions_with_auth', seqid)
    end

    def process_get_partitions_pspec(seqid, iprot, oprot)
      args = read_args(iprot, Get_partitions_pspec_args)
      result = Get_partitions_pspec_result.new()
      begin
        result.success = @handler.get_partitions_pspec(args.db_name, args.tbl_name, args.max_parts)
      rescue ::NoSuchObjectException => o1
        result.o1 = o1
      rescue ::MetaException => o2
        result.o2 = o2
      end
      write_result(result, oprot, 'get_partitions_pspec', seqid)
    end

    def process_get_partition_names(seqid, iprot, oprot)
      args = read_args(iprot, Get_partition_names_args)
      result = Get_partition_names_result.new()
      begin
        result.success = @handler.get_partition_names(args.db_name, args.tbl_name, args.max_parts)
      rescue ::NoSuchObjectException => o1
        result.o1 = o1
      rescue ::MetaException => o2
        result.o2 = o2
      end
      write_result(result, oprot, 'get_partition_names', seqid)
    end

    def process_get_partition_values(seqid, iprot, oprot)
      args = read_args(iprot, Get_partition_values_args)
      result = Get_partition_values_result.new()
      begin
        result.success = @handler.get_partition_values(args.request)
      rescue ::MetaException => o1
        result.o1 = o1
      rescue ::NoSuchObjectException => o2
        result.o2 = o2
      end
      write_result(result, oprot, 'get_partition_values', seqid)
    end

    def process_get_partitions_ps(seqid, iprot, oprot)
      args = read_args(iprot, Get_partitions_ps_args)
      result = Get_partitions_ps_result.new()
      begin
        result.success = @handler.get_partitions_ps(args.db_name, args.tbl_name, args.part_vals, args.max_parts)
      rescue ::MetaException => o1
        result.o1 = o1
      rescue ::NoSuchObjectException => o2
        result.o2 = o2
      end
      write_result(result, oprot, 'get_partitions_ps', seqid)
    end

    def process_get_partitions_ps_with_auth(seqid, iprot, oprot)
      args = read_args(iprot, Get_partitions_ps_with_auth_args)
      result = Get_partitions_ps_with_auth_result.new()
      begin
        result.success = @handler.get_partitions_ps_with_auth(args.db_name, args.tbl_name, args.part_vals, args.max_parts, args.user_name, args.group_names)
      rescue ::NoSuchObjectException => o1
        result.o1 = o1
      rescue ::MetaException => o2
        result.o2 = o2
      end
      write_result(result, oprot, 'get_partitions_ps_with_auth', seqid)
    end

    def process_get_partitions_ps_with_auth_req(seqid, iprot, oprot)
      args = read_args(iprot, Get_partitions_ps_with_auth_req_args)
      result = Get_partitions_ps_with_auth_req_result.new()
      begin
        result.success = @handler.get_partitions_ps_with_auth_req(args.req)
      rescue ::MetaException => o1
        result.o1 = o1
      rescue ::NoSuchObjectException => o2
        result.o2 = o2
      end
      write_result(result, oprot, 'get_partitions_ps_with_auth_req', seqid)
    end

    def process_get_partition_names_ps(seqid, iprot, oprot)
      args = read_args(iprot, Get_partition_names_ps_args)
      result = Get_partition_names_ps_result.new()
      begin
        result.success = @handler.get_partition_names_ps(args.db_name, args.tbl_name, args.part_vals, args.max_parts)
      rescue ::MetaException => o1
        result.o1 = o1
      rescue ::NoSuchObjectException => o2
        result.o2 = o2
      end
      write_result(result, oprot, 'get_partition_names_ps', seqid)
    end

    def process_get_partition_names_ps_req(seqid, iprot, oprot)
      args = read_args(iprot, Get_partition_names_ps_req_args)
      result = Get_partition_names_ps_req_result.new()
      begin
        result.success = @handler.get_partition_names_ps_req(args.req)
      rescue ::MetaException => o1
        result.o1 = o1
      rescue ::NoSuchObjectException => o2
        result.o2 = o2
      end
      write_result(result, oprot, 'get_partition_names_ps_req', seqid)
    end

    def process_get_partition_names_req(seqid, iprot, oprot)
      args = read_args(iprot, Get_partition_names_req_args)
      result = Get_partition_names_req_result.new()
      begin
        result.success = @handler.get_partition_names_req(args.req)
      rescue ::MetaException => o1
        result.o1 = o1
      rescue ::NoSuchObjectException => o2
        result.o2 = o2
      end
      write_result(result, oprot, 'get_partition_names_req', seqid)
    end

    def process_get_partitions_by_filter(seqid, iprot, oprot)
      args = read_args(iprot, Get_partitions_by_filter_args)
      result = Get_partitions_by_filter_result.new()
      begin
        result.success = @handler.get_partitions_by_filter(args.db_name, args.tbl_name, args.filter, args.max_parts)
      rescue ::MetaException => o1
        result.o1 = o1
      rescue ::NoSuchObjectException => o2
        result.o2 = o2
      end
      write_result(result, oprot, 'get_partitions_by_filter', seqid)
    end

    def process_get_part_specs_by_filter(seqid, iprot, oprot)
      args = read_args(iprot, Get_part_specs_by_filter_args)
      result = Get_part_specs_by_filter_result.new()
      begin
        result.success = @handler.get_part_specs_by_filter(args.db_name, args.tbl_name, args.filter, args.max_parts)
      rescue ::MetaException => o1
        result.o1 = o1
      rescue ::NoSuchObjectException => o2
        result.o2 = o2
      end
      write_result(result, oprot, 'get_part_specs_by_filter', seqid)
    end

    def process_get_partitions_by_expr(seqid, iprot, oprot)
      args = read_args(iprot, Get_partitions_by_expr_args)
      result = Get_partitions_by_expr_result.new()
      begin
        result.success = @handler.get_partitions_by_expr(args.req)
      rescue ::MetaException => o1
        result.o1 = o1
      rescue ::NoSuchObjectException => o2
        result.o2 = o2
      end
      write_result(result, oprot, 'get_partitions_by_expr', seqid)
    end

    def process_get_partitions_spec_by_expr(seqid, iprot, oprot)
      args = read_args(iprot, Get_partitions_spec_by_expr_args)
      result = Get_partitions_spec_by_expr_result.new()
      begin
        result.success = @handler.get_partitions_spec_by_expr(args.req)
      rescue ::MetaException => o1
        result.o1 = o1
      rescue ::NoSuchObjectException => o2
        result.o2 = o2
      end
      write_result(result, oprot, 'get_partitions_spec_by_expr', seqid)
    end

    def process_get_num_partitions_by_filter(seqid, iprot, oprot)
      args = read_args(iprot, Get_num_partitions_by_filter_args)
      result = Get_num_partitions_by_filter_result.new()
      begin
        result.success = @handler.get_num_partitions_by_filter(args.db_name, args.tbl_name, args.filter)
      rescue ::MetaException => o1
        result.o1 = o1
      rescue ::NoSuchObjectException => o2
        result.o2 = o2
      end
      write_result(result, oprot, 'get_num_partitions_by_filter', seqid)
    end

    def process_get_partitions_by_names(seqid, iprot, oprot)
      args = read_args(iprot, Get_partitions_by_names_args)
      result = Get_partitions_by_names_result.new()
      begin
        result.success = @handler.get_partitions_by_names(args.db_name, args.tbl_name, args.names)
      rescue ::MetaException => o1
        result.o1 = o1
      rescue ::NoSuchObjectException => o2
        result.o2 = o2
      end
      write_result(result, oprot, 'get_partitions_by_names', seqid)
    end

    def process_get_partitions_by_names_req(seqid, iprot, oprot)
      args = read_args(iprot, Get_partitions_by_names_req_args)
      result = Get_partitions_by_names_req_result.new()
      begin
        result.success = @handler.get_partitions_by_names_req(args.req)
      rescue ::MetaException => o1
        result.o1 = o1
      rescue ::NoSuchObjectException => o2
        result.o2 = o2
      end
      write_result(result, oprot, 'get_partitions_by_names_req', seqid)
    end

    def process_alter_partition(seqid, iprot, oprot)
      args = read_args(iprot, Alter_partition_args)
      result = Alter_partition_result.new()
      begin
        @handler.alter_partition(args.db_name, args.tbl_name, args.new_part)
      rescue ::InvalidOperationException => o1
        result.o1 = o1
      rescue ::MetaException => o2
        result.o2 = o2
      end
      write_result(result, oprot, 'alter_partition', seqid)
    end

    def process_alter_partitions(seqid, iprot, oprot)
      args = read_args(iprot, Alter_partitions_args)
      result = Alter_partitions_result.new()
      begin
        @handler.alter_partitions(args.db_name, args.tbl_name, args.new_parts)
      rescue ::InvalidOperationException => o1
        result.o1 = o1
      rescue ::MetaException => o2
        result.o2 = o2
      end
      write_result(result, oprot, 'alter_partitions', seqid)
    end

    def process_alter_partitions_with_environment_context(seqid, iprot, oprot)
      args = read_args(iprot, Alter_partitions_with_environment_context_args)
      result = Alter_partitions_with_environment_context_result.new()
      begin
        @handler.alter_partitions_with_environment_context(args.db_name, args.tbl_name, args.new_parts, args.environment_context)
      rescue ::InvalidOperationException => o1
        result.o1 = o1
      rescue ::MetaException => o2
        result.o2 = o2
      end
      write_result(result, oprot, 'alter_partitions_with_environment_context', seqid)
    end

    def process_alter_partitions_req(seqid, iprot, oprot)
      args = read_args(iprot, Alter_partitions_req_args)
      result = Alter_partitions_req_result.new()
      begin
        result.success = @handler.alter_partitions_req(args.req)
      rescue ::InvalidOperationException => o1
        result.o1 = o1
      rescue ::MetaException => o2
        result.o2 = o2
      end
      write_result(result, oprot, 'alter_partitions_req', seqid)
    end

    def process_alter_partition_with_environment_context(seqid, iprot, oprot)
      args = read_args(iprot, Alter_partition_with_environment_context_args)
      result = Alter_partition_with_environment_context_result.new()
      begin
        @handler.alter_partition_with_environment_context(args.db_name, args.tbl_name, args.new_part, args.environment_context)
      rescue ::InvalidOperationException => o1
        result.o1 = o1
      rescue ::MetaException => o2
        result.o2 = o2
      end
      write_result(result, oprot, 'alter_partition_with_environment_context', seqid)
    end

    def process_rename_partition(seqid, iprot, oprot)
      args = read_args(iprot, Rename_partition_args)
      result = Rename_partition_result.new()
      begin
        @handler.rename_partition(args.db_name, args.tbl_name, args.part_vals, args.new_part)
      rescue ::InvalidOperationException => o1
        result.o1 = o1
      rescue ::MetaException => o2
        result.o2 = o2
      end
      write_result(result, oprot, 'rename_partition', seqid)
    end

    def process_rename_partition_req(seqid, iprot, oprot)
      args = read_args(iprot, Rename_partition_req_args)
      result = Rename_partition_req_result.new()
      begin
        result.success = @handler.rename_partition_req(args.req)
      rescue ::InvalidOperationException => o1
        result.o1 = o1
      rescue ::MetaException => o2
        result.o2 = o2
      end
      write_result(result, oprot, 'rename_partition_req', seqid)
    end

    def process_partition_name_has_valid_characters(seqid, iprot, oprot)
      args = read_args(iprot, Partition_name_has_valid_characters_args)
      result = Partition_name_has_valid_characters_result.new()
      begin
        result.success = @handler.partition_name_has_valid_characters(args.part_vals, args.throw_exception)
      rescue ::MetaException => o1
        result.o1 = o1
      end
      write_result(result, oprot, 'partition_name_has_valid_characters', seqid)
    end

    def process_get_config_value(seqid, iprot, oprot)
      args = read_args(iprot, Get_config_value_args)
      result = Get_config_value_result.new()
      begin
        result.success = @handler.get_config_value(args.name, args.defaultValue)
      rescue ::ConfigValSecurityException => o1
        result.o1 = o1
      end
      write_result(result, oprot, 'get_config_value', seqid)
    end

    def process_partition_name_to_vals(seqid, iprot, oprot)
      args = read_args(iprot, Partition_name_to_vals_args)
      result = Partition_name_to_vals_result.new()
      begin
        result.success = @handler.partition_name_to_vals(args.part_name)
      rescue ::MetaException => o1
        result.o1 = o1
      end
      write_result(result, oprot, 'partition_name_to_vals', seqid)
    end

    def process_partition_name_to_spec(seqid, iprot, oprot)
      args = read_args(iprot, Partition_name_to_spec_args)
      result = Partition_name_to_spec_result.new()
      begin
        result.success = @handler.partition_name_to_spec(args.part_name)
      rescue ::MetaException => o1
        result.o1 = o1
      end
      write_result(result, oprot, 'partition_name_to_spec', seqid)
    end

    def process_markPartitionForEvent(seqid, iprot, oprot)
      args = read_args(iprot, MarkPartitionForEvent_args)
      result = MarkPartitionForEvent_result.new()
      begin
        @handler.markPartitionForEvent(args.db_name, args.tbl_name, args.part_vals, args.eventType)
      rescue ::MetaException => o1
        result.o1 = o1
      rescue ::NoSuchObjectException => o2
        result.o2 = o2
      rescue ::UnknownDBException => o3
        result.o3 = o3
      rescue ::UnknownTableException => o4
        result.o4 = o4
      rescue ::UnknownPartitionException => o5
        result.o5 = o5
      rescue ::InvalidPartitionException => o6
        result.o6 = o6
      end
      write_result(result, oprot, 'markPartitionForEvent', seqid)
    end

    def process_isPartitionMarkedForEvent(seqid, iprot, oprot)
      args = read_args(iprot, IsPartitionMarkedForEvent_args)
      result = IsPartitionMarkedForEvent_result.new()
      begin
        result.success = @handler.isPartitionMarkedForEvent(args.db_name, args.tbl_name, args.part_vals, args.eventType)
      rescue ::MetaException => o1
        result.o1 = o1
      rescue ::NoSuchObjectException => o2
        result.o2 = o2
      rescue ::UnknownDBException => o3
        result.o3 = o3
      rescue ::UnknownTableException => o4
        result.o4 = o4
      rescue ::UnknownPartitionException => o5
        result.o5 = o5
      rescue ::InvalidPartitionException => o6
        result.o6 = o6
      end
      write_result(result, oprot, 'isPartitionMarkedForEvent', seqid)
    end

    def process_get_primary_keys(seqid, iprot, oprot)
      args = read_args(iprot, Get_primary_keys_args)
      result = Get_primary_keys_result.new()
      begin
        result.success = @handler.get_primary_keys(args.request)
      rescue ::MetaException => o1
        result.o1 = o1
      rescue ::NoSuchObjectException => o2
        result.o2 = o2
      end
      write_result(result, oprot, 'get_primary_keys', seqid)
    end

    def process_get_foreign_keys(seqid, iprot, oprot)
      args = read_args(iprot, Get_foreign_keys_args)
      result = Get_foreign_keys_result.new()
      begin
        result.success = @handler.get_foreign_keys(args.request)
      rescue ::MetaException => o1
        result.o1 = o1
      rescue ::NoSuchObjectException => o2
        result.o2 = o2
      end
      write_result(result, oprot, 'get_foreign_keys', seqid)
    end

    def process_get_unique_constraints(seqid, iprot, oprot)
      args = read_args(iprot, Get_unique_constraints_args)
      result = Get_unique_constraints_result.new()
      begin
        result.success = @handler.get_unique_constraints(args.request)
      rescue ::MetaException => o1
        result.o1 = o1
      rescue ::NoSuchObjectException => o2
        result.o2 = o2
      end
      write_result(result, oprot, 'get_unique_constraints', seqid)
    end

    def process_get_not_null_constraints(seqid, iprot, oprot)
      args = read_args(iprot, Get_not_null_constraints_args)
      result = Get_not_null_constraints_result.new()
      begin
        result.success = @handler.get_not_null_constraints(args.request)
      rescue ::MetaException => o1
        result.o1 = o1
      rescue ::NoSuchObjectException => o2
        result.o2 = o2
      end
      write_result(result, oprot, 'get_not_null_constraints', seqid)
    end

    def process_get_default_constraints(seqid, iprot, oprot)
      args = read_args(iprot, Get_default_constraints_args)
      result = Get_default_constraints_result.new()
      begin
        result.success = @handler.get_default_constraints(args.request)
      rescue ::MetaException => o1
        result.o1 = o1
      rescue ::NoSuchObjectException => o2
        result.o2 = o2
      end
      write_result(result, oprot, 'get_default_constraints', seqid)
    end

    def process_get_check_constraints(seqid, iprot, oprot)
      args = read_args(iprot, Get_check_constraints_args)
      result = Get_check_constraints_result.new()
      begin
        result.success = @handler.get_check_constraints(args.request)
      rescue ::MetaException => o1
        result.o1 = o1
      rescue ::NoSuchObjectException => o2
        result.o2 = o2
      end
      write_result(result, oprot, 'get_check_constraints', seqid)
    end

    def process_update_table_column_statistics(seqid, iprot, oprot)
      args = read_args(iprot, Update_table_column_statistics_args)
      result = Update_table_column_statistics_result.new()
      begin
        result.success = @handler.update_table_column_statistics(args.stats_obj)
      rescue ::NoSuchObjectException => o1
        result.o1 = o1
      rescue ::InvalidObjectException => o2
        result.o2 = o2
      rescue ::MetaException => o3
        result.o3 = o3
      rescue ::InvalidInputException => o4
        result.o4 = o4
      end
      write_result(result, oprot, 'update_table_column_statistics', seqid)
    end

    def process_update_partition_column_statistics(seqid, iprot, oprot)
      args = read_args(iprot, Update_partition_column_statistics_args)
      result = Update_partition_column_statistics_result.new()
      begin
        result.success = @handler.update_partition_column_statistics(args.stats_obj)
      rescue ::NoSuchObjectException => o1
        result.o1 = o1
      rescue ::InvalidObjectException => o2
        result.o2 = o2
      rescue ::MetaException => o3
        result.o3 = o3
      rescue ::InvalidInputException => o4
        result.o4 = o4
      end
      write_result(result, oprot, 'update_partition_column_statistics', seqid)
    end

    def process_update_table_column_statistics_req(seqid, iprot, oprot)
      args = read_args(iprot, Update_table_column_statistics_req_args)
      result = Update_table_column_statistics_req_result.new()
      begin
        result.success = @handler.update_table_column_statistics_req(args.req)
      rescue ::NoSuchObjectException => o1
        result.o1 = o1
      rescue ::InvalidObjectException => o2
        result.o2 = o2
      rescue ::MetaException => o3
        result.o3 = o3
      rescue ::InvalidInputException => o4
        result.o4 = o4
      end
      write_result(result, oprot, 'update_table_column_statistics_req', seqid)
    end

    def process_update_partition_column_statistics_req(seqid, iprot, oprot)
      args = read_args(iprot, Update_partition_column_statistics_req_args)
      result = Update_partition_column_statistics_req_result.new()
      begin
        result.success = @handler.update_partition_column_statistics_req(args.req)
      rescue ::NoSuchObjectException => o1
        result.o1 = o1
      rescue ::InvalidObjectException => o2
        result.o2 = o2
      rescue ::MetaException => o3
        result.o3 = o3
      rescue ::InvalidInputException => o4
        result.o4 = o4
      end
      write_result(result, oprot, 'update_partition_column_statistics_req', seqid)
    end

    def process_get_table_column_statistics(seqid, iprot, oprot)
      args = read_args(iprot, Get_table_column_statistics_args)
      result = Get_table_column_statistics_result.new()
      begin
        result.success = @handler.get_table_column_statistics(args.db_name, args.tbl_name, args.col_name)
      rescue ::NoSuchObjectException => o1
        result.o1 = o1
      rescue ::MetaException => o2
        result.o2 = o2
      rescue ::InvalidInputException => o3
        result.o3 = o3
      rescue ::InvalidObjectException => o4
        result.o4 = o4
      end
      write_result(result, oprot, 'get_table_column_statistics', seqid)
    end

    def process_get_partition_column_statistics(seqid, iprot, oprot)
      args = read_args(iprot, Get_partition_column_statistics_args)
      result = Get_partition_column_statistics_result.new()
      begin
        result.success = @handler.get_partition_column_statistics(args.db_name, args.tbl_name, args.part_name, args.col_name)
      rescue ::NoSuchObjectException => o1
        result.o1 = o1
      rescue ::MetaException => o2
        result.o2 = o2
      rescue ::InvalidInputException => o3
        result.o3 = o3
      rescue ::InvalidObjectException => o4
        result.o4 = o4
      end
      write_result(result, oprot, 'get_partition_column_statistics', seqid)
    end

    def process_get_table_statistics_req(seqid, iprot, oprot)
      args = read_args(iprot, Get_table_statistics_req_args)
      result = Get_table_statistics_req_result.new()
      begin
        result.success = @handler.get_table_statistics_req(args.request)
      rescue ::NoSuchObjectException => o1
        result.o1 = o1
      rescue ::MetaException => o2
        result.o2 = o2
      end
      write_result(result, oprot, 'get_table_statistics_req', seqid)
    end

    def process_get_partitions_statistics_req(seqid, iprot, oprot)
      args = read_args(iprot, Get_partitions_statistics_req_args)
      result = Get_partitions_statistics_req_result.new()
      begin
        result.success = @handler.get_partitions_statistics_req(args.request)
      rescue ::NoSuchObjectException => o1
        result.o1 = o1
      rescue ::MetaException => o2
        result.o2 = o2
      end
      write_result(result, oprot, 'get_partitions_statistics_req', seqid)
    end

    def process_get_aggr_stats_for(seqid, iprot, oprot)
      args = read_args(iprot, Get_aggr_stats_for_args)
      result = Get_aggr_stats_for_result.new()
      begin
        result.success = @handler.get_aggr_stats_for(args.request)
      rescue ::NoSuchObjectException => o1
        result.o1 = o1
      rescue ::MetaException => o2
        result.o2 = o2
      end
      write_result(result, oprot, 'get_aggr_stats_for', seqid)
    end

    def process_set_aggr_stats_for(seqid, iprot, oprot)
      args = read_args(iprot, Set_aggr_stats_for_args)
      result = Set_aggr_stats_for_result.new()
      begin
        result.success = @handler.set_aggr_stats_for(args.request)
      rescue ::NoSuchObjectException => o1
        result.o1 = o1
      rescue ::InvalidObjectException => o2
        result.o2 = o2
      rescue ::MetaException => o3
        result.o3 = o3
      rescue ::InvalidInputException => o4
        result.o4 = o4
      end
      write_result(result, oprot, 'set_aggr_stats_for', seqid)
    end

    def process_delete_partition_column_statistics(seqid, iprot, oprot)
      args = read_args(iprot, Delete_partition_column_statistics_args)
      result = Delete_partition_column_statistics_result.new()
      begin
        result.success = @handler.delete_partition_column_statistics(args.db_name, args.tbl_name, args.part_name, args.col_name, args.engine)
      rescue ::NoSuchObjectException => o1
        result.o1 = o1
      rescue ::MetaException => o2
        result.o2 = o2
      rescue ::InvalidObjectException => o3
        result.o3 = o3
      rescue ::InvalidInputException => o4
        result.o4 = o4
      end
      write_result(result, oprot, 'delete_partition_column_statistics', seqid)
    end

    def process_delete_table_column_statistics(seqid, iprot, oprot)
      args = read_args(iprot, Delete_table_column_statistics_args)
      result = Delete_table_column_statistics_result.new()
      begin
        result.success = @handler.delete_table_column_statistics(args.db_name, args.tbl_name, args.col_name, args.engine)
      rescue ::NoSuchObjectException => o1
        result.o1 = o1
      rescue ::MetaException => o2
        result.o2 = o2
      rescue ::InvalidObjectException => o3
        result.o3 = o3
      rescue ::InvalidInputException => o4
        result.o4 = o4
      end
      write_result(result, oprot, 'delete_table_column_statistics', seqid)
    end

    def process_create_function(seqid, iprot, oprot)
      args = read_args(iprot, Create_function_args)
      result = Create_function_result.new()
      begin
        @handler.create_function(args.func)
      rescue ::AlreadyExistsException => o1
        result.o1 = o1
      rescue ::InvalidObjectException => o2
        result.o2 = o2
      rescue ::MetaException => o3
        result.o3 = o3
      rescue ::NoSuchObjectException => o4
        result.o4 = o4
      end
      write_result(result, oprot, 'create_function', seqid)
    end

    def process_drop_function(seqid, iprot, oprot)
      args = read_args(iprot, Drop_function_args)
      result = Drop_function_result.new()
      begin
        @handler.drop_function(args.dbName, args.funcName)
      rescue ::NoSuchObjectException => o1
        result.o1 = o1
      rescue ::MetaException => o3
        result.o3 = o3
      end
      write_result(result, oprot, 'drop_function', seqid)
    end

    def process_alter_function(seqid, iprot, oprot)
      args = read_args(iprot, Alter_function_args)
      result = Alter_function_result.new()
      begin
        @handler.alter_function(args.dbName, args.funcName, args.newFunc)
      rescue ::InvalidOperationException => o1
        result.o1 = o1
      rescue ::MetaException => o2
        result.o2 = o2
      end
      write_result(result, oprot, 'alter_function', seqid)
    end

    def process_get_functions(seqid, iprot, oprot)
      args = read_args(iprot, Get_functions_args)
      result = Get_functions_result.new()
      begin
        result.success = @handler.get_functions(args.dbName, args.pattern)
      rescue ::MetaException => o1
        result.o1 = o1
      end
      write_result(result, oprot, 'get_functions', seqid)
    end

    def process_get_function(seqid, iprot, oprot)
      args = read_args(iprot, Get_function_args)
      result = Get_function_result.new()
      begin
        result.success = @handler.get_function(args.dbName, args.funcName)
      rescue ::MetaException => o1
        result.o1 = o1
      rescue ::NoSuchObjectException => o2
        result.o2 = o2
      end
      write_result(result, oprot, 'get_function', seqid)
    end

    def process_get_all_functions(seqid, iprot, oprot)
      args = read_args(iprot, Get_all_functions_args)
      result = Get_all_functions_result.new()
      begin
        result.success = @handler.get_all_functions()
      rescue ::MetaException => o1
        result.o1 = o1
      end
      write_result(result, oprot, 'get_all_functions', seqid)
    end

    def process_create_role(seqid, iprot, oprot)
      args = read_args(iprot, Create_role_args)
      result = Create_role_result.new()
      begin
        result.success = @handler.create_role(args.role)
      rescue ::MetaException => o1
        result.o1 = o1
      end
      write_result(result, oprot, 'create_role', seqid)
    end

    def process_drop_role(seqid, iprot, oprot)
      args = read_args(iprot, Drop_role_args)
      result = Drop_role_result.new()
      begin
        result.success = @handler.drop_role(args.role_name)
      rescue ::MetaException => o1
        result.o1 = o1
      end
      write_result(result, oprot, 'drop_role', seqid)
    end

    def process_get_role_names(seqid, iprot, oprot)
      args = read_args(iprot, Get_role_names_args)
      result = Get_role_names_result.new()
      begin
        result.success = @handler.get_role_names()
      rescue ::MetaException => o1
        result.o1 = o1
      end
      write_result(result, oprot, 'get_role_names', seqid)
    end

    def process_grant_role(seqid, iprot, oprot)
      args = read_args(iprot, Grant_role_args)
      result = Grant_role_result.new()
      begin
        result.success = @handler.grant_role(args.role_name, args.principal_name, args.principal_type, args.grantor, args.grantorType, args.grant_option)
      rescue ::MetaException => o1
        result.o1 = o1
      end
      write_result(result, oprot, 'grant_role', seqid)
    end

    def process_revoke_role(seqid, iprot, oprot)
      args = read_args(iprot, Revoke_role_args)
      result = Revoke_role_result.new()
      begin
        result.success = @handler.revoke_role(args.role_name, args.principal_name, args.principal_type)
      rescue ::MetaException => o1
        result.o1 = o1
      end
      write_result(result, oprot, 'revoke_role', seqid)
    end

    def process_list_roles(seqid, iprot, oprot)
      args = read_args(iprot, List_roles_args)
      result = List_roles_result.new()
      begin
        result.success = @handler.list_roles(args.principal_name, args.principal_type)
      rescue ::MetaException => o1
        result.o1 = o1
      end
      write_result(result, oprot, 'list_roles', seqid)
    end

    def process_grant_revoke_role(seqid, iprot, oprot)
      args = read_args(iprot, Grant_revoke_role_args)
      result = Grant_revoke_role_result.new()
      begin
        result.success = @handler.grant_revoke_role(args.request)
      rescue ::MetaException => o1
        result.o1 = o1
      end
      write_result(result, oprot, 'grant_revoke_role', seqid)
    end

    def process_get_principals_in_role(seqid, iprot, oprot)
      args = read_args(iprot, Get_principals_in_role_args)
      result = Get_principals_in_role_result.new()
      begin
        result.success = @handler.get_principals_in_role(args.request)
      rescue ::MetaException => o1
        result.o1 = o1
      end
      write_result(result, oprot, 'get_principals_in_role', seqid)
    end

    def process_get_role_grants_for_principal(seqid, iprot, oprot)
      args = read_args(iprot, Get_role_grants_for_principal_args)
      result = Get_role_grants_for_principal_result.new()
      begin
        result.success = @handler.get_role_grants_for_principal(args.request)
      rescue ::MetaException => o1
        result.o1 = o1
      end
      write_result(result, oprot, 'get_role_grants_for_principal', seqid)
    end

    def process_get_privilege_set(seqid, iprot, oprot)
      args = read_args(iprot, Get_privilege_set_args)
      result = Get_privilege_set_result.new()
      begin
        result.success = @handler.get_privilege_set(args.hiveObject, args.user_name, args.group_names)
      rescue ::MetaException => o1
        result.o1 = o1
      end
      write_result(result, oprot, 'get_privilege_set', seqid)
    end

    def process_list_privileges(seqid, iprot, oprot)
      args = read_args(iprot, List_privileges_args)
      result = List_privileges_result.new()
      begin
        result.success = @handler.list_privileges(args.principal_name, args.principal_type, args.hiveObject)
      rescue ::MetaException => o1
        result.o1 = o1
      end
      write_result(result, oprot, 'list_privileges', seqid)
    end

    def process_grant_privileges(seqid, iprot, oprot)
      args = read_args(iprot, Grant_privileges_args)
      result = Grant_privileges_result.new()
      begin
        result.success = @handler.grant_privileges(args.privileges)
      rescue ::MetaException => o1
        result.o1 = o1
      end
      write_result(result, oprot, 'grant_privileges', seqid)
    end

    def process_revoke_privileges(seqid, iprot, oprot)
      args = read_args(iprot, Revoke_privileges_args)
      result = Revoke_privileges_result.new()
      begin
        result.success = @handler.revoke_privileges(args.privileges)
      rescue ::MetaException => o1
        result.o1 = o1
      end
      write_result(result, oprot, 'revoke_privileges', seqid)
    end

    def process_grant_revoke_privileges(seqid, iprot, oprot)
      args = read_args(iprot, Grant_revoke_privileges_args)
      result = Grant_revoke_privileges_result.new()
      begin
        result.success = @handler.grant_revoke_privileges(args.request)
      rescue ::MetaException => o1
        result.o1 = o1
      end
      write_result(result, oprot, 'grant_revoke_privileges', seqid)
    end

    def process_refresh_privileges(seqid, iprot, oprot)
      args = read_args(iprot, Refresh_privileges_args)
      result = Refresh_privileges_result.new()
      begin
        result.success = @handler.refresh_privileges(args.objToRefresh, args.authorizer, args.grantRequest)
      rescue ::MetaException => o1
        result.o1 = o1
      end
      write_result(result, oprot, 'refresh_privileges', seqid)
    end

    def process_set_ugi(seqid, iprot, oprot)
      args = read_args(iprot, Set_ugi_args)
      result = Set_ugi_result.new()
      begin
        result.success = @handler.set_ugi(args.user_name, args.group_names)
      rescue ::MetaException => o1
        result.o1 = o1
      end
      write_result(result, oprot, 'set_ugi', seqid)
    end

    def process_get_delegation_token(seqid, iprot, oprot)
      args = read_args(iprot, Get_delegation_token_args)
      result = Get_delegation_token_result.new()
      begin
        result.success = @handler.get_delegation_token(args.token_owner, args.renewer_kerberos_principal_name)
      rescue ::MetaException => o1
        result.o1 = o1
      end
      write_result(result, oprot, 'get_delegation_token', seqid)
    end

    def process_renew_delegation_token(seqid, iprot, oprot)
      args = read_args(iprot, Renew_delegation_token_args)
      result = Renew_delegation_token_result.new()
      begin
        result.success = @handler.renew_delegation_token(args.token_str_form)
      rescue ::MetaException => o1
        result.o1 = o1
      end
      write_result(result, oprot, 'renew_delegation_token', seqid)
    end

    def process_cancel_delegation_token(seqid, iprot, oprot)
      args = read_args(iprot, Cancel_delegation_token_args)
      result = Cancel_delegation_token_result.new()
      begin
        @handler.cancel_delegation_token(args.token_str_form)
      rescue ::MetaException => o1
        result.o1 = o1
      end
      write_result(result, oprot, 'cancel_delegation_token', seqid)
    end

    def process_add_token(seqid, iprot, oprot)
      args = read_args(iprot, Add_token_args)
      result = Add_token_result.new()
      result.success = @handler.add_token(args.token_identifier, args.delegation_token)
      write_result(result, oprot, 'add_token', seqid)
    end

    def process_remove_token(seqid, iprot, oprot)
      args = read_args(iprot, Remove_token_args)
      result = Remove_token_result.new()
      result.success = @handler.remove_token(args.token_identifier)
      write_result(result, oprot, 'remove_token', seqid)
    end

    def process_get_token(seqid, iprot, oprot)
      args = read_args(iprot, Get_token_args)
      result = Get_token_result.new()
      result.success = @handler.get_token(args.token_identifier)
      write_result(result, oprot, 'get_token', seqid)
    end

    def process_get_all_token_identifiers(seqid, iprot, oprot)
      args = read_args(iprot, Get_all_token_identifiers_args)
      result = Get_all_token_identifiers_result.new()
      result.success = @handler.get_all_token_identifiers()
      write_result(result, oprot, 'get_all_token_identifiers', seqid)
    end

    def process_add_master_key(seqid, iprot, oprot)
      args = read_args(iprot, Add_master_key_args)
      result = Add_master_key_result.new()
      begin
        result.success = @handler.add_master_key(args.key)
      rescue ::MetaException => o1
        result.o1 = o1
      end
      write_result(result, oprot, 'add_master_key', seqid)
    end

    def process_update_master_key(seqid, iprot, oprot)
      args = read_args(iprot, Update_master_key_args)
      result = Update_master_key_result.new()
      begin
        @handler.update_master_key(args.seq_number, args.key)
      rescue ::NoSuchObjectException => o1
        result.o1 = o1
      rescue ::MetaException => o2
        result.o2 = o2
      end
      write_result(result, oprot, 'update_master_key', seqid)
    end

    def process_remove_master_key(seqid, iprot, oprot)
      args = read_args(iprot, Remove_master_key_args)
      result = Remove_master_key_result.new()
      result.success = @handler.remove_master_key(args.key_seq)
      write_result(result, oprot, 'remove_master_key', seqid)
    end

    def process_get_master_keys(seqid, iprot, oprot)
      args = read_args(iprot, Get_master_keys_args)
      result = Get_master_keys_result.new()
      result.success = @handler.get_master_keys()
      write_result(result, oprot, 'get_master_keys', seqid)
    end

    def process_get_open_txns(seqid, iprot, oprot)
      args = read_args(iprot, Get_open_txns_args)
      result = Get_open_txns_result.new()
      result.success = @handler.get_open_txns()
      write_result(result, oprot, 'get_open_txns', seqid)
    end

    def process_get_open_txns_info(seqid, iprot, oprot)
      args = read_args(iprot, Get_open_txns_info_args)
      result = Get_open_txns_info_result.new()
      result.success = @handler.get_open_txns_info()
      write_result(result, oprot, 'get_open_txns_info', seqid)
    end

    def process_open_txns(seqid, iprot, oprot)
      args = read_args(iprot, Open_txns_args)
      result = Open_txns_result.new()
      result.success = @handler.open_txns(args.rqst)
      write_result(result, oprot, 'open_txns', seqid)
    end

    def process_abort_txn(seqid, iprot, oprot)
      args = read_args(iprot, Abort_txn_args)
      result = Abort_txn_result.new()
      begin
        @handler.abort_txn(args.rqst)
      rescue ::NoSuchTxnException => o1
        result.o1 = o1
      end
      write_result(result, oprot, 'abort_txn', seqid)
    end

    def process_abort_txns(seqid, iprot, oprot)
      args = read_args(iprot, Abort_txns_args)
      result = Abort_txns_result.new()
      begin
        @handler.abort_txns(args.rqst)
      rescue ::NoSuchTxnException => o1
        result.o1 = o1
      end
      write_result(result, oprot, 'abort_txns', seqid)
    end

    def process_commit_txn(seqid, iprot, oprot)
      args = read_args(iprot, Commit_txn_args)
      result = Commit_txn_result.new()
      begin
        @handler.commit_txn(args.rqst)
      rescue ::NoSuchTxnException => o1
        result.o1 = o1
      rescue ::TxnAbortedException => o2
        result.o2 = o2
      end
      write_result(result, oprot, 'commit_txn', seqid)
    end

    def process_repl_tbl_writeid_state(seqid, iprot, oprot)
      args = read_args(iprot, Repl_tbl_writeid_state_args)
      result = Repl_tbl_writeid_state_result.new()
      @handler.repl_tbl_writeid_state(args.rqst)
      write_result(result, oprot, 'repl_tbl_writeid_state', seqid)
    end

    def process_get_valid_write_ids(seqid, iprot, oprot)
      args = read_args(iprot, Get_valid_write_ids_args)
      result = Get_valid_write_ids_result.new()
      begin
        result.success = @handler.get_valid_write_ids(args.rqst)
      rescue ::NoSuchTxnException => o1
        result.o1 = o1
      rescue ::MetaException => o2
        result.o2 = o2
      end
      write_result(result, oprot, 'get_valid_write_ids', seqid)
    end

    def process_allocate_table_write_ids(seqid, iprot, oprot)
      args = read_args(iprot, Allocate_table_write_ids_args)
      result = Allocate_table_write_ids_result.new()
      begin
        result.success = @handler.allocate_table_write_ids(args.rqst)
      rescue ::NoSuchTxnException => o1
        result.o1 = o1
      rescue ::TxnAbortedException => o2
        result.o2 = o2
      rescue ::MetaException => o3
        result.o3 = o3
      end
      write_result(result, oprot, 'allocate_table_write_ids', seqid)
    end

    def process_lock(seqid, iprot, oprot)
      args = read_args(iprot, Lock_args)
      result = Lock_result.new()
      begin
        result.success = @handler.lock(args.rqst)
      rescue ::NoSuchTxnException => o1
        result.o1 = o1
      rescue ::TxnAbortedException => o2
        result.o2 = o2
      end
      write_result(result, oprot, 'lock', seqid)
    end

    def process_check_lock(seqid, iprot, oprot)
      args = read_args(iprot, Check_lock_args)
      result = Check_lock_result.new()
      begin
        result.success = @handler.check_lock(args.rqst)
      rescue ::NoSuchTxnException => o1
        result.o1 = o1
      rescue ::TxnAbortedException => o2
        result.o2 = o2
      rescue ::NoSuchLockException => o3
        result.o3 = o3
      end
      write_result(result, oprot, 'check_lock', seqid)
    end

    def process_unlock(seqid, iprot, oprot)
      args = read_args(iprot, Unlock_args)
      result = Unlock_result.new()
      begin
        @handler.unlock(args.rqst)
      rescue ::NoSuchLockException => o1
        result.o1 = o1
      rescue ::TxnOpenException => o2
        result.o2 = o2
      end
      write_result(result, oprot, 'unlock', seqid)
    end

    def process_show_locks(seqid, iprot, oprot)
      args = read_args(iprot, Show_locks_args)
      result = Show_locks_result.new()
      result.success = @handler.show_locks(args.rqst)
      write_result(result, oprot, 'show_locks', seqid)
    end

    def process_heartbeat(seqid, iprot, oprot)
      args = read_args(iprot, Heartbeat_args)
      result = Heartbeat_result.new()
      begin
        @handler.heartbeat(args.ids)
      rescue ::NoSuchLockException => o1
        result.o1 = o1
      rescue ::NoSuchTxnException => o2
        result.o2 = o2
      rescue ::TxnAbortedException => o3
        result.o3 = o3
      end
      write_result(result, oprot, 'heartbeat', seqid)
    end

    def process_heartbeat_txn_range(seqid, iprot, oprot)
      args = read_args(iprot, Heartbeat_txn_range_args)
      result = Heartbeat_txn_range_result.new()
      result.success = @handler.heartbeat_txn_range(args.txns)
      write_result(result, oprot, 'heartbeat_txn_range', seqid)
    end

    def process_compact(seqid, iprot, oprot)
      args = read_args(iprot, Compact_args)
      result = Compact_result.new()
      @handler.compact(args.rqst)
      write_result(result, oprot, 'compact', seqid)
    end

    def process_compact2(seqid, iprot, oprot)
      args = read_args(iprot, Compact2_args)
      result = Compact2_result.new()
      result.success = @handler.compact2(args.rqst)
      write_result(result, oprot, 'compact2', seqid)
    end

    def process_show_compact(seqid, iprot, oprot)
      args = read_args(iprot, Show_compact_args)
      result = Show_compact_result.new()
      result.success = @handler.show_compact(args.rqst)
      write_result(result, oprot, 'show_compact', seqid)
    end

    def process_add_dynamic_partitions(seqid, iprot, oprot)
      args = read_args(iprot, Add_dynamic_partitions_args)
      result = Add_dynamic_partitions_result.new()
      begin
        @handler.add_dynamic_partitions(args.rqst)
      rescue ::NoSuchTxnException => o1
        result.o1 = o1
      rescue ::TxnAbortedException => o2
        result.o2 = o2
      end
      write_result(result, oprot, 'add_dynamic_partitions', seqid)
    end

    def process_find_next_compact(seqid, iprot, oprot)
      args = read_args(iprot, Find_next_compact_args)
      result = Find_next_compact_result.new()
      begin
        result.success = @handler.find_next_compact(args.workerId)
      rescue ::MetaException => o1
        result.o1 = o1
      end
      write_result(result, oprot, 'find_next_compact', seqid)
    end

    def process_update_compactor_state(seqid, iprot, oprot)
      args = read_args(iprot, Update_compactor_state_args)
      result = Update_compactor_state_result.new()
      @handler.update_compactor_state(args.cr, args.txn_id)
      write_result(result, oprot, 'update_compactor_state', seqid)
    end

    def process_find_columns_with_stats(seqid, iprot, oprot)
      args = read_args(iprot, Find_columns_with_stats_args)
      result = Find_columns_with_stats_result.new()
      result.success = @handler.find_columns_with_stats(args.cr)
      write_result(result, oprot, 'find_columns_with_stats', seqid)
    end

    def process_mark_cleaned(seqid, iprot, oprot)
      args = read_args(iprot, Mark_cleaned_args)
      result = Mark_cleaned_result.new()
      begin
        @handler.mark_cleaned(args.cr)
      rescue ::MetaException => o1
        result.o1 = o1
      end
      write_result(result, oprot, 'mark_cleaned', seqid)
    end

    def process_mark_compacted(seqid, iprot, oprot)
      args = read_args(iprot, Mark_compacted_args)
      result = Mark_compacted_result.new()
      begin
        @handler.mark_compacted(args.cr)
      rescue ::MetaException => o1
        result.o1 = o1
      end
      write_result(result, oprot, 'mark_compacted', seqid)
    end

    def process_mark_failed(seqid, iprot, oprot)
      args = read_args(iprot, Mark_failed_args)
      result = Mark_failed_result.new()
      begin
        @handler.mark_failed(args.cr)
      rescue ::MetaException => o1
        result.o1 = o1
      end
      write_result(result, oprot, 'mark_failed', seqid)
    end

    def process_set_hadoop_jobid(seqid, iprot, oprot)
      args = read_args(iprot, Set_hadoop_jobid_args)
      result = Set_hadoop_jobid_result.new()
      @handler.set_hadoop_jobid(args.jobId, args.cq_id)
      write_result(result, oprot, 'set_hadoop_jobid', seqid)
    end

    def process_get_next_notification(seqid, iprot, oprot)
      args = read_args(iprot, Get_next_notification_args)
      result = Get_next_notification_result.new()
      result.success = @handler.get_next_notification(args.rqst)
      write_result(result, oprot, 'get_next_notification', seqid)
    end

    def process_get_current_notificationEventId(seqid, iprot, oprot)
      args = read_args(iprot, Get_current_notificationEventId_args)
      result = Get_current_notificationEventId_result.new()
      result.success = @handler.get_current_notificationEventId()
      write_result(result, oprot, 'get_current_notificationEventId', seqid)
    end

    def process_get_notification_events_count(seqid, iprot, oprot)
      args = read_args(iprot, Get_notification_events_count_args)
      result = Get_notification_events_count_result.new()
      result.success = @handler.get_notification_events_count(args.rqst)
      write_result(result, oprot, 'get_notification_events_count', seqid)
    end

    def process_fire_listener_event(seqid, iprot, oprot)
      args = read_args(iprot, Fire_listener_event_args)
      result = Fire_listener_event_result.new()
      result.success = @handler.fire_listener_event(args.rqst)
      write_result(result, oprot, 'fire_listener_event', seqid)
    end

    def process_flushCache(seqid, iprot, oprot)
      args = read_args(iprot, FlushCache_args)
      result = FlushCache_result.new()
      @handler.flushCache()
      write_result(result, oprot, 'flushCache', seqid)
    end

    def process_add_write_notification_log(seqid, iprot, oprot)
      args = read_args(iprot, Add_write_notification_log_args)
      result = Add_write_notification_log_result.new()
      result.success = @handler.add_write_notification_log(args.rqst)
      write_result(result, oprot, 'add_write_notification_log', seqid)
    end

    def process_cm_recycle(seqid, iprot, oprot)
      args = read_args(iprot, Cm_recycle_args)
      result = Cm_recycle_result.new()
      begin
        result.success = @handler.cm_recycle(args.request)
      rescue ::MetaException => o1
        result.o1 = o1
      end
      write_result(result, oprot, 'cm_recycle', seqid)
    end

    def process_get_file_metadata_by_expr(seqid, iprot, oprot)
      args = read_args(iprot, Get_file_metadata_by_expr_args)
      result = Get_file_metadata_by_expr_result.new()
      result.success = @handler.get_file_metadata_by_expr(args.req)
      write_result(result, oprot, 'get_file_metadata_by_expr', seqid)
    end

    def process_get_file_metadata(seqid, iprot, oprot)
      args = read_args(iprot, Get_file_metadata_args)
      result = Get_file_metadata_result.new()
      result.success = @handler.get_file_metadata(args.req)
      write_result(result, oprot, 'get_file_metadata', seqid)
    end

    def process_put_file_metadata(seqid, iprot, oprot)
      args = read_args(iprot, Put_file_metadata_args)
      result = Put_file_metadata_result.new()
      result.success = @handler.put_file_metadata(args.req)
      write_result(result, oprot, 'put_file_metadata', seqid)
    end

    def process_clear_file_metadata(seqid, iprot, oprot)
      args = read_args(iprot, Clear_file_metadata_args)
      result = Clear_file_metadata_result.new()
      result.success = @handler.clear_file_metadata(args.req)
      write_result(result, oprot, 'clear_file_metadata', seqid)
    end

    def process_cache_file_metadata(seqid, iprot, oprot)
      args = read_args(iprot, Cache_file_metadata_args)
      result = Cache_file_metadata_result.new()
      result.success = @handler.cache_file_metadata(args.req)
      write_result(result, oprot, 'cache_file_metadata', seqid)
    end

    def process_get_metastore_db_uuid(seqid, iprot, oprot)
      args = read_args(iprot, Get_metastore_db_uuid_args)
      result = Get_metastore_db_uuid_result.new()
      begin
        result.success = @handler.get_metastore_db_uuid()
      rescue ::MetaException => o1
        result.o1 = o1
      end
      write_result(result, oprot, 'get_metastore_db_uuid', seqid)
    end

    def process_create_resource_plan(seqid, iprot, oprot)
      args = read_args(iprot, Create_resource_plan_args)
      result = Create_resource_plan_result.new()
      begin
        result.success = @handler.create_resource_plan(args.request)
      rescue ::AlreadyExistsException => o1
        result.o1 = o1
      rescue ::InvalidObjectException => o2
        result.o2 = o2
      rescue ::MetaException => o3
        result.o3 = o3
      end
      write_result(result, oprot, 'create_resource_plan', seqid)
    end

    def process_get_resource_plan(seqid, iprot, oprot)
      args = read_args(iprot, Get_resource_plan_args)
      result = Get_resource_plan_result.new()
      begin
        result.success = @handler.get_resource_plan(args.request)
      rescue ::NoSuchObjectException => o1
        result.o1 = o1
      rescue ::MetaException => o2
        result.o2 = o2
      end
      write_result(result, oprot, 'get_resource_plan', seqid)
    end

    def process_get_active_resource_plan(seqid, iprot, oprot)
      args = read_args(iprot, Get_active_resource_plan_args)
      result = Get_active_resource_plan_result.new()
      begin
        result.success = @handler.get_active_resource_plan(args.request)
      rescue ::MetaException => o2
        result.o2 = o2
      end
      write_result(result, oprot, 'get_active_resource_plan', seqid)
    end

    def process_get_all_resource_plans(seqid, iprot, oprot)
      args = read_args(iprot, Get_all_resource_plans_args)
      result = Get_all_resource_plans_result.new()
      begin
        result.success = @handler.get_all_resource_plans(args.request)
      rescue ::MetaException => o1
        result.o1 = o1
      end
      write_result(result, oprot, 'get_all_resource_plans', seqid)
    end

    def process_alter_resource_plan(seqid, iprot, oprot)
      args = read_args(iprot, Alter_resource_plan_args)
      result = Alter_resource_plan_result.new()
      begin
        result.success = @handler.alter_resource_plan(args.request)
      rescue ::NoSuchObjectException => o1
        result.o1 = o1
      rescue ::InvalidOperationException => o2
        result.o2 = o2
      rescue ::MetaException => o3
        result.o3 = o3
      end
      write_result(result, oprot, 'alter_resource_plan', seqid)
    end

    def process_validate_resource_plan(seqid, iprot, oprot)
      args = read_args(iprot, Validate_resource_plan_args)
      result = Validate_resource_plan_result.new()
      begin
        result.success = @handler.validate_resource_plan(args.request)
      rescue ::NoSuchObjectException => o1
        result.o1 = o1
      rescue ::MetaException => o2
        result.o2 = o2
      end
      write_result(result, oprot, 'validate_resource_plan', seqid)
    end

    def process_drop_resource_plan(seqid, iprot, oprot)
      args = read_args(iprot, Drop_resource_plan_args)
      result = Drop_resource_plan_result.new()
      begin
        result.success = @handler.drop_resource_plan(args.request)
      rescue ::NoSuchObjectException => o1
        result.o1 = o1
      rescue ::InvalidOperationException => o2
        result.o2 = o2
      rescue ::MetaException => o3
        result.o3 = o3
      end
      write_result(result, oprot, 'drop_resource_plan', seqid)
    end

    def process_create_wm_trigger(seqid, iprot, oprot)
      args = read_args(iprot, Create_wm_trigger_args)
      result = Create_wm_trigger_result.new()
      begin
        result.success = @handler.create_wm_trigger(args.request)
      rescue ::AlreadyExistsException => o1
        result.o1 = o1
      rescue ::NoSuchObjectException => o2
        result.o2 = o2
      rescue ::InvalidObjectException => o3
        result.o3 = o3
      rescue ::MetaException => o4
        result.o4 = o4
      end
      write_result(result, oprot, 'create_wm_trigger', seqid)
    end

    def process_alter_wm_trigger(seqid, iprot, oprot)
      args = read_args(iprot, Alter_wm_trigger_args)
      result = Alter_wm_trigger_result.new()
      begin
        result.success = @handler.alter_wm_trigger(args.request)
      rescue ::NoSuchObjectException => o1
        result.o1 = o1
      rescue ::InvalidObjectException => o2
        result.o2 = o2
      rescue ::MetaException => o3
        result.o3 = o3
      end
      write_result(result, oprot, 'alter_wm_trigger', seqid)
    end

    def process_drop_wm_trigger(seqid, iprot, oprot)
      args = read_args(iprot, Drop_wm_trigger_args)
      result = Drop_wm_trigger_result.new()
      begin
        result.success = @handler.drop_wm_trigger(args.request)
      rescue ::NoSuchObjectException => o1
        result.o1 = o1
      rescue ::InvalidOperationException => o2
        result.o2 = o2
      rescue ::MetaException => o3
        result.o3 = o3
      end
      write_result(result, oprot, 'drop_wm_trigger', seqid)
    end

    def process_get_triggers_for_resourceplan(seqid, iprot, oprot)
      args = read_args(iprot, Get_triggers_for_resourceplan_args)
      result = Get_triggers_for_resourceplan_result.new()
      begin
        result.success = @handler.get_triggers_for_resourceplan(args.request)
      rescue ::NoSuchObjectException => o1
        result.o1 = o1
      rescue ::MetaException => o2
        result.o2 = o2
      end
      write_result(result, oprot, 'get_triggers_for_resourceplan', seqid)
    end

    def process_create_wm_pool(seqid, iprot, oprot)
      args = read_args(iprot, Create_wm_pool_args)
      result = Create_wm_pool_result.new()
      begin
        result.success = @handler.create_wm_pool(args.request)
      rescue ::AlreadyExistsException => o1
        result.o1 = o1
      rescue ::NoSuchObjectException => o2
        result.o2 = o2
      rescue ::InvalidObjectException => o3
        result.o3 = o3
      rescue ::MetaException => o4
        result.o4 = o4
      end
      write_result(result, oprot, 'create_wm_pool', seqid)
    end

    def process_alter_wm_pool(seqid, iprot, oprot)
      args = read_args(iprot, Alter_wm_pool_args)
      result = Alter_wm_pool_result.new()
      begin
        result.success = @handler.alter_wm_pool(args.request)
      rescue ::AlreadyExistsException => o1
        result.o1 = o1
      rescue ::NoSuchObjectException => o2
        result.o2 = o2
      rescue ::InvalidObjectException => o3
        result.o3 = o3
      rescue ::MetaException => o4
        result.o4 = o4
      end
      write_result(result, oprot, 'alter_wm_pool', seqid)
    end

    def process_drop_wm_pool(seqid, iprot, oprot)
      args = read_args(iprot, Drop_wm_pool_args)
      result = Drop_wm_pool_result.new()
      begin
        result.success = @handler.drop_wm_pool(args.request)
      rescue ::NoSuchObjectException => o1
        result.o1 = o1
      rescue ::InvalidOperationException => o2
        result.o2 = o2
      rescue ::MetaException => o3
        result.o3 = o3
      end
      write_result(result, oprot, 'drop_wm_pool', seqid)
    end

    def process_create_or_update_wm_mapping(seqid, iprot, oprot)
      args = read_args(iprot, Create_or_update_wm_mapping_args)
      result = Create_or_update_wm_mapping_result.new()
      begin
        result.success = @handler.create_or_update_wm_mapping(args.request)
      rescue ::AlreadyExistsException => o1
        result.o1 = o1
      rescue ::NoSuchObjectException => o2
        result.o2 = o2
      rescue ::InvalidObjectException => o3
        result.o3 = o3
      rescue ::MetaException => o4
        result.o4 = o4
      end
      write_result(result, oprot, 'create_or_update_wm_mapping', seqid)
    end

    def process_drop_wm_mapping(seqid, iprot, oprot)
      args = read_args(iprot, Drop_wm_mapping_args)
      result = Drop_wm_mapping_result.new()
      begin
        result.success = @handler.drop_wm_mapping(args.request)
      rescue ::NoSuchObjectException => o1
        result.o1 = o1
      rescue ::InvalidOperationException => o2
        result.o2 = o2
      rescue ::MetaException => o3
        result.o3 = o3
      end
      write_result(result, oprot, 'drop_wm_mapping', seqid)
    end

    def process_create_or_drop_wm_trigger_to_pool_mapping(seqid, iprot, oprot)
      args = read_args(iprot, Create_or_drop_wm_trigger_to_pool_mapping_args)
      result = Create_or_drop_wm_trigger_to_pool_mapping_result.new()
      begin
        result.success = @handler.create_or_drop_wm_trigger_to_pool_mapping(args.request)
      rescue ::AlreadyExistsException => o1
        result.o1 = o1
      rescue ::NoSuchObjectException => o2
        result.o2 = o2
      rescue ::InvalidObjectException => o3
        result.o3 = o3
      rescue ::MetaException => o4
        result.o4 = o4
      end
      write_result(result, oprot, 'create_or_drop_wm_trigger_to_pool_mapping', seqid)
    end

    def process_create_ischema(seqid, iprot, oprot)
      args = read_args(iprot, Create_ischema_args)
      result = Create_ischema_result.new()
      begin
        @handler.create_ischema(args.schema)
      rescue ::AlreadyExistsException => o1
        result.o1 = o1
      rescue ::NoSuchObjectException => o2
        result.o2 = o2
      rescue ::MetaException => o3
        result.o3 = o3
      end
      write_result(result, oprot, 'create_ischema', seqid)
    end

    def process_alter_ischema(seqid, iprot, oprot)
      args = read_args(iprot, Alter_ischema_args)
      result = Alter_ischema_result.new()
      begin
        @handler.alter_ischema(args.rqst)
      rescue ::NoSuchObjectException => o1
        result.o1 = o1
      rescue ::MetaException => o2
        result.o2 = o2
      end
      write_result(result, oprot, 'alter_ischema', seqid)
    end

    def process_get_ischema(seqid, iprot, oprot)
      args = read_args(iprot, Get_ischema_args)
      result = Get_ischema_result.new()
      begin
        result.success = @handler.get_ischema(args.name)
      rescue ::NoSuchObjectException => o1
        result.o1 = o1
      rescue ::MetaException => o2
        result.o2 = o2
      end
      write_result(result, oprot, 'get_ischema', seqid)
    end

    def process_drop_ischema(seqid, iprot, oprot)
      args = read_args(iprot, Drop_ischema_args)
      result = Drop_ischema_result.new()
      begin
        @handler.drop_ischema(args.name)
      rescue ::NoSuchObjectException => o1
        result.o1 = o1
      rescue ::InvalidOperationException => o2
        result.o2 = o2
      rescue ::MetaException => o3
        result.o3 = o3
      end
      write_result(result, oprot, 'drop_ischema', seqid)
    end

    def process_add_schema_version(seqid, iprot, oprot)
      args = read_args(iprot, Add_schema_version_args)
      result = Add_schema_version_result.new()
      begin
        @handler.add_schema_version(args.schemaVersion)
      rescue ::AlreadyExistsException => o1
        result.o1 = o1
      rescue ::NoSuchObjectException => o2
        result.o2 = o2
      rescue ::MetaException => o3
        result.o3 = o3
      end
      write_result(result, oprot, 'add_schema_version', seqid)
    end

    def process_get_schema_version(seqid, iprot, oprot)
      args = read_args(iprot, Get_schema_version_args)
      result = Get_schema_version_result.new()
      begin
        result.success = @handler.get_schema_version(args.schemaVersion)
      rescue ::NoSuchObjectException => o1
        result.o1 = o1
      rescue ::MetaException => o2
        result.o2 = o2
      end
      write_result(result, oprot, 'get_schema_version', seqid)
    end

    def process_get_schema_latest_version(seqid, iprot, oprot)
      args = read_args(iprot, Get_schema_latest_version_args)
      result = Get_schema_latest_version_result.new()
      begin
        result.success = @handler.get_schema_latest_version(args.schemaName)
      rescue ::NoSuchObjectException => o1
        result.o1 = o1
      rescue ::MetaException => o2
        result.o2 = o2
      end
      write_result(result, oprot, 'get_schema_latest_version', seqid)
    end

    def process_get_schema_all_versions(seqid, iprot, oprot)
      args = read_args(iprot, Get_schema_all_versions_args)
      result = Get_schema_all_versions_result.new()
      begin
        result.success = @handler.get_schema_all_versions(args.schemaName)
      rescue ::NoSuchObjectException => o1
        result.o1 = o1
      rescue ::MetaException => o2
        result.o2 = o2
      end
      write_result(result, oprot, 'get_schema_all_versions', seqid)
    end

    def process_drop_schema_version(seqid, iprot, oprot)
      args = read_args(iprot, Drop_schema_version_args)
      result = Drop_schema_version_result.new()
      begin
        @handler.drop_schema_version(args.schemaVersion)
      rescue ::NoSuchObjectException => o1
        result.o1 = o1
      rescue ::MetaException => o2
        result.o2 = o2
      end
      write_result(result, oprot, 'drop_schema_version', seqid)
    end

    def process_get_schemas_by_cols(seqid, iprot, oprot)
      args = read_args(iprot, Get_schemas_by_cols_args)
      result = Get_schemas_by_cols_result.new()
      begin
        result.success = @handler.get_schemas_by_cols(args.rqst)
      rescue ::MetaException => o1
        result.o1 = o1
      end
      write_result(result, oprot, 'get_schemas_by_cols', seqid)
    end

    def process_map_schema_version_to_serde(seqid, iprot, oprot)
      args = read_args(iprot, Map_schema_version_to_serde_args)
      result = Map_schema_version_to_serde_result.new()
      begin
        @handler.map_schema_version_to_serde(args.rqst)
      rescue ::NoSuchObjectException => o1
        result.o1 = o1
      rescue ::MetaException => o2
        result.o2 = o2
      end
      write_result(result, oprot, 'map_schema_version_to_serde', seqid)
    end

    def process_set_schema_version_state(seqid, iprot, oprot)
      args = read_args(iprot, Set_schema_version_state_args)
      result = Set_schema_version_state_result.new()
      begin
        @handler.set_schema_version_state(args.rqst)
      rescue ::NoSuchObjectException => o1
        result.o1 = o1
      rescue ::InvalidOperationException => o2
        result.o2 = o2
      rescue ::MetaException => o3
        result.o3 = o3
      end
      write_result(result, oprot, 'set_schema_version_state', seqid)
    end

    def process_add_serde(seqid, iprot, oprot)
      args = read_args(iprot, Add_serde_args)
      result = Add_serde_result.new()
      begin
        @handler.add_serde(args.serde)
      rescue ::AlreadyExistsException => o1
        result.o1 = o1
      rescue ::MetaException => o2
        result.o2 = o2
      end
      write_result(result, oprot, 'add_serde', seqid)
    end

    def process_get_serde(seqid, iprot, oprot)
      args = read_args(iprot, Get_serde_args)
      result = Get_serde_result.new()
      begin
        result.success = @handler.get_serde(args.rqst)
      rescue ::NoSuchObjectException => o1
        result.o1 = o1
      rescue ::MetaException => o2
        result.o2 = o2
      end
      write_result(result, oprot, 'get_serde', seqid)
    end

    def process_get_lock_materialization_rebuild(seqid, iprot, oprot)
      args = read_args(iprot, Get_lock_materialization_rebuild_args)
      result = Get_lock_materialization_rebuild_result.new()
      result.success = @handler.get_lock_materialization_rebuild(args.dbName, args.tableName, args.txnId)
      write_result(result, oprot, 'get_lock_materialization_rebuild', seqid)
    end

    def process_heartbeat_lock_materialization_rebuild(seqid, iprot, oprot)
      args = read_args(iprot, Heartbeat_lock_materialization_rebuild_args)
      result = Heartbeat_lock_materialization_rebuild_result.new()
      result.success = @handler.heartbeat_lock_materialization_rebuild(args.dbName, args.tableName, args.txnId)
      write_result(result, oprot, 'heartbeat_lock_materialization_rebuild', seqid)
    end

    def process_add_runtime_stats(seqid, iprot, oprot)
      args = read_args(iprot, Add_runtime_stats_args)
      result = Add_runtime_stats_result.new()
      begin
        @handler.add_runtime_stats(args.stat)
      rescue ::MetaException => o1
        result.o1 = o1
      end
      write_result(result, oprot, 'add_runtime_stats', seqid)
    end

    def process_get_runtime_stats(seqid, iprot, oprot)
      args = read_args(iprot, Get_runtime_stats_args)
      result = Get_runtime_stats_result.new()
      begin
        result.success = @handler.get_runtime_stats(args.rqst)
      rescue ::MetaException => o1
        result.o1 = o1
      end
      write_result(result, oprot, 'get_runtime_stats', seqid)
    end

    def process_get_partitions_with_specs(seqid, iprot, oprot)
      args = read_args(iprot, Get_partitions_with_specs_args)
      result = Get_partitions_with_specs_result.new()
      begin
        result.success = @handler.get_partitions_with_specs(args.request)
      rescue ::MetaException => o1
        result.o1 = o1
      end
      write_result(result, oprot, 'get_partitions_with_specs', seqid)
    end

    def process_scheduled_query_poll(seqid, iprot, oprot)
      args = read_args(iprot, Scheduled_query_poll_args)
      result = Scheduled_query_poll_result.new()
      begin
        result.success = @handler.scheduled_query_poll(args.request)
      rescue ::MetaException => o1
        result.o1 = o1
      end
      write_result(result, oprot, 'scheduled_query_poll', seqid)
    end

    def process_scheduled_query_maintenance(seqid, iprot, oprot)
      args = read_args(iprot, Scheduled_query_maintenance_args)
      result = Scheduled_query_maintenance_result.new()
      begin
        @handler.scheduled_query_maintenance(args.request)
      rescue ::MetaException => o1
        result.o1 = o1
      rescue ::NoSuchObjectException => o2
        result.o2 = o2
      rescue ::AlreadyExistsException => o3
        result.o3 = o3
      rescue ::InvalidInputException => o4
        result.o4 = o4
      end
      write_result(result, oprot, 'scheduled_query_maintenance', seqid)
    end

    def process_scheduled_query_progress(seqid, iprot, oprot)
      args = read_args(iprot, Scheduled_query_progress_args)
      result = Scheduled_query_progress_result.new()
      begin
        @handler.scheduled_query_progress(args.info)
      rescue ::MetaException => o1
        result.o1 = o1
      rescue ::InvalidOperationException => o2
        result.o2 = o2
      end
      write_result(result, oprot, 'scheduled_query_progress', seqid)
    end

    def process_get_scheduled_query(seqid, iprot, oprot)
      args = read_args(iprot, Get_scheduled_query_args)
      result = Get_scheduled_query_result.new()
      begin
        result.success = @handler.get_scheduled_query(args.scheduleKey)
      rescue ::MetaException => o1
        result.o1 = o1
      rescue ::NoSuchObjectException => o2
        result.o2 = o2
      end
      write_result(result, oprot, 'get_scheduled_query', seqid)
    end

    def process_add_replication_metrics(seqid, iprot, oprot)
      args = read_args(iprot, Add_replication_metrics_args)
      result = Add_replication_metrics_result.new()
      begin
        @handler.add_replication_metrics(args.replicationMetricList)
      rescue ::MetaException => o1
        result.o1 = o1
      end
      write_result(result, oprot, 'add_replication_metrics', seqid)
    end

    def process_get_replication_metrics(seqid, iprot, oprot)
      args = read_args(iprot, Get_replication_metrics_args)
      result = Get_replication_metrics_result.new()
      begin
        result.success = @handler.get_replication_metrics(args.rqst)
      rescue ::MetaException => o1
        result.o1 = o1
      end
      write_result(result, oprot, 'get_replication_metrics', seqid)
    end

  end

  # HELPER FUNCTIONS AND STRUCTURES

  class GetMetaConf_args
    include ::Thrift::Struct, ::Thrift::Struct_Union
    KEY = 1

    FIELDS = {
      KEY => {:type => ::Thrift::Types::STRING, :name => 'key'}
    }

    def struct_fields; FIELDS; end

    def validate
    end

    ::Thrift::Struct.generate_accessors self
  end

  class GetMetaConf_result
    include ::Thrift::Struct, ::Thrift::Struct_Union
    SUCCESS = 0
    O1 = 1

    FIELDS = {
      SUCCESS => {:type => ::Thrift::Types::STRING, :name => 'success'},
      O1 => {:type => ::Thrift::Types::STRUCT, :name => 'o1', :class => ::MetaException}
    }

    def struct_fields; FIELDS; end

    def validate
    end

    ::Thrift::Struct.generate_accessors self
  end

  class SetMetaConf_args
    include ::Thrift::Struct, ::Thrift::Struct_Union
    KEY = 1
    VALUE = 2

    FIELDS = {
      KEY => {:type => ::Thrift::Types::STRING, :name => 'key'},
      VALUE => {:type => ::Thrift::Types::STRING, :name => 'value'}
    }

    def struct_fields; FIELDS; end

    def validate
    end

    ::Thrift::Struct.generate_accessors self
  end

  class SetMetaConf_result
    include ::Thrift::Struct, ::Thrift::Struct_Union
    O1 = 1

    FIELDS = {
      O1 => {:type => ::Thrift::Types::STRUCT, :name => 'o1', :class => ::MetaException}
    }

    def struct_fields; FIELDS; end

    def validate
    end

    ::Thrift::Struct.generate_accessors self
  end

  class Create_catalog_args
    include ::Thrift::Struct, ::Thrift::Struct_Union
    CATALOG = 1

    FIELDS = {
      CATALOG => {:type => ::Thrift::Types::STRUCT, :name => 'catalog', :class => ::CreateCatalogRequest}
    }

    def struct_fields; FIELDS; end

    def validate
    end

    ::Thrift::Struct.generate_accessors self
  end

  class Create_catalog_result
    include ::Thrift::Struct, ::Thrift::Struct_Union
    O1 = 1
    O2 = 2
    O3 = 3

    FIELDS = {
      O1 => {:type => ::Thrift::Types::STRUCT, :name => 'o1', :class => ::AlreadyExistsException},
      O2 => {:type => ::Thrift::Types::STRUCT, :name => 'o2', :class => ::InvalidObjectException},
      O3 => {:type => ::Thrift::Types::STRUCT, :name => 'o3', :class => ::MetaException}
    }

    def struct_fields; FIELDS; end

    def validate
    end

    ::Thrift::Struct.generate_accessors self
  end

  class Alter_catalog_args
    include ::Thrift::Struct, ::Thrift::Struct_Union
    RQST = 1

    FIELDS = {
      RQST => {:type => ::Thrift::Types::STRUCT, :name => 'rqst', :class => ::AlterCatalogRequest}
    }

    def struct_fields; FIELDS; end

    def validate
    end

    ::Thrift::Struct.generate_accessors self
  end

  class Alter_catalog_result
    include ::Thrift::Struct, ::Thrift::Struct_Union
    O1 = 1
    O2 = 2
    O3 = 3

    FIELDS = {
      O1 => {:type => ::Thrift::Types::STRUCT, :name => 'o1', :class => ::NoSuchObjectException},
      O2 => {:type => ::Thrift::Types::STRUCT, :name => 'o2', :class => ::InvalidOperationException},
      O3 => {:type => ::Thrift::Types::STRUCT, :name => 'o3', :class => ::MetaException}
    }

    def struct_fields; FIELDS; end

    def validate
    end

    ::Thrift::Struct.generate_accessors self
  end

  class Get_catalog_args
    include ::Thrift::Struct, ::Thrift::Struct_Union
    CATNAME = 1

    FIELDS = {
      CATNAME => {:type => ::Thrift::Types::STRUCT, :name => 'catName', :class => ::GetCatalogRequest}
    }

    def struct_fields; FIELDS; end

    def validate
    end

    ::Thrift::Struct.generate_accessors self
  end

  class Get_catalog_result
    include ::Thrift::Struct, ::Thrift::Struct_Union
    SUCCESS = 0
    O1 = 1
    O2 = 2

    FIELDS = {
      SUCCESS => {:type => ::Thrift::Types::STRUCT, :name => 'success', :class => ::GetCatalogResponse},
      O1 => {:type => ::Thrift::Types::STRUCT, :name => 'o1', :class => ::NoSuchObjectException},
      O2 => {:type => ::Thrift::Types::STRUCT, :name => 'o2', :class => ::MetaException}
    }

    def struct_fields; FIELDS; end

    def validate
    end

    ::Thrift::Struct.generate_accessors self
  end

  class Get_catalogs_args
    include ::Thrift::Struct, ::Thrift::Struct_Union

    FIELDS = {

    }

    def struct_fields; FIELDS; end

    def validate
    end

    ::Thrift::Struct.generate_accessors self
  end

  class Get_catalogs_result
    include ::Thrift::Struct, ::Thrift::Struct_Union
    SUCCESS = 0
    O1 = 1

    FIELDS = {
      SUCCESS => {:type => ::Thrift::Types::STRUCT, :name => 'success', :class => ::GetCatalogsResponse},
      O1 => {:type => ::Thrift::Types::STRUCT, :name => 'o1', :class => ::MetaException}
    }

    def struct_fields; FIELDS; end

    def validate
    end

    ::Thrift::Struct.generate_accessors self
  end

  class Drop_catalog_args
    include ::Thrift::Struct, ::Thrift::Struct_Union
    CATNAME = 1

    FIELDS = {
      CATNAME => {:type => ::Thrift::Types::STRUCT, :name => 'catName', :class => ::DropCatalogRequest}
    }

    def struct_fields; FIELDS; end

    def validate
    end

    ::Thrift::Struct.generate_accessors self
  end

  class Drop_catalog_result
    include ::Thrift::Struct, ::Thrift::Struct_Union
    O1 = 1
    O2 = 2
    O3 = 3

    FIELDS = {
      O1 => {:type => ::Thrift::Types::STRUCT, :name => 'o1', :class => ::NoSuchObjectException},
      O2 => {:type => ::Thrift::Types::STRUCT, :name => 'o2', :class => ::InvalidOperationException},
      O3 => {:type => ::Thrift::Types::STRUCT, :name => 'o3', :class => ::MetaException}
    }

    def struct_fields; FIELDS; end

    def validate
    end

    ::Thrift::Struct.generate_accessors self
  end

  class Create_database_args
    include ::Thrift::Struct, ::Thrift::Struct_Union
    DATABASE = 1

    FIELDS = {
      DATABASE => {:type => ::Thrift::Types::STRUCT, :name => 'database', :class => ::Database}
    }

    def struct_fields; FIELDS; end

    def validate
    end

    ::Thrift::Struct.generate_accessors self
  end

  class Create_database_result
    include ::Thrift::Struct, ::Thrift::Struct_Union
    O1 = 1
    O2 = 2
    O3 = 3

    FIELDS = {
      O1 => {:type => ::Thrift::Types::STRUCT, :name => 'o1', :class => ::AlreadyExistsException},
      O2 => {:type => ::Thrift::Types::STRUCT, :name => 'o2', :class => ::InvalidObjectException},
      O3 => {:type => ::Thrift::Types::STRUCT, :name => 'o3', :class => ::MetaException}
    }

    def struct_fields; FIELDS; end

    def validate
    end

    ::Thrift::Struct.generate_accessors self
  end

  class Get_database_args
    include ::Thrift::Struct, ::Thrift::Struct_Union
    NAME = 1

    FIELDS = {
      NAME => {:type => ::Thrift::Types::STRING, :name => 'name'}
    }

    def struct_fields; FIELDS; end

    def validate
    end

    ::Thrift::Struct.generate_accessors self
  end

  class Get_database_result
    include ::Thrift::Struct, ::Thrift::Struct_Union
    SUCCESS = 0
    O1 = 1
    O2 = 2

    FIELDS = {
      SUCCESS => {:type => ::Thrift::Types::STRUCT, :name => 'success', :class => ::Database},
      O1 => {:type => ::Thrift::Types::STRUCT, :name => 'o1', :class => ::NoSuchObjectException},
      O2 => {:type => ::Thrift::Types::STRUCT, :name => 'o2', :class => ::MetaException}
    }

    def struct_fields; FIELDS; end

    def validate
    end

    ::Thrift::Struct.generate_accessors self
  end

  class Get_database_req_args
    include ::Thrift::Struct, ::Thrift::Struct_Union
    REQUEST = 1

    FIELDS = {
      REQUEST => {:type => ::Thrift::Types::STRUCT, :name => 'request', :class => ::GetDatabaseRequest}
    }

    def struct_fields; FIELDS; end

    def validate
    end

    ::Thrift::Struct.generate_accessors self
  end

  class Get_database_req_result
    include ::Thrift::Struct, ::Thrift::Struct_Union
    SUCCESS = 0
    O1 = 1
    O2 = 2

    FIELDS = {
      SUCCESS => {:type => ::Thrift::Types::STRUCT, :name => 'success', :class => ::Database},
      O1 => {:type => ::Thrift::Types::STRUCT, :name => 'o1', :class => ::NoSuchObjectException},
      O2 => {:type => ::Thrift::Types::STRUCT, :name => 'o2', :class => ::MetaException}
    }

    def struct_fields; FIELDS; end

    def validate
    end

    ::Thrift::Struct.generate_accessors self
  end

  class Drop_database_args
    include ::Thrift::Struct, ::Thrift::Struct_Union
    NAME = 1
    DELETEDATA = 2
    CASCADE = 3

    FIELDS = {
      NAME => {:type => ::Thrift::Types::STRING, :name => 'name'},
      DELETEDATA => {:type => ::Thrift::Types::BOOL, :name => 'deleteData'},
      CASCADE => {:type => ::Thrift::Types::BOOL, :name => 'cascade'}
    }

    def struct_fields; FIELDS; end

    def validate
    end

    ::Thrift::Struct.generate_accessors self
  end

  class Drop_database_result
    include ::Thrift::Struct, ::Thrift::Struct_Union
    O1 = 1
    O2 = 2
    O3 = 3

    FIELDS = {
      O1 => {:type => ::Thrift::Types::STRUCT, :name => 'o1', :class => ::NoSuchObjectException},
      O2 => {:type => ::Thrift::Types::STRUCT, :name => 'o2', :class => ::InvalidOperationException},
      O3 => {:type => ::Thrift::Types::STRUCT, :name => 'o3', :class => ::MetaException}
    }

    def struct_fields; FIELDS; end

    def validate
    end

    ::Thrift::Struct.generate_accessors self
  end

  class Get_databases_args
    include ::Thrift::Struct, ::Thrift::Struct_Union
    PATTERN = 1

    FIELDS = {
      PATTERN => {:type => ::Thrift::Types::STRING, :name => 'pattern'}
    }

    def struct_fields; FIELDS; end

    def validate
    end

    ::Thrift::Struct.generate_accessors self
  end

  class Get_databases_result
    include ::Thrift::Struct, ::Thrift::Struct_Union
    SUCCESS = 0
    O1 = 1

    FIELDS = {
      SUCCESS => {:type => ::Thrift::Types::LIST, :name => 'success', :element => {:type => ::Thrift::Types::STRING}},
      O1 => {:type => ::Thrift::Types::STRUCT, :name => 'o1', :class => ::MetaException}
    }

    def struct_fields; FIELDS; end

    def validate
    end

    ::Thrift::Struct.generate_accessors self
  end

  class Get_all_databases_args
    include ::Thrift::Struct, ::Thrift::Struct_Union

    FIELDS = {

    }

    def struct_fields; FIELDS; end

    def validate
    end

    ::Thrift::Struct.generate_accessors self
  end

  class Get_all_databases_result
    include ::Thrift::Struct, ::Thrift::Struct_Union
    SUCCESS = 0
    O1 = 1

    FIELDS = {
      SUCCESS => {:type => ::Thrift::Types::LIST, :name => 'success', :element => {:type => ::Thrift::Types::STRING}},
      O1 => {:type => ::Thrift::Types::STRUCT, :name => 'o1', :class => ::MetaException}
    }

    def struct_fields; FIELDS; end

    def validate
    end

    ::Thrift::Struct.generate_accessors self
  end

  class Alter_database_args
    include ::Thrift::Struct, ::Thrift::Struct_Union
    DBNAME = 1
    DB = 2

    FIELDS = {
      DBNAME => {:type => ::Thrift::Types::STRING, :name => 'dbname'},
      DB => {:type => ::Thrift::Types::STRUCT, :name => 'db', :class => ::Database}
    }

    def struct_fields; FIELDS; end

    def validate
    end

    ::Thrift::Struct.generate_accessors self
  end

  class Alter_database_result
    include ::Thrift::Struct, ::Thrift::Struct_Union
    O1 = 1
    O2 = 2

    FIELDS = {
      O1 => {:type => ::Thrift::Types::STRUCT, :name => 'o1', :class => ::MetaException},
      O2 => {:type => ::Thrift::Types::STRUCT, :name => 'o2', :class => ::NoSuchObjectException}
    }

    def struct_fields; FIELDS; end

    def validate
    end

    ::Thrift::Struct.generate_accessors self
  end

  class Get_type_args
    include ::Thrift::Struct, ::Thrift::Struct_Union
    NAME = 1

    FIELDS = {
      NAME => {:type => ::Thrift::Types::STRING, :name => 'name'}
    }

    def struct_fields; FIELDS; end

    def validate
    end

    ::Thrift::Struct.generate_accessors self
  end

  class Get_type_result
    include ::Thrift::Struct, ::Thrift::Struct_Union
    SUCCESS = 0
    O1 = 1
    O2 = 2

    FIELDS = {
      SUCCESS => {:type => ::Thrift::Types::STRUCT, :name => 'success', :class => ::Type},
      O1 => {:type => ::Thrift::Types::STRUCT, :name => 'o1', :class => ::MetaException},
      O2 => {:type => ::Thrift::Types::STRUCT, :name => 'o2', :class => ::NoSuchObjectException}
    }

    def struct_fields; FIELDS; end

    def validate
    end

    ::Thrift::Struct.generate_accessors self
  end

  class Create_type_args
    include ::Thrift::Struct, ::Thrift::Struct_Union
    TYPE = 1

    FIELDS = {
      TYPE => {:type => ::Thrift::Types::STRUCT, :name => 'type', :class => ::Type}
    }

    def struct_fields; FIELDS; end

    def validate
    end

    ::Thrift::Struct.generate_accessors self
  end

  class Create_type_result
    include ::Thrift::Struct, ::Thrift::Struct_Union
    SUCCESS = 0
    O1 = 1
    O2 = 2
    O3 = 3

    FIELDS = {
      SUCCESS => {:type => ::Thrift::Types::BOOL, :name => 'success'},
      O1 => {:type => ::Thrift::Types::STRUCT, :name => 'o1', :class => ::AlreadyExistsException},
      O2 => {:type => ::Thrift::Types::STRUCT, :name => 'o2', :class => ::InvalidObjectException},
      O3 => {:type => ::Thrift::Types::STRUCT, :name => 'o3', :class => ::MetaException}
    }

    def struct_fields; FIELDS; end

    def validate
    end

    ::Thrift::Struct.generate_accessors self
  end

  class Drop_type_args
    include ::Thrift::Struct, ::Thrift::Struct_Union
    TYPE = 1

    FIELDS = {
      TYPE => {:type => ::Thrift::Types::STRING, :name => 'type'}
    }

    def struct_fields; FIELDS; end

    def validate
    end

    ::Thrift::Struct.generate_accessors self
  end

  class Drop_type_result
    include ::Thrift::Struct, ::Thrift::Struct_Union
    SUCCESS = 0
    O1 = 1
    O2 = 2

    FIELDS = {
      SUCCESS => {:type => ::Thrift::Types::BOOL, :name => 'success'},
      O1 => {:type => ::Thrift::Types::STRUCT, :name => 'o1', :class => ::MetaException},
      O2 => {:type => ::Thrift::Types::STRUCT, :name => 'o2', :class => ::NoSuchObjectException}
    }

    def struct_fields; FIELDS; end

    def validate
    end

    ::Thrift::Struct.generate_accessors self
  end

  class Get_type_all_args
    include ::Thrift::Struct, ::Thrift::Struct_Union
    NAME = 1

    FIELDS = {
      NAME => {:type => ::Thrift::Types::STRING, :name => 'name'}
    }

    def struct_fields; FIELDS; end

    def validate
    end

    ::Thrift::Struct.generate_accessors self
  end

  class Get_type_all_result
    include ::Thrift::Struct, ::Thrift::Struct_Union
    SUCCESS = 0
    O2 = 1

    FIELDS = {
      SUCCESS => {:type => ::Thrift::Types::MAP, :name => 'success', :key => {:type => ::Thrift::Types::STRING}, :value => {:type => ::Thrift::Types::STRUCT, :class => ::Type}},
      O2 => {:type => ::Thrift::Types::STRUCT, :name => 'o2', :class => ::MetaException}
    }

    def struct_fields; FIELDS; end

    def validate
    end

    ::Thrift::Struct.generate_accessors self
  end

  class Get_fields_args
    include ::Thrift::Struct, ::Thrift::Struct_Union
    DB_NAME = 1
    TABLE_NAME = 2

    FIELDS = {
      DB_NAME => {:type => ::Thrift::Types::STRING, :name => 'db_name'},
      TABLE_NAME => {:type => ::Thrift::Types::STRING, :name => 'table_name'}
    }

    def struct_fields; FIELDS; end

    def validate
    end

    ::Thrift::Struct.generate_accessors self
  end

  class Get_fields_result
    include ::Thrift::Struct, ::Thrift::Struct_Union
    SUCCESS = 0
    O1 = 1
    O2 = 2
    O3 = 3

    FIELDS = {
      SUCCESS => {:type => ::Thrift::Types::LIST, :name => 'success', :element => {:type => ::Thrift::Types::STRUCT, :class => ::FieldSchema}},
      O1 => {:type => ::Thrift::Types::STRUCT, :name => 'o1', :class => ::MetaException},
      O2 => {:type => ::Thrift::Types::STRUCT, :name => 'o2', :class => ::UnknownTableException},
      O3 => {:type => ::Thrift::Types::STRUCT, :name => 'o3', :class => ::UnknownDBException}
    }

    def struct_fields; FIELDS; end

    def validate
    end

    ::Thrift::Struct.generate_accessors self
  end

  class Get_fields_with_environment_context_args
    include ::Thrift::Struct, ::Thrift::Struct_Union
    DB_NAME = 1
    TABLE_NAME = 2
    ENVIRONMENT_CONTEXT = 3

    FIELDS = {
      DB_NAME => {:type => ::Thrift::Types::STRING, :name => 'db_name'},
      TABLE_NAME => {:type => ::Thrift::Types::STRING, :name => 'table_name'},
      ENVIRONMENT_CONTEXT => {:type => ::Thrift::Types::STRUCT, :name => 'environment_context', :class => ::EnvironmentContext}
    }

    def struct_fields; FIELDS; end

    def validate
    end

    ::Thrift::Struct.generate_accessors self
  end

  class Get_fields_with_environment_context_result
    include ::Thrift::Struct, ::Thrift::Struct_Union
    SUCCESS = 0
    O1 = 1
    O2 = 2
    O3 = 3

    FIELDS = {
      SUCCESS => {:type => ::Thrift::Types::LIST, :name => 'success', :element => {:type => ::Thrift::Types::STRUCT, :class => ::FieldSchema}},
      O1 => {:type => ::Thrift::Types::STRUCT, :name => 'o1', :class => ::MetaException},
      O2 => {:type => ::Thrift::Types::STRUCT, :name => 'o2', :class => ::UnknownTableException},
      O3 => {:type => ::Thrift::Types::STRUCT, :name => 'o3', :class => ::UnknownDBException}
    }

    def struct_fields; FIELDS; end

    def validate
    end

    ::Thrift::Struct.generate_accessors self
  end

  class Get_fields_req_args
    include ::Thrift::Struct, ::Thrift::Struct_Union
    REQ = 1

    FIELDS = {
      REQ => {:type => ::Thrift::Types::STRUCT, :name => 'req', :class => ::GetFieldsRequest}
    }

    def struct_fields; FIELDS; end

    def validate
    end

    ::Thrift::Struct.generate_accessors self
  end

  class Get_fields_req_result
    include ::Thrift::Struct, ::Thrift::Struct_Union
    SUCCESS = 0
    O1 = 1
    O2 = 2
    O3 = 3

    FIELDS = {
      SUCCESS => {:type => ::Thrift::Types::STRUCT, :name => 'success', :class => ::GetFieldsResponse},
      O1 => {:type => ::Thrift::Types::STRUCT, :name => 'o1', :class => ::MetaException},
      O2 => {:type => ::Thrift::Types::STRUCT, :name => 'o2', :class => ::UnknownTableException},
      O3 => {:type => ::Thrift::Types::STRUCT, :name => 'o3', :class => ::UnknownDBException}
    }

    def struct_fields; FIELDS; end

    def validate
    end

    ::Thrift::Struct.generate_accessors self
  end

  class Get_schema_args
    include ::Thrift::Struct, ::Thrift::Struct_Union
    DB_NAME = 1
    TABLE_NAME = 2

    FIELDS = {
      DB_NAME => {:type => ::Thrift::Types::STRING, :name => 'db_name'},
      TABLE_NAME => {:type => ::Thrift::Types::STRING, :name => 'table_name'}
    }

    def struct_fields; FIELDS; end

    def validate
    end

    ::Thrift::Struct.generate_accessors self
  end

  class Get_schema_result
    include ::Thrift::Struct, ::Thrift::Struct_Union
    SUCCESS = 0
    O1 = 1
    O2 = 2
    O3 = 3

    FIELDS = {
      SUCCESS => {:type => ::Thrift::Types::LIST, :name => 'success', :element => {:type => ::Thrift::Types::STRUCT, :class => ::FieldSchema}},
      O1 => {:type => ::Thrift::Types::STRUCT, :name => 'o1', :class => ::MetaException},
      O2 => {:type => ::Thrift::Types::STRUCT, :name => 'o2', :class => ::UnknownTableException},
      O3 => {:type => ::Thrift::Types::STRUCT, :name => 'o3', :class => ::UnknownDBException}
    }

    def struct_fields; FIELDS; end

    def validate
    end

    ::Thrift::Struct.generate_accessors self
  end

  class Get_schema_with_environment_context_args
    include ::Thrift::Struct, ::Thrift::Struct_Union
    DB_NAME = 1
    TABLE_NAME = 2
    ENVIRONMENT_CONTEXT = 3

    FIELDS = {
      DB_NAME => {:type => ::Thrift::Types::STRING, :name => 'db_name'},
      TABLE_NAME => {:type => ::Thrift::Types::STRING, :name => 'table_name'},
      ENVIRONMENT_CONTEXT => {:type => ::Thrift::Types::STRUCT, :name => 'environment_context', :class => ::EnvironmentContext}
    }

    def struct_fields; FIELDS; end

    def validate
    end

    ::Thrift::Struct.generate_accessors self
  end

  class Get_schema_with_environment_context_result
    include ::Thrift::Struct, ::Thrift::Struct_Union
    SUCCESS = 0
    O1 = 1
    O2 = 2
    O3 = 3

    FIELDS = {
      SUCCESS => {:type => ::Thrift::Types::LIST, :name => 'success', :element => {:type => ::Thrift::Types::STRUCT, :class => ::FieldSchema}},
      O1 => {:type => ::Thrift::Types::STRUCT, :name => 'o1', :class => ::MetaException},
      O2 => {:type => ::Thrift::Types::STRUCT, :name => 'o2', :class => ::UnknownTableException},
      O3 => {:type => ::Thrift::Types::STRUCT, :name => 'o3', :class => ::UnknownDBException}
    }

    def struct_fields; FIELDS; end

    def validate
    end

    ::Thrift::Struct.generate_accessors self
  end

  class Get_schema_req_args
    include ::Thrift::Struct, ::Thrift::Struct_Union
    REQ = 1

    FIELDS = {
      REQ => {:type => ::Thrift::Types::STRUCT, :name => 'req', :class => ::GetSchemaRequest}
    }

    def struct_fields; FIELDS; end

    def validate
    end

    ::Thrift::Struct.generate_accessors self
  end

  class Get_schema_req_result
    include ::Thrift::Struct, ::Thrift::Struct_Union
    SUCCESS = 0
    O1 = 1
    O2 = 2
    O3 = 3

    FIELDS = {
      SUCCESS => {:type => ::Thrift::Types::STRUCT, :name => 'success', :class => ::GetSchemaResponse},
      O1 => {:type => ::Thrift::Types::STRUCT, :name => 'o1', :class => ::MetaException},
      O2 => {:type => ::Thrift::Types::STRUCT, :name => 'o2', :class => ::UnknownTableException},
      O3 => {:type => ::Thrift::Types::STRUCT, :name => 'o3', :class => ::UnknownDBException}
    }

    def struct_fields; FIELDS; end

    def validate
    end

    ::Thrift::Struct.generate_accessors self
  end

  class Create_table_args
    include ::Thrift::Struct, ::Thrift::Struct_Union
    TBL = 1

    FIELDS = {
      TBL => {:type => ::Thrift::Types::STRUCT, :name => 'tbl', :class => ::Table}
    }

    def struct_fields; FIELDS; end

    def validate
    end

    ::Thrift::Struct.generate_accessors self
  end

  class Create_table_result
    include ::Thrift::Struct, ::Thrift::Struct_Union
    O1 = 1
    O2 = 2
    O3 = 3
    O4 = 4

    FIELDS = {
      O1 => {:type => ::Thrift::Types::STRUCT, :name => 'o1', :class => ::AlreadyExistsException},
      O2 => {:type => ::Thrift::Types::STRUCT, :name => 'o2', :class => ::InvalidObjectException},
      O3 => {:type => ::Thrift::Types::STRUCT, :name => 'o3', :class => ::MetaException},
      O4 => {:type => ::Thrift::Types::STRUCT, :name => 'o4', :class => ::NoSuchObjectException}
    }

    def struct_fields; FIELDS; end

    def validate
    end

    ::Thrift::Struct.generate_accessors self
  end

  class Create_table_with_environment_context_args
    include ::Thrift::Struct, ::Thrift::Struct_Union
    TBL = 1
    ENVIRONMENT_CONTEXT = 2

    FIELDS = {
      TBL => {:type => ::Thrift::Types::STRUCT, :name => 'tbl', :class => ::Table},
      ENVIRONMENT_CONTEXT => {:type => ::Thrift::Types::STRUCT, :name => 'environment_context', :class => ::EnvironmentContext}
    }

    def struct_fields; FIELDS; end

    def validate
    end

    ::Thrift::Struct.generate_accessors self
  end

  class Create_table_with_environment_context_result
    include ::Thrift::Struct, ::Thrift::Struct_Union
    O1 = 1
    O2 = 2
    O3 = 3
    O4 = 4

    FIELDS = {
      O1 => {:type => ::Thrift::Types::STRUCT, :name => 'o1', :class => ::AlreadyExistsException},
      O2 => {:type => ::Thrift::Types::STRUCT, :name => 'o2', :class => ::InvalidObjectException},
      O3 => {:type => ::Thrift::Types::STRUCT, :name => 'o3', :class => ::MetaException},
      O4 => {:type => ::Thrift::Types::STRUCT, :name => 'o4', :class => ::NoSuchObjectException}
    }

    def struct_fields; FIELDS; end

    def validate
    end

    ::Thrift::Struct.generate_accessors self
  end

  class Create_table_with_constraints_args
    include ::Thrift::Struct, ::Thrift::Struct_Union
    TBL = 1
    PRIMARYKEYS = 2
    FOREIGNKEYS = 3
    UNIQUECONSTRAINTS = 4
    NOTNULLCONSTRAINTS = 5
    DEFAULTCONSTRAINTS = 6
    CHECKCONSTRAINTS = 7

    FIELDS = {
      TBL => {:type => ::Thrift::Types::STRUCT, :name => 'tbl', :class => ::Table},
      PRIMARYKEYS => {:type => ::Thrift::Types::LIST, :name => 'primaryKeys', :element => {:type => ::Thrift::Types::STRUCT, :class => ::SQLPrimaryKey}},
      FOREIGNKEYS => {:type => ::Thrift::Types::LIST, :name => 'foreignKeys', :element => {:type => ::Thrift::Types::STRUCT, :class => ::SQLForeignKey}},
      UNIQUECONSTRAINTS => {:type => ::Thrift::Types::LIST, :name => 'uniqueConstraints', :element => {:type => ::Thrift::Types::STRUCT, :class => ::SQLUniqueConstraint}},
      NOTNULLCONSTRAINTS => {:type => ::Thrift::Types::LIST, :name => 'notNullConstraints', :element => {:type => ::Thrift::Types::STRUCT, :class => ::SQLNotNullConstraint}},
      DEFAULTCONSTRAINTS => {:type => ::Thrift::Types::LIST, :name => 'defaultConstraints', :element => {:type => ::Thrift::Types::STRUCT, :class => ::SQLDefaultConstraint}},
      CHECKCONSTRAINTS => {:type => ::Thrift::Types::LIST, :name => 'checkConstraints', :element => {:type => ::Thrift::Types::STRUCT, :class => ::SQLCheckConstraint}}
    }

    def struct_fields; FIELDS; end

    def validate
    end

    ::Thrift::Struct.generate_accessors self
  end

  class Create_table_with_constraints_result
    include ::Thrift::Struct, ::Thrift::Struct_Union
    O1 = 1
    O2 = 2
    O3 = 3
    O4 = 4

    FIELDS = {
      O1 => {:type => ::Thrift::Types::STRUCT, :name => 'o1', :class => ::AlreadyExistsException},
      O2 => {:type => ::Thrift::Types::STRUCT, :name => 'o2', :class => ::InvalidObjectException},
      O3 => {:type => ::Thrift::Types::STRUCT, :name => 'o3', :class => ::MetaException},
      O4 => {:type => ::Thrift::Types::STRUCT, :name => 'o4', :class => ::NoSuchObjectException}
    }

    def struct_fields; FIELDS; end

    def validate
    end

    ::Thrift::Struct.generate_accessors self
  end

  class Create_table_req_args
    include ::Thrift::Struct, ::Thrift::Struct_Union
    REQUEST = 1

    FIELDS = {
      REQUEST => {:type => ::Thrift::Types::STRUCT, :name => 'request', :class => ::CreateTableRequest}
    }

    def struct_fields; FIELDS; end

    def validate
    end

    ::Thrift::Struct.generate_accessors self
  end

  class Create_table_req_result
    include ::Thrift::Struct, ::Thrift::Struct_Union
    O1 = 1
    O2 = 2
    O3 = 3
    O4 = 4

    FIELDS = {
      O1 => {:type => ::Thrift::Types::STRUCT, :name => 'o1', :class => ::AlreadyExistsException},
      O2 => {:type => ::Thrift::Types::STRUCT, :name => 'o2', :class => ::InvalidObjectException},
      O3 => {:type => ::Thrift::Types::STRUCT, :name => 'o3', :class => ::MetaException},
      O4 => {:type => ::Thrift::Types::STRUCT, :name => 'o4', :class => ::NoSuchObjectException}
    }

    def struct_fields; FIELDS; end

    def validate
    end

    ::Thrift::Struct.generate_accessors self
  end

  class Drop_constraint_args
    include ::Thrift::Struct, ::Thrift::Struct_Union
    REQ = 1

    FIELDS = {
      REQ => {:type => ::Thrift::Types::STRUCT, :name => 'req', :class => ::DropConstraintRequest}
    }

    def struct_fields; FIELDS; end

    def validate
    end

    ::Thrift::Struct.generate_accessors self
  end

  class Drop_constraint_result
    include ::Thrift::Struct, ::Thrift::Struct_Union
    O1 = 1
    O3 = 2

    FIELDS = {
      O1 => {:type => ::Thrift::Types::STRUCT, :name => 'o1', :class => ::NoSuchObjectException},
      O3 => {:type => ::Thrift::Types::STRUCT, :name => 'o3', :class => ::MetaException}
    }

    def struct_fields; FIELDS; end

    def validate
    end

    ::Thrift::Struct.generate_accessors self
  end

  class Add_primary_key_args
    include ::Thrift::Struct, ::Thrift::Struct_Union
    REQ = 1

    FIELDS = {
      REQ => {:type => ::Thrift::Types::STRUCT, :name => 'req', :class => ::AddPrimaryKeyRequest}
    }

    def struct_fields; FIELDS; end

    def validate
    end

    ::Thrift::Struct.generate_accessors self
  end

  class Add_primary_key_result
    include ::Thrift::Struct, ::Thrift::Struct_Union
    O1 = 1
    O2 = 2

    FIELDS = {
      O1 => {:type => ::Thrift::Types::STRUCT, :name => 'o1', :class => ::NoSuchObjectException},
      O2 => {:type => ::Thrift::Types::STRUCT, :name => 'o2', :class => ::MetaException}
    }

    def struct_fields; FIELDS; end

    def validate
    end

    ::Thrift::Struct.generate_accessors self
  end

  class Add_foreign_key_args
    include ::Thrift::Struct, ::Thrift::Struct_Union
    REQ = 1

    FIELDS = {
      REQ => {:type => ::Thrift::Types::STRUCT, :name => 'req', :class => ::AddForeignKeyRequest}
    }

    def struct_fields; FIELDS; end

    def validate
    end

    ::Thrift::Struct.generate_accessors self
  end

  class Add_foreign_key_result
    include ::Thrift::Struct, ::Thrift::Struct_Union
    O1 = 1
    O2 = 2

    FIELDS = {
      O1 => {:type => ::Thrift::Types::STRUCT, :name => 'o1', :class => ::NoSuchObjectException},
      O2 => {:type => ::Thrift::Types::STRUCT, :name => 'o2', :class => ::MetaException}
    }

    def struct_fields; FIELDS; end

    def validate
    end

    ::Thrift::Struct.generate_accessors self
  end

  class Add_unique_constraint_args
    include ::Thrift::Struct, ::Thrift::Struct_Union
    REQ = 1

    FIELDS = {
      REQ => {:type => ::Thrift::Types::STRUCT, :name => 'req', :class => ::AddUniqueConstraintRequest}
    }

    def struct_fields; FIELDS; end

    def validate
    end

    ::Thrift::Struct.generate_accessors self
  end

  class Add_unique_constraint_result
    include ::Thrift::Struct, ::Thrift::Struct_Union
    O1 = 1
    O2 = 2

    FIELDS = {
      O1 => {:type => ::Thrift::Types::STRUCT, :name => 'o1', :class => ::NoSuchObjectException},
      O2 => {:type => ::Thrift::Types::STRUCT, :name => 'o2', :class => ::MetaException}
    }

    def struct_fields; FIELDS; end

    def validate
    end

    ::Thrift::Struct.generate_accessors self
  end

  class Add_not_null_constraint_args
    include ::Thrift::Struct, ::Thrift::Struct_Union
    REQ = 1

    FIELDS = {
      REQ => {:type => ::Thrift::Types::STRUCT, :name => 'req', :class => ::AddNotNullConstraintRequest}
    }

    def struct_fields; FIELDS; end

    def validate
    end

    ::Thrift::Struct.generate_accessors self
  end

  class Add_not_null_constraint_result
    include ::Thrift::Struct, ::Thrift::Struct_Union
    O1 = 1
    O2 = 2

    FIELDS = {
      O1 => {:type => ::Thrift::Types::STRUCT, :name => 'o1', :class => ::NoSuchObjectException},
      O2 => {:type => ::Thrift::Types::STRUCT, :name => 'o2', :class => ::MetaException}
    }

    def struct_fields; FIELDS; end

    def validate
    end

    ::Thrift::Struct.generate_accessors self
  end

  class Add_default_constraint_args
    include ::Thrift::Struct, ::Thrift::Struct_Union
    REQ = 1

    FIELDS = {
      REQ => {:type => ::Thrift::Types::STRUCT, :name => 'req', :class => ::AddDefaultConstraintRequest}
    }

    def struct_fields; FIELDS; end

    def validate
    end

    ::Thrift::Struct.generate_accessors self
  end

  class Add_default_constraint_result
    include ::Thrift::Struct, ::Thrift::Struct_Union
    O1 = 1
    O2 = 2

    FIELDS = {
      O1 => {:type => ::Thrift::Types::STRUCT, :name => 'o1', :class => ::NoSuchObjectException},
      O2 => {:type => ::Thrift::Types::STRUCT, :name => 'o2', :class => ::MetaException}
    }

    def struct_fields; FIELDS; end

    def validate
    end

    ::Thrift::Struct.generate_accessors self
  end

  class Add_check_constraint_args
    include ::Thrift::Struct, ::Thrift::Struct_Union
    REQ = 1

    FIELDS = {
      REQ => {:type => ::Thrift::Types::STRUCT, :name => 'req', :class => ::AddCheckConstraintRequest}
    }

    def struct_fields; FIELDS; end

    def validate
    end

    ::Thrift::Struct.generate_accessors self
  end

  class Add_check_constraint_result
    include ::Thrift::Struct, ::Thrift::Struct_Union
    O1 = 1
    O2 = 2

    FIELDS = {
      O1 => {:type => ::Thrift::Types::STRUCT, :name => 'o1', :class => ::NoSuchObjectException},
      O2 => {:type => ::Thrift::Types::STRUCT, :name => 'o2', :class => ::MetaException}
    }

    def struct_fields; FIELDS; end

    def validate
    end

    ::Thrift::Struct.generate_accessors self
  end

  class Drop_table_args
    include ::Thrift::Struct, ::Thrift::Struct_Union
    DBNAME = 1
    NAME = 2
    DELETEDATA = 3

    FIELDS = {
      DBNAME => {:type => ::Thrift::Types::STRING, :name => 'dbname'},
      NAME => {:type => ::Thrift::Types::STRING, :name => 'name'},
      DELETEDATA => {:type => ::Thrift::Types::BOOL, :name => 'deleteData'}
    }

    def struct_fields; FIELDS; end

    def validate
    end

    ::Thrift::Struct.generate_accessors self
  end

  class Drop_table_result
    include ::Thrift::Struct, ::Thrift::Struct_Union
    O1 = 1
    O3 = 2

    FIELDS = {
      O1 => {:type => ::Thrift::Types::STRUCT, :name => 'o1', :class => ::NoSuchObjectException},
      O3 => {:type => ::Thrift::Types::STRUCT, :name => 'o3', :class => ::MetaException}
    }

    def struct_fields; FIELDS; end

    def validate
    end

    ::Thrift::Struct.generate_accessors self
  end

  class Drop_table_with_environment_context_args
    include ::Thrift::Struct, ::Thrift::Struct_Union
    DBNAME = 1
    NAME = 2
    DELETEDATA = 3
    ENVIRONMENT_CONTEXT = 4

    FIELDS = {
      DBNAME => {:type => ::Thrift::Types::STRING, :name => 'dbname'},
      NAME => {:type => ::Thrift::Types::STRING, :name => 'name'},
      DELETEDATA => {:type => ::Thrift::Types::BOOL, :name => 'deleteData'},
      ENVIRONMENT_CONTEXT => {:type => ::Thrift::Types::STRUCT, :name => 'environment_context', :class => ::EnvironmentContext}
    }

    def struct_fields; FIELDS; end

    def validate
    end

    ::Thrift::Struct.generate_accessors self
  end

  class Drop_table_with_environment_context_result
    include ::Thrift::Struct, ::Thrift::Struct_Union
    O1 = 1
    O3 = 2

    FIELDS = {
      O1 => {:type => ::Thrift::Types::STRUCT, :name => 'o1', :class => ::NoSuchObjectException},
      O3 => {:type => ::Thrift::Types::STRUCT, :name => 'o3', :class => ::MetaException}
    }

    def struct_fields; FIELDS; end

    def validate
    end

    ::Thrift::Struct.generate_accessors self
  end

  class Truncate_table_args
    include ::Thrift::Struct, ::Thrift::Struct_Union
    DBNAME = 1
    TABLENAME = 2
    PARTNAMES = 3

    FIELDS = {
      DBNAME => {:type => ::Thrift::Types::STRING, :name => 'dbName'},
      TABLENAME => {:type => ::Thrift::Types::STRING, :name => 'tableName'},
      PARTNAMES => {:type => ::Thrift::Types::LIST, :name => 'partNames', :element => {:type => ::Thrift::Types::STRING}}
    }

    def struct_fields; FIELDS; end

    def validate
    end

    ::Thrift::Struct.generate_accessors self
  end

  class Truncate_table_result
    include ::Thrift::Struct, ::Thrift::Struct_Union
    O1 = 1

    FIELDS = {
      O1 => {:type => ::Thrift::Types::STRUCT, :name => 'o1', :class => ::MetaException}
    }

    def struct_fields; FIELDS; end

    def validate
    end

    ::Thrift::Struct.generate_accessors self
  end

  class Truncate_table_req_args
    include ::Thrift::Struct, ::Thrift::Struct_Union
    REQ = 1

    FIELDS = {
      REQ => {:type => ::Thrift::Types::STRUCT, :name => 'req', :class => ::TruncateTableRequest}
    }

    def struct_fields; FIELDS; end

    def validate
    end

    ::Thrift::Struct.generate_accessors self
  end

  class Truncate_table_req_result
    include ::Thrift::Struct, ::Thrift::Struct_Union
    SUCCESS = 0
    O1 = 1

    FIELDS = {
      SUCCESS => {:type => ::Thrift::Types::STRUCT, :name => 'success', :class => ::TruncateTableResponse},
      O1 => {:type => ::Thrift::Types::STRUCT, :name => 'o1', :class => ::MetaException}
    }

    def struct_fields; FIELDS; end

    def validate
    end

    ::Thrift::Struct.generate_accessors self
  end

  class Get_tables_args
    include ::Thrift::Struct, ::Thrift::Struct_Union
    DB_NAME = 1
    PATTERN = 2

    FIELDS = {
      DB_NAME => {:type => ::Thrift::Types::STRING, :name => 'db_name'},
      PATTERN => {:type => ::Thrift::Types::STRING, :name => 'pattern'}
    }

    def struct_fields; FIELDS; end

    def validate
    end

    ::Thrift::Struct.generate_accessors self
  end

  class Get_tables_result
    include ::Thrift::Struct, ::Thrift::Struct_Union
    SUCCESS = 0
    O1 = 1

    FIELDS = {
      SUCCESS => {:type => ::Thrift::Types::LIST, :name => 'success', :element => {:type => ::Thrift::Types::STRING}},
      O1 => {:type => ::Thrift::Types::STRUCT, :name => 'o1', :class => ::MetaException}
    }

    def struct_fields; FIELDS; end

    def validate
    end

    ::Thrift::Struct.generate_accessors self
  end

  class Get_tables_by_type_args
    include ::Thrift::Struct, ::Thrift::Struct_Union
    DB_NAME = 1
    PATTERN = 2
    TABLETYPE = 3

    FIELDS = {
      DB_NAME => {:type => ::Thrift::Types::STRING, :name => 'db_name'},
      PATTERN => {:type => ::Thrift::Types::STRING, :name => 'pattern'},
      TABLETYPE => {:type => ::Thrift::Types::STRING, :name => 'tableType'}
    }

    def struct_fields; FIELDS; end

    def validate
    end

    ::Thrift::Struct.generate_accessors self
  end

  class Get_tables_by_type_result
    include ::Thrift::Struct, ::Thrift::Struct_Union
    SUCCESS = 0
    O1 = 1

    FIELDS = {
      SUCCESS => {:type => ::Thrift::Types::LIST, :name => 'success', :element => {:type => ::Thrift::Types::STRING}},
      O1 => {:type => ::Thrift::Types::STRUCT, :name => 'o1', :class => ::MetaException}
    }

    def struct_fields; FIELDS; end

    def validate
    end

    ::Thrift::Struct.generate_accessors self
  end

  class Get_all_materialized_view_objects_for_rewriting_args
    include ::Thrift::Struct, ::Thrift::Struct_Union

    FIELDS = {

    }

    def struct_fields; FIELDS; end

    def validate
    end

    ::Thrift::Struct.generate_accessors self
  end

  class Get_all_materialized_view_objects_for_rewriting_result
    include ::Thrift::Struct, ::Thrift::Struct_Union
    SUCCESS = 0
    O1 = 1

    FIELDS = {
      SUCCESS => {:type => ::Thrift::Types::LIST, :name => 'success', :element => {:type => ::Thrift::Types::STRUCT, :class => ::Table}},
      O1 => {:type => ::Thrift::Types::STRUCT, :name => 'o1', :class => ::MetaException}
    }

    def struct_fields; FIELDS; end

    def validate
    end

    ::Thrift::Struct.generate_accessors self
  end

  class Get_materialized_views_for_rewriting_args
    include ::Thrift::Struct, ::Thrift::Struct_Union
    DB_NAME = 1

    FIELDS = {
      DB_NAME => {:type => ::Thrift::Types::STRING, :name => 'db_name'}
    }

    def struct_fields; FIELDS; end

    def validate
    end

    ::Thrift::Struct.generate_accessors self
  end

  class Get_materialized_views_for_rewriting_result
    include ::Thrift::Struct, ::Thrift::Struct_Union
    SUCCESS = 0
    O1 = 1

    FIELDS = {
      SUCCESS => {:type => ::Thrift::Types::LIST, :name => 'success', :element => {:type => ::Thrift::Types::STRING}},
      O1 => {:type => ::Thrift::Types::STRUCT, :name => 'o1', :class => ::MetaException}
    }

    def struct_fields; FIELDS; end

    def validate
    end

    ::Thrift::Struct.generate_accessors self
  end

  class Get_table_meta_args
    include ::Thrift::Struct, ::Thrift::Struct_Union
    DB_PATTERNS = 1
    TBL_PATTERNS = 2
    TBL_TYPES = 3

    FIELDS = {
      DB_PATTERNS => {:type => ::Thrift::Types::STRING, :name => 'db_patterns'},
      TBL_PATTERNS => {:type => ::Thrift::Types::STRING, :name => 'tbl_patterns'},
      TBL_TYPES => {:type => ::Thrift::Types::LIST, :name => 'tbl_types', :element => {:type => ::Thrift::Types::STRING}}
    }

    def struct_fields; FIELDS; end

    def validate
    end

    ::Thrift::Struct.generate_accessors self
  end

  class Get_table_meta_result
    include ::Thrift::Struct, ::Thrift::Struct_Union
    SUCCESS = 0
    O1 = 1

    FIELDS = {
      SUCCESS => {:type => ::Thrift::Types::LIST, :name => 'success', :element => {:type => ::Thrift::Types::STRUCT, :class => ::TableMeta}},
      O1 => {:type => ::Thrift::Types::STRUCT, :name => 'o1', :class => ::MetaException}
    }

    def struct_fields; FIELDS; end

    def validate
    end

    ::Thrift::Struct.generate_accessors self
  end

  class Get_all_tables_args
    include ::Thrift::Struct, ::Thrift::Struct_Union
    DB_NAME = 1

    FIELDS = {
      DB_NAME => {:type => ::Thrift::Types::STRING, :name => 'db_name'}
    }

    def struct_fields; FIELDS; end

    def validate
    end

    ::Thrift::Struct.generate_accessors self
  end

  class Get_all_tables_result
    include ::Thrift::Struct, ::Thrift::Struct_Union
    SUCCESS = 0
    O1 = 1

    FIELDS = {
      SUCCESS => {:type => ::Thrift::Types::LIST, :name => 'success', :element => {:type => ::Thrift::Types::STRING}},
      O1 => {:type => ::Thrift::Types::STRUCT, :name => 'o1', :class => ::MetaException}
    }

    def struct_fields; FIELDS; end

    def validate
    end

    ::Thrift::Struct.generate_accessors self
  end

  class Get_table_args
    include ::Thrift::Struct, ::Thrift::Struct_Union
    DBNAME = 1
    TBL_NAME = 2

    FIELDS = {
      DBNAME => {:type => ::Thrift::Types::STRING, :name => 'dbname'},
      TBL_NAME => {:type => ::Thrift::Types::STRING, :name => 'tbl_name'}
    }

    def struct_fields; FIELDS; end

    def validate
    end

    ::Thrift::Struct.generate_accessors self
  end

  class Get_table_result
    include ::Thrift::Struct, ::Thrift::Struct_Union
    SUCCESS = 0
    O1 = 1
    O2 = 2

    FIELDS = {
      SUCCESS => {:type => ::Thrift::Types::STRUCT, :name => 'success', :class => ::Table},
      O1 => {:type => ::Thrift::Types::STRUCT, :name => 'o1', :class => ::MetaException},
      O2 => {:type => ::Thrift::Types::STRUCT, :name => 'o2', :class => ::NoSuchObjectException}
    }

    def struct_fields; FIELDS; end

    def validate
    end

    ::Thrift::Struct.generate_accessors self
  end

  class Get_table_objects_by_name_args
    include ::Thrift::Struct, ::Thrift::Struct_Union
    DBNAME = 1
    TBL_NAMES = 2

    FIELDS = {
      DBNAME => {:type => ::Thrift::Types::STRING, :name => 'dbname'},
      TBL_NAMES => {:type => ::Thrift::Types::LIST, :name => 'tbl_names', :element => {:type => ::Thrift::Types::STRING}}
    }

    def struct_fields; FIELDS; end

    def validate
    end

    ::Thrift::Struct.generate_accessors self
  end

  class Get_table_objects_by_name_result
    include ::Thrift::Struct, ::Thrift::Struct_Union
    SUCCESS = 0

    FIELDS = {
      SUCCESS => {:type => ::Thrift::Types::LIST, :name => 'success', :element => {:type => ::Thrift::Types::STRUCT, :class => ::Table}}
    }

    def struct_fields; FIELDS; end

    def validate
    end

    ::Thrift::Struct.generate_accessors self
  end

  class Get_tables_ext_args
    include ::Thrift::Struct, ::Thrift::Struct_Union
    REQ = 1

    FIELDS = {
      REQ => {:type => ::Thrift::Types::STRUCT, :name => 'req', :class => ::GetTablesExtRequest}
    }

    def struct_fields; FIELDS; end

    def validate
    end

    ::Thrift::Struct.generate_accessors self
  end

  class Get_tables_ext_result
    include ::Thrift::Struct, ::Thrift::Struct_Union
    SUCCESS = 0
    O1 = 1

    FIELDS = {
      SUCCESS => {:type => ::Thrift::Types::LIST, :name => 'success', :element => {:type => ::Thrift::Types::STRUCT, :class => ::ExtendedTableInfo}},
      O1 => {:type => ::Thrift::Types::STRUCT, :name => 'o1', :class => ::MetaException}
    }

    def struct_fields; FIELDS; end

    def validate
    end

    ::Thrift::Struct.generate_accessors self
  end

  class Get_table_req_args
    include ::Thrift::Struct, ::Thrift::Struct_Union
    REQ = 1

    FIELDS = {
      REQ => {:type => ::Thrift::Types::STRUCT, :name => 'req', :class => ::GetTableRequest}
    }

    def struct_fields; FIELDS; end

    def validate
    end

    ::Thrift::Struct.generate_accessors self
  end

  class Get_table_req_result
    include ::Thrift::Struct, ::Thrift::Struct_Union
    SUCCESS = 0
    O1 = 1
    O2 = 2

    FIELDS = {
      SUCCESS => {:type => ::Thrift::Types::STRUCT, :name => 'success', :class => ::GetTableResult},
      O1 => {:type => ::Thrift::Types::STRUCT, :name => 'o1', :class => ::MetaException},
      O2 => {:type => ::Thrift::Types::STRUCT, :name => 'o2', :class => ::NoSuchObjectException}
    }

    def struct_fields; FIELDS; end

    def validate
    end

    ::Thrift::Struct.generate_accessors self
  end

  class Get_table_objects_by_name_req_args
    include ::Thrift::Struct, ::Thrift::Struct_Union
    REQ = 1

    FIELDS = {
      REQ => {:type => ::Thrift::Types::STRUCT, :name => 'req', :class => ::GetTablesRequest}
    }

    def struct_fields; FIELDS; end

    def validate
    end

    ::Thrift::Struct.generate_accessors self
  end

  class Get_table_objects_by_name_req_result
    include ::Thrift::Struct, ::Thrift::Struct_Union
    SUCCESS = 0
    O1 = 1
    O2 = 2
    O3 = 3

    FIELDS = {
      SUCCESS => {:type => ::Thrift::Types::STRUCT, :name => 'success', :class => ::GetTablesResult},
      O1 => {:type => ::Thrift::Types::STRUCT, :name => 'o1', :class => ::MetaException},
      O2 => {:type => ::Thrift::Types::STRUCT, :name => 'o2', :class => ::InvalidOperationException},
      O3 => {:type => ::Thrift::Types::STRUCT, :name => 'o3', :class => ::UnknownDBException}
    }

    def struct_fields; FIELDS; end

    def validate
    end

    ::Thrift::Struct.generate_accessors self
  end

  class Get_materialization_invalidation_info_args
    include ::Thrift::Struct, ::Thrift::Struct_Union
    CREATION_METADATA = 1
    VALIDTXNLIST = 2

    FIELDS = {
      CREATION_METADATA => {:type => ::Thrift::Types::STRUCT, :name => 'creation_metadata', :class => ::CreationMetadata},
      VALIDTXNLIST => {:type => ::Thrift::Types::STRING, :name => 'validTxnList'}
    }

    def struct_fields; FIELDS; end

    def validate
    end

    ::Thrift::Struct.generate_accessors self
  end

  class Get_materialization_invalidation_info_result
    include ::Thrift::Struct, ::Thrift::Struct_Union
    SUCCESS = 0
    O1 = 1
    O2 = 2
    O3 = 3

    FIELDS = {
      SUCCESS => {:type => ::Thrift::Types::STRUCT, :name => 'success', :class => ::Materialization},
      O1 => {:type => ::Thrift::Types::STRUCT, :name => 'o1', :class => ::MetaException},
      O2 => {:type => ::Thrift::Types::STRUCT, :name => 'o2', :class => ::InvalidOperationException},
      O3 => {:type => ::Thrift::Types::STRUCT, :name => 'o3', :class => ::UnknownDBException}
    }

    def struct_fields; FIELDS; end

    def validate
    end

    ::Thrift::Struct.generate_accessors self
  end

  class Update_creation_metadata_args
    include ::Thrift::Struct, ::Thrift::Struct_Union
    CATNAME = 1
    DBNAME = 2
    TBL_NAME = 3
    CREATION_METADATA = 4

    FIELDS = {
      CATNAME => {:type => ::Thrift::Types::STRING, :name => 'catName'},
      DBNAME => {:type => ::Thrift::Types::STRING, :name => 'dbname'},
      TBL_NAME => {:type => ::Thrift::Types::STRING, :name => 'tbl_name'},
      CREATION_METADATA => {:type => ::Thrift::Types::STRUCT, :name => 'creation_metadata', :class => ::CreationMetadata}
    }

    def struct_fields; FIELDS; end

    def validate
    end

    ::Thrift::Struct.generate_accessors self
  end

  class Update_creation_metadata_result
    include ::Thrift::Struct, ::Thrift::Struct_Union
    O1 = 1
    O2 = 2
    O3 = 3

    FIELDS = {
      O1 => {:type => ::Thrift::Types::STRUCT, :name => 'o1', :class => ::MetaException},
      O2 => {:type => ::Thrift::Types::STRUCT, :name => 'o2', :class => ::InvalidOperationException},
      O3 => {:type => ::Thrift::Types::STRUCT, :name => 'o3', :class => ::UnknownDBException}
    }

    def struct_fields; FIELDS; end

    def validate
    end

    ::Thrift::Struct.generate_accessors self
  end

  class Get_table_names_by_filter_args
    include ::Thrift::Struct, ::Thrift::Struct_Union
    DBNAME = 1
    FILTER = 2
    MAX_TABLES = 3

    FIELDS = {
      DBNAME => {:type => ::Thrift::Types::STRING, :name => 'dbname'},
      FILTER => {:type => ::Thrift::Types::STRING, :name => 'filter'},
      MAX_TABLES => {:type => ::Thrift::Types::I16, :name => 'max_tables', :default => -1}
    }

    def struct_fields; FIELDS; end

    def validate
    end

    ::Thrift::Struct.generate_accessors self
  end

  class Get_table_names_by_filter_result
    include ::Thrift::Struct, ::Thrift::Struct_Union
    SUCCESS = 0
    O1 = 1
    O2 = 2
    O3 = 3

    FIELDS = {
      SUCCESS => {:type => ::Thrift::Types::LIST, :name => 'success', :element => {:type => ::Thrift::Types::STRING}},
      O1 => {:type => ::Thrift::Types::STRUCT, :name => 'o1', :class => ::MetaException},
      O2 => {:type => ::Thrift::Types::STRUCT, :name => 'o2', :class => ::InvalidOperationException},
      O3 => {:type => ::Thrift::Types::STRUCT, :name => 'o3', :class => ::UnknownDBException}
    }

    def struct_fields; FIELDS; end

    def validate
    end

    ::Thrift::Struct.generate_accessors self
  end

  class Alter_table_args
    include ::Thrift::Struct, ::Thrift::Struct_Union
    DBNAME = 1
    TBL_NAME = 2
    NEW_TBL = 3

    FIELDS = {
      DBNAME => {:type => ::Thrift::Types::STRING, :name => 'dbname'},
      TBL_NAME => {:type => ::Thrift::Types::STRING, :name => 'tbl_name'},
      NEW_TBL => {:type => ::Thrift::Types::STRUCT, :name => 'new_tbl', :class => ::Table}
    }

    def struct_fields; FIELDS; end

    def validate
    end

    ::Thrift::Struct.generate_accessors self
  end

  class Alter_table_result
    include ::Thrift::Struct, ::Thrift::Struct_Union
    O1 = 1
    O2 = 2

    FIELDS = {
      O1 => {:type => ::Thrift::Types::STRUCT, :name => 'o1', :class => ::InvalidOperationException},
      O2 => {:type => ::Thrift::Types::STRUCT, :name => 'o2', :class => ::MetaException}
    }

    def struct_fields; FIELDS; end

    def validate
    end

    ::Thrift::Struct.generate_accessors self
  end

  class Alter_table_with_environment_context_args
    include ::Thrift::Struct, ::Thrift::Struct_Union
    DBNAME = 1
    TBL_NAME = 2
    NEW_TBL = 3
    ENVIRONMENT_CONTEXT = 4

    FIELDS = {
      DBNAME => {:type => ::Thrift::Types::STRING, :name => 'dbname'},
      TBL_NAME => {:type => ::Thrift::Types::STRING, :name => 'tbl_name'},
      NEW_TBL => {:type => ::Thrift::Types::STRUCT, :name => 'new_tbl', :class => ::Table},
      ENVIRONMENT_CONTEXT => {:type => ::Thrift::Types::STRUCT, :name => 'environment_context', :class => ::EnvironmentContext}
    }

    def struct_fields; FIELDS; end

    def validate
    end

    ::Thrift::Struct.generate_accessors self
  end

  class Alter_table_with_environment_context_result
    include ::Thrift::Struct, ::Thrift::Struct_Union
    O1 = 1
    O2 = 2

    FIELDS = {
      O1 => {:type => ::Thrift::Types::STRUCT, :name => 'o1', :class => ::InvalidOperationException},
      O2 => {:type => ::Thrift::Types::STRUCT, :name => 'o2', :class => ::MetaException}
    }

    def struct_fields; FIELDS; end

    def validate
    end

    ::Thrift::Struct.generate_accessors self
  end

  class Alter_table_with_cascade_args
    include ::Thrift::Struct, ::Thrift::Struct_Union
    DBNAME = 1
    TBL_NAME = 2
    NEW_TBL = 3
    CASCADE = 4

    FIELDS = {
      DBNAME => {:type => ::Thrift::Types::STRING, :name => 'dbname'},
      TBL_NAME => {:type => ::Thrift::Types::STRING, :name => 'tbl_name'},
      NEW_TBL => {:type => ::Thrift::Types::STRUCT, :name => 'new_tbl', :class => ::Table},
      CASCADE => {:type => ::Thrift::Types::BOOL, :name => 'cascade'}
    }

    def struct_fields; FIELDS; end

    def validate
    end

    ::Thrift::Struct.generate_accessors self
  end

  class Alter_table_with_cascade_result
    include ::Thrift::Struct, ::Thrift::Struct_Union
    O1 = 1
    O2 = 2

    FIELDS = {
      O1 => {:type => ::Thrift::Types::STRUCT, :name => 'o1', :class => ::InvalidOperationException},
      O2 => {:type => ::Thrift::Types::STRUCT, :name => 'o2', :class => ::MetaException}
    }

    def struct_fields; FIELDS; end

    def validate
    end

    ::Thrift::Struct.generate_accessors self
  end

  class Alter_table_req_args
    include ::Thrift::Struct, ::Thrift::Struct_Union
    REQ = 1

    FIELDS = {
      REQ => {:type => ::Thrift::Types::STRUCT, :name => 'req', :class => ::AlterTableRequest}
    }

    def struct_fields; FIELDS; end

    def validate
    end

    ::Thrift::Struct.generate_accessors self
  end

  class Alter_table_req_result
    include ::Thrift::Struct, ::Thrift::Struct_Union
    SUCCESS = 0
    O1 = 1
    O2 = 2

    FIELDS = {
      SUCCESS => {:type => ::Thrift::Types::STRUCT, :name => 'success', :class => ::AlterTableResponse},
      O1 => {:type => ::Thrift::Types::STRUCT, :name => 'o1', :class => ::InvalidOperationException},
      O2 => {:type => ::Thrift::Types::STRUCT, :name => 'o2', :class => ::MetaException}
    }

    def struct_fields; FIELDS; end

    def validate
    end

    ::Thrift::Struct.generate_accessors self
  end

  class Add_partition_args
    include ::Thrift::Struct, ::Thrift::Struct_Union
    NEW_PART = 1

    FIELDS = {
      NEW_PART => {:type => ::Thrift::Types::STRUCT, :name => 'new_part', :class => ::Partition}
    }

    def struct_fields; FIELDS; end

    def validate
    end

    ::Thrift::Struct.generate_accessors self
  end

  class Add_partition_result
    include ::Thrift::Struct, ::Thrift::Struct_Union
    SUCCESS = 0
    O1 = 1
    O2 = 2
    O3 = 3

    FIELDS = {
      SUCCESS => {:type => ::Thrift::Types::STRUCT, :name => 'success', :class => ::Partition},
      O1 => {:type => ::Thrift::Types::STRUCT, :name => 'o1', :class => ::InvalidObjectException},
      O2 => {:type => ::Thrift::Types::STRUCT, :name => 'o2', :class => ::AlreadyExistsException},
      O3 => {:type => ::Thrift::Types::STRUCT, :name => 'o3', :class => ::MetaException}
    }

    def struct_fields; FIELDS; end

    def validate
    end

    ::Thrift::Struct.generate_accessors self
  end

  class Add_partition_with_environment_context_args
    include ::Thrift::Struct, ::Thrift::Struct_Union
    NEW_PART = 1
    ENVIRONMENT_CONTEXT = 2

    FIELDS = {
      NEW_PART => {:type => ::Thrift::Types::STRUCT, :name => 'new_part', :class => ::Partition},
      ENVIRONMENT_CONTEXT => {:type => ::Thrift::Types::STRUCT, :name => 'environment_context', :class => ::EnvironmentContext}
    }

    def struct_fields; FIELDS; end

    def validate
    end

    ::Thrift::Struct.generate_accessors self
  end

  class Add_partition_with_environment_context_result
    include ::Thrift::Struct, ::Thrift::Struct_Union
    SUCCESS = 0
    O1 = 1
    O2 = 2
    O3 = 3

    FIELDS = {
      SUCCESS => {:type => ::Thrift::Types::STRUCT, :name => 'success', :class => ::Partition},
      O1 => {:type => ::Thrift::Types::STRUCT, :name => 'o1', :class => ::InvalidObjectException},
      O2 => {:type => ::Thrift::Types::STRUCT, :name => 'o2', :class => ::AlreadyExistsException},
      O3 => {:type => ::Thrift::Types::STRUCT, :name => 'o3', :class => ::MetaException}
    }

    def struct_fields; FIELDS; end

    def validate
    end

    ::Thrift::Struct.generate_accessors self
  end

  class Add_partitions_args
    include ::Thrift::Struct, ::Thrift::Struct_Union
    NEW_PARTS = 1

    FIELDS = {
      NEW_PARTS => {:type => ::Thrift::Types::LIST, :name => 'new_parts', :element => {:type => ::Thrift::Types::STRUCT, :class => ::Partition}}
    }

    def struct_fields; FIELDS; end

    def validate
    end

    ::Thrift::Struct.generate_accessors self
  end

  class Add_partitions_result
    include ::Thrift::Struct, ::Thrift::Struct_Union
    SUCCESS = 0
    O1 = 1
    O2 = 2
    O3 = 3

    FIELDS = {
      SUCCESS => {:type => ::Thrift::Types::I32, :name => 'success'},
      O1 => {:type => ::Thrift::Types::STRUCT, :name => 'o1', :class => ::InvalidObjectException},
      O2 => {:type => ::Thrift::Types::STRUCT, :name => 'o2', :class => ::AlreadyExistsException},
      O3 => {:type => ::Thrift::Types::STRUCT, :name => 'o3', :class => ::MetaException}
    }

    def struct_fields; FIELDS; end

    def validate
    end

    ::Thrift::Struct.generate_accessors self
  end

  class Add_partitions_pspec_args
    include ::Thrift::Struct, ::Thrift::Struct_Union
    NEW_PARTS = 1

    FIELDS = {
      NEW_PARTS => {:type => ::Thrift::Types::LIST, :name => 'new_parts', :element => {:type => ::Thrift::Types::STRUCT, :class => ::PartitionSpec}}
    }

    def struct_fields; FIELDS; end

    def validate
    end

    ::Thrift::Struct.generate_accessors self
  end

  class Add_partitions_pspec_result
    include ::Thrift::Struct, ::Thrift::Struct_Union
    SUCCESS = 0
    O1 = 1
    O2 = 2
    O3 = 3

    FIELDS = {
      SUCCESS => {:type => ::Thrift::Types::I32, :name => 'success'},
      O1 => {:type => ::Thrift::Types::STRUCT, :name => 'o1', :class => ::InvalidObjectException},
      O2 => {:type => ::Thrift::Types::STRUCT, :name => 'o2', :class => ::AlreadyExistsException},
      O3 => {:type => ::Thrift::Types::STRUCT, :name => 'o3', :class => ::MetaException}
    }

    def struct_fields; FIELDS; end

    def validate
    end

    ::Thrift::Struct.generate_accessors self
  end

  class Append_partition_args
    include ::Thrift::Struct, ::Thrift::Struct_Union
    DB_NAME = 1
    TBL_NAME = 2
    PART_VALS = 3

    FIELDS = {
      DB_NAME => {:type => ::Thrift::Types::STRING, :name => 'db_name'},
      TBL_NAME => {:type => ::Thrift::Types::STRING, :name => 'tbl_name'},
      PART_VALS => {:type => ::Thrift::Types::LIST, :name => 'part_vals', :element => {:type => ::Thrift::Types::STRING}}
    }

    def struct_fields; FIELDS; end

    def validate
    end

    ::Thrift::Struct.generate_accessors self
  end

  class Append_partition_result
    include ::Thrift::Struct, ::Thrift::Struct_Union
    SUCCESS = 0
    O1 = 1
    O2 = 2
    O3 = 3

    FIELDS = {
      SUCCESS => {:type => ::Thrift::Types::STRUCT, :name => 'success', :class => ::Partition},
      O1 => {:type => ::Thrift::Types::STRUCT, :name => 'o1', :class => ::InvalidObjectException},
      O2 => {:type => ::Thrift::Types::STRUCT, :name => 'o2', :class => ::AlreadyExistsException},
      O3 => {:type => ::Thrift::Types::STRUCT, :name => 'o3', :class => ::MetaException}
    }

    def struct_fields; FIELDS; end

    def validate
    end

    ::Thrift::Struct.generate_accessors self
  end

  class Add_partitions_req_args
    include ::Thrift::Struct, ::Thrift::Struct_Union
    REQUEST = 1

    FIELDS = {
      REQUEST => {:type => ::Thrift::Types::STRUCT, :name => 'request', :class => ::AddPartitionsRequest}
    }

    def struct_fields; FIELDS; end

    def validate
    end

    ::Thrift::Struct.generate_accessors self
  end

  class Add_partitions_req_result
    include ::Thrift::Struct, ::Thrift::Struct_Union
    SUCCESS = 0
    O1 = 1
    O2 = 2
    O3 = 3

    FIELDS = {
      SUCCESS => {:type => ::Thrift::Types::STRUCT, :name => 'success', :class => ::AddPartitionsResult},
      O1 => {:type => ::Thrift::Types::STRUCT, :name => 'o1', :class => ::InvalidObjectException},
      O2 => {:type => ::Thrift::Types::STRUCT, :name => 'o2', :class => ::AlreadyExistsException},
      O3 => {:type => ::Thrift::Types::STRUCT, :name => 'o3', :class => ::MetaException}
    }

    def struct_fields; FIELDS; end

    def validate
    end

    ::Thrift::Struct.generate_accessors self
  end

  class Append_partition_with_environment_context_args
    include ::Thrift::Struct, ::Thrift::Struct_Union
    DB_NAME = 1
    TBL_NAME = 2
    PART_VALS = 3
    ENVIRONMENT_CONTEXT = 4

    FIELDS = {
      DB_NAME => {:type => ::Thrift::Types::STRING, :name => 'db_name'},
      TBL_NAME => {:type => ::Thrift::Types::STRING, :name => 'tbl_name'},
      PART_VALS => {:type => ::Thrift::Types::LIST, :name => 'part_vals', :element => {:type => ::Thrift::Types::STRING}},
      ENVIRONMENT_CONTEXT => {:type => ::Thrift::Types::STRUCT, :name => 'environment_context', :class => ::EnvironmentContext}
    }

    def struct_fields; FIELDS; end

    def validate
    end

    ::Thrift::Struct.generate_accessors self
  end

  class Append_partition_with_environment_context_result
    include ::Thrift::Struct, ::Thrift::Struct_Union
    SUCCESS = 0
    O1 = 1
    O2 = 2
    O3 = 3

    FIELDS = {
      SUCCESS => {:type => ::Thrift::Types::STRUCT, :name => 'success', :class => ::Partition},
      O1 => {:type => ::Thrift::Types::STRUCT, :name => 'o1', :class => ::InvalidObjectException},
      O2 => {:type => ::Thrift::Types::STRUCT, :name => 'o2', :class => ::AlreadyExistsException},
      O3 => {:type => ::Thrift::Types::STRUCT, :name => 'o3', :class => ::MetaException}
    }

    def struct_fields; FIELDS; end

    def validate
    end

    ::Thrift::Struct.generate_accessors self
  end

  class Append_partition_by_name_args
    include ::Thrift::Struct, ::Thrift::Struct_Union
    DB_NAME = 1
    TBL_NAME = 2
    PART_NAME = 3

    FIELDS = {
      DB_NAME => {:type => ::Thrift::Types::STRING, :name => 'db_name'},
      TBL_NAME => {:type => ::Thrift::Types::STRING, :name => 'tbl_name'},
      PART_NAME => {:type => ::Thrift::Types::STRING, :name => 'part_name'}
    }

    def struct_fields; FIELDS; end

    def validate
    end

    ::Thrift::Struct.generate_accessors self
  end

  class Append_partition_by_name_result
    include ::Thrift::Struct, ::Thrift::Struct_Union
    SUCCESS = 0
    O1 = 1
    O2 = 2
    O3 = 3

    FIELDS = {
      SUCCESS => {:type => ::Thrift::Types::STRUCT, :name => 'success', :class => ::Partition},
      O1 => {:type => ::Thrift::Types::STRUCT, :name => 'o1', :class => ::InvalidObjectException},
      O2 => {:type => ::Thrift::Types::STRUCT, :name => 'o2', :class => ::AlreadyExistsException},
      O3 => {:type => ::Thrift::Types::STRUCT, :name => 'o3', :class => ::MetaException}
    }

    def struct_fields; FIELDS; end

    def validate
    end

    ::Thrift::Struct.generate_accessors self
  end

  class Append_partition_by_name_with_environment_context_args
    include ::Thrift::Struct, ::Thrift::Struct_Union
    DB_NAME = 1
    TBL_NAME = 2
    PART_NAME = 3
    ENVIRONMENT_CONTEXT = 4

    FIELDS = {
      DB_NAME => {:type => ::Thrift::Types::STRING, :name => 'db_name'},
      TBL_NAME => {:type => ::Thrift::Types::STRING, :name => 'tbl_name'},
      PART_NAME => {:type => ::Thrift::Types::STRING, :name => 'part_name'},
      ENVIRONMENT_CONTEXT => {:type => ::Thrift::Types::STRUCT, :name => 'environment_context', :class => ::EnvironmentContext}
    }

    def struct_fields; FIELDS; end

    def validate
    end

    ::Thrift::Struct.generate_accessors self
  end

  class Append_partition_by_name_with_environment_context_result
    include ::Thrift::Struct, ::Thrift::Struct_Union
    SUCCESS = 0
    O1 = 1
    O2 = 2
    O3 = 3

    FIELDS = {
      SUCCESS => {:type => ::Thrift::Types::STRUCT, :name => 'success', :class => ::Partition},
      O1 => {:type => ::Thrift::Types::STRUCT, :name => 'o1', :class => ::InvalidObjectException},
      O2 => {:type => ::Thrift::Types::STRUCT, :name => 'o2', :class => ::AlreadyExistsException},
      O3 => {:type => ::Thrift::Types::STRUCT, :name => 'o3', :class => ::MetaException}
    }

    def struct_fields; FIELDS; end

    def validate
    end

    ::Thrift::Struct.generate_accessors self
  end

  class Drop_partition_args
    include ::Thrift::Struct, ::Thrift::Struct_Union
    DB_NAME = 1
    TBL_NAME = 2
    PART_VALS = 3
    DELETEDATA = 4

    FIELDS = {
      DB_NAME => {:type => ::Thrift::Types::STRING, :name => 'db_name'},
      TBL_NAME => {:type => ::Thrift::Types::STRING, :name => 'tbl_name'},
      PART_VALS => {:type => ::Thrift::Types::LIST, :name => 'part_vals', :element => {:type => ::Thrift::Types::STRING}},
      DELETEDATA => {:type => ::Thrift::Types::BOOL, :name => 'deleteData'}
    }

    def struct_fields; FIELDS; end

    def validate
    end

    ::Thrift::Struct.generate_accessors self
  end

  class Drop_partition_result
    include ::Thrift::Struct, ::Thrift::Struct_Union
    SUCCESS = 0
    O1 = 1
    O2 = 2

    FIELDS = {
      SUCCESS => {:type => ::Thrift::Types::BOOL, :name => 'success'},
      O1 => {:type => ::Thrift::Types::STRUCT, :name => 'o1', :class => ::NoSuchObjectException},
      O2 => {:type => ::Thrift::Types::STRUCT, :name => 'o2', :class => ::MetaException}
    }

    def struct_fields; FIELDS; end

    def validate
    end

    ::Thrift::Struct.generate_accessors self
  end

  class Drop_partition_with_environment_context_args
    include ::Thrift::Struct, ::Thrift::Struct_Union
    DB_NAME = 1
    TBL_NAME = 2
    PART_VALS = 3
    DELETEDATA = 4
    ENVIRONMENT_CONTEXT = 5

    FIELDS = {
      DB_NAME => {:type => ::Thrift::Types::STRING, :name => 'db_name'},
      TBL_NAME => {:type => ::Thrift::Types::STRING, :name => 'tbl_name'},
      PART_VALS => {:type => ::Thrift::Types::LIST, :name => 'part_vals', :element => {:type => ::Thrift::Types::STRING}},
      DELETEDATA => {:type => ::Thrift::Types::BOOL, :name => 'deleteData'},
      ENVIRONMENT_CONTEXT => {:type => ::Thrift::Types::STRUCT, :name => 'environment_context', :class => ::EnvironmentContext}
    }

    def struct_fields; FIELDS; end

    def validate
    end

    ::Thrift::Struct.generate_accessors self
  end

  class Drop_partition_with_environment_context_result
    include ::Thrift::Struct, ::Thrift::Struct_Union
    SUCCESS = 0
    O1 = 1
    O2 = 2

    FIELDS = {
      SUCCESS => {:type => ::Thrift::Types::BOOL, :name => 'success'},
      O1 => {:type => ::Thrift::Types::STRUCT, :name => 'o1', :class => ::NoSuchObjectException},
      O2 => {:type => ::Thrift::Types::STRUCT, :name => 'o2', :class => ::MetaException}
    }

    def struct_fields; FIELDS; end

    def validate
    end

    ::Thrift::Struct.generate_accessors self
  end

  class Drop_partition_by_name_args
    include ::Thrift::Struct, ::Thrift::Struct_Union
    DB_NAME = 1
    TBL_NAME = 2
    PART_NAME = 3
    DELETEDATA = 4

    FIELDS = {
      DB_NAME => {:type => ::Thrift::Types::STRING, :name => 'db_name'},
      TBL_NAME => {:type => ::Thrift::Types::STRING, :name => 'tbl_name'},
      PART_NAME => {:type => ::Thrift::Types::STRING, :name => 'part_name'},
      DELETEDATA => {:type => ::Thrift::Types::BOOL, :name => 'deleteData'}
    }

    def struct_fields; FIELDS; end

    def validate
    end

    ::Thrift::Struct.generate_accessors self
  end

  class Drop_partition_by_name_result
    include ::Thrift::Struct, ::Thrift::Struct_Union
    SUCCESS = 0
    O1 = 1
    O2 = 2

    FIELDS = {
      SUCCESS => {:type => ::Thrift::Types::BOOL, :name => 'success'},
      O1 => {:type => ::Thrift::Types::STRUCT, :name => 'o1', :class => ::NoSuchObjectException},
      O2 => {:type => ::Thrift::Types::STRUCT, :name => 'o2', :class => ::MetaException}
    }

    def struct_fields; FIELDS; end

    def validate
    end

    ::Thrift::Struct.generate_accessors self
  end

  class Drop_partition_by_name_with_environment_context_args
    include ::Thrift::Struct, ::Thrift::Struct_Union
    DB_NAME = 1
    TBL_NAME = 2
    PART_NAME = 3
    DELETEDATA = 4
    ENVIRONMENT_CONTEXT = 5

    FIELDS = {
      DB_NAME => {:type => ::Thrift::Types::STRING, :name => 'db_name'},
      TBL_NAME => {:type => ::Thrift::Types::STRING, :name => 'tbl_name'},
      PART_NAME => {:type => ::Thrift::Types::STRING, :name => 'part_name'},
      DELETEDATA => {:type => ::Thrift::Types::BOOL, :name => 'deleteData'},
      ENVIRONMENT_CONTEXT => {:type => ::Thrift::Types::STRUCT, :name => 'environment_context', :class => ::EnvironmentContext}
    }

    def struct_fields; FIELDS; end

    def validate
    end

    ::Thrift::Struct.generate_accessors self
  end

  class Drop_partition_by_name_with_environment_context_result
    include ::Thrift::Struct, ::Thrift::Struct_Union
    SUCCESS = 0
    O1 = 1
    O2 = 2

    FIELDS = {
      SUCCESS => {:type => ::Thrift::Types::BOOL, :name => 'success'},
      O1 => {:type => ::Thrift::Types::STRUCT, :name => 'o1', :class => ::NoSuchObjectException},
      O2 => {:type => ::Thrift::Types::STRUCT, :name => 'o2', :class => ::MetaException}
    }

    def struct_fields; FIELDS; end

    def validate
    end

    ::Thrift::Struct.generate_accessors self
  end

  class Drop_partitions_req_args
    include ::Thrift::Struct, ::Thrift::Struct_Union
    REQ = 1

    FIELDS = {
      REQ => {:type => ::Thrift::Types::STRUCT, :name => 'req', :class => ::DropPartitionsRequest}
    }

    def struct_fields; FIELDS; end

    def validate
    end

    ::Thrift::Struct.generate_accessors self
  end

  class Drop_partitions_req_result
    include ::Thrift::Struct, ::Thrift::Struct_Union
    SUCCESS = 0
    O1 = 1
    O2 = 2

    FIELDS = {
      SUCCESS => {:type => ::Thrift::Types::STRUCT, :name => 'success', :class => ::DropPartitionsResult},
      O1 => {:type => ::Thrift::Types::STRUCT, :name => 'o1', :class => ::NoSuchObjectException},
      O2 => {:type => ::Thrift::Types::STRUCT, :name => 'o2', :class => ::MetaException}
    }

    def struct_fields; FIELDS; end

    def validate
    end

    ::Thrift::Struct.generate_accessors self
  end

  class Get_partition_args
    include ::Thrift::Struct, ::Thrift::Struct_Union
    DB_NAME = 1
    TBL_NAME = 2
    PART_VALS = 3

    FIELDS = {
      DB_NAME => {:type => ::Thrift::Types::STRING, :name => 'db_name'},
      TBL_NAME => {:type => ::Thrift::Types::STRING, :name => 'tbl_name'},
      PART_VALS => {:type => ::Thrift::Types::LIST, :name => 'part_vals', :element => {:type => ::Thrift::Types::STRING}}
    }

    def struct_fields; FIELDS; end

    def validate
    end

    ::Thrift::Struct.generate_accessors self
  end

  class Get_partition_result
    include ::Thrift::Struct, ::Thrift::Struct_Union
    SUCCESS = 0
    O1 = 1
    O2 = 2

    FIELDS = {
      SUCCESS => {:type => ::Thrift::Types::STRUCT, :name => 'success', :class => ::Partition},
      O1 => {:type => ::Thrift::Types::STRUCT, :name => 'o1', :class => ::MetaException},
      O2 => {:type => ::Thrift::Types::STRUCT, :name => 'o2', :class => ::NoSuchObjectException}
    }

    def struct_fields; FIELDS; end

    def validate
    end

    ::Thrift::Struct.generate_accessors self
  end

  class Get_partition_req_args
    include ::Thrift::Struct, ::Thrift::Struct_Union
    REQ = 1

    FIELDS = {
      REQ => {:type => ::Thrift::Types::STRUCT, :name => 'req', :class => ::GetPartitionRequest}
    }

    def struct_fields; FIELDS; end

    def validate
    end

    ::Thrift::Struct.generate_accessors self
  end

  class Get_partition_req_result
    include ::Thrift::Struct, ::Thrift::Struct_Union
    SUCCESS = 0
    O1 = 1
    O2 = 2

    FIELDS = {
      SUCCESS => {:type => ::Thrift::Types::STRUCT, :name => 'success', :class => ::GetPartitionResponse},
      O1 => {:type => ::Thrift::Types::STRUCT, :name => 'o1', :class => ::MetaException},
      O2 => {:type => ::Thrift::Types::STRUCT, :name => 'o2', :class => ::NoSuchObjectException}
    }

    def struct_fields; FIELDS; end

    def validate
    end

    ::Thrift::Struct.generate_accessors self
  end

  class Exchange_partition_args
    include ::Thrift::Struct, ::Thrift::Struct_Union
    PARTITIONSPECS = 1
    SOURCE_DB = 2
    SOURCE_TABLE_NAME = 3
    DEST_DB = 4
    DEST_TABLE_NAME = 5

    FIELDS = {
      PARTITIONSPECS => {:type => ::Thrift::Types::MAP, :name => 'partitionSpecs', :key => {:type => ::Thrift::Types::STRING}, :value => {:type => ::Thrift::Types::STRING}},
      SOURCE_DB => {:type => ::Thrift::Types::STRING, :name => 'source_db'},
      SOURCE_TABLE_NAME => {:type => ::Thrift::Types::STRING, :name => 'source_table_name'},
      DEST_DB => {:type => ::Thrift::Types::STRING, :name => 'dest_db'},
      DEST_TABLE_NAME => {:type => ::Thrift::Types::STRING, :name => 'dest_table_name'}
    }

    def struct_fields; FIELDS; end

    def validate
    end

    ::Thrift::Struct.generate_accessors self
  end

  class Exchange_partition_result
    include ::Thrift::Struct, ::Thrift::Struct_Union
    SUCCESS = 0
    O1 = 1
    O2 = 2
    O3 = 3
    O4 = 4

    FIELDS = {
      SUCCESS => {:type => ::Thrift::Types::STRUCT, :name => 'success', :class => ::Partition},
      O1 => {:type => ::Thrift::Types::STRUCT, :name => 'o1', :class => ::MetaException},
      O2 => {:type => ::Thrift::Types::STRUCT, :name => 'o2', :class => ::NoSuchObjectException},
      O3 => {:type => ::Thrift::Types::STRUCT, :name => 'o3', :class => ::InvalidObjectException},
      O4 => {:type => ::Thrift::Types::STRUCT, :name => 'o4', :class => ::InvalidInputException}
    }

    def struct_fields; FIELDS; end

    def validate
    end

    ::Thrift::Struct.generate_accessors self
  end

  class Exchange_partitions_args
    include ::Thrift::Struct, ::Thrift::Struct_Union
    PARTITIONSPECS = 1
    SOURCE_DB = 2
    SOURCE_TABLE_NAME = 3
    DEST_DB = 4
    DEST_TABLE_NAME = 5

    FIELDS = {
      PARTITIONSPECS => {:type => ::Thrift::Types::MAP, :name => 'partitionSpecs', :key => {:type => ::Thrift::Types::STRING}, :value => {:type => ::Thrift::Types::STRING}},
      SOURCE_DB => {:type => ::Thrift::Types::STRING, :name => 'source_db'},
      SOURCE_TABLE_NAME => {:type => ::Thrift::Types::STRING, :name => 'source_table_name'},
      DEST_DB => {:type => ::Thrift::Types::STRING, :name => 'dest_db'},
      DEST_TABLE_NAME => {:type => ::Thrift::Types::STRING, :name => 'dest_table_name'}
    }

    def struct_fields; FIELDS; end

    def validate
    end

    ::Thrift::Struct.generate_accessors self
  end

  class Exchange_partitions_result
    include ::Thrift::Struct, ::Thrift::Struct_Union
    SUCCESS = 0
    O1 = 1
    O2 = 2
    O3 = 3
    O4 = 4

    FIELDS = {
      SUCCESS => {:type => ::Thrift::Types::LIST, :name => 'success', :element => {:type => ::Thrift::Types::STRUCT, :class => ::Partition}},
      O1 => {:type => ::Thrift::Types::STRUCT, :name => 'o1', :class => ::MetaException},
      O2 => {:type => ::Thrift::Types::STRUCT, :name => 'o2', :class => ::NoSuchObjectException},
      O3 => {:type => ::Thrift::Types::STRUCT, :name => 'o3', :class => ::InvalidObjectException},
      O4 => {:type => ::Thrift::Types::STRUCT, :name => 'o4', :class => ::InvalidInputException}
    }

    def struct_fields; FIELDS; end

    def validate
    end

    ::Thrift::Struct.generate_accessors self
  end

  class Get_partition_with_auth_args
    include ::Thrift::Struct, ::Thrift::Struct_Union
    DB_NAME = 1
    TBL_NAME = 2
    PART_VALS = 3
    USER_NAME = 4
    GROUP_NAMES = 5

    FIELDS = {
      DB_NAME => {:type => ::Thrift::Types::STRING, :name => 'db_name'},
      TBL_NAME => {:type => ::Thrift::Types::STRING, :name => 'tbl_name'},
      PART_VALS => {:type => ::Thrift::Types::LIST, :name => 'part_vals', :element => {:type => ::Thrift::Types::STRING}},
      USER_NAME => {:type => ::Thrift::Types::STRING, :name => 'user_name'},
      GROUP_NAMES => {:type => ::Thrift::Types::LIST, :name => 'group_names', :element => {:type => ::Thrift::Types::STRING}}
    }

    def struct_fields; FIELDS; end

    def validate
    end

    ::Thrift::Struct.generate_accessors self
  end

  class Get_partition_with_auth_result
    include ::Thrift::Struct, ::Thrift::Struct_Union
    SUCCESS = 0
    O1 = 1
    O2 = 2

    FIELDS = {
      SUCCESS => {:type => ::Thrift::Types::STRUCT, :name => 'success', :class => ::Partition},
      O1 => {:type => ::Thrift::Types::STRUCT, :name => 'o1', :class => ::MetaException},
      O2 => {:type => ::Thrift::Types::STRUCT, :name => 'o2', :class => ::NoSuchObjectException}
    }

    def struct_fields; FIELDS; end

    def validate
    end

    ::Thrift::Struct.generate_accessors self
  end

  class Get_partition_by_name_args
    include ::Thrift::Struct, ::Thrift::Struct_Union
    DB_NAME = 1
    TBL_NAME = 2
    PART_NAME = 3

    FIELDS = {
      DB_NAME => {:type => ::Thrift::Types::STRING, :name => 'db_name'},
      TBL_NAME => {:type => ::Thrift::Types::STRING, :name => 'tbl_name'},
      PART_NAME => {:type => ::Thrift::Types::STRING, :name => 'part_name'}
    }

    def struct_fields; FIELDS; end

    def validate
    end

    ::Thrift::Struct.generate_accessors self
  end

  class Get_partition_by_name_result
    include ::Thrift::Struct, ::Thrift::Struct_Union
    SUCCESS = 0
    O1 = 1
    O2 = 2

    FIELDS = {
      SUCCESS => {:type => ::Thrift::Types::STRUCT, :name => 'success', :class => ::Partition},
      O1 => {:type => ::Thrift::Types::STRUCT, :name => 'o1', :class => ::MetaException},
      O2 => {:type => ::Thrift::Types::STRUCT, :name => 'o2', :class => ::NoSuchObjectException}
    }

    def struct_fields; FIELDS; end

    def validate
    end

    ::Thrift::Struct.generate_accessors self
  end

  class Get_partitions_args
    include ::Thrift::Struct, ::Thrift::Struct_Union
    DB_NAME = 1
    TBL_NAME = 2
    MAX_PARTS = 3

    FIELDS = {
      DB_NAME => {:type => ::Thrift::Types::STRING, :name => 'db_name'},
      TBL_NAME => {:type => ::Thrift::Types::STRING, :name => 'tbl_name'},
      MAX_PARTS => {:type => ::Thrift::Types::I16, :name => 'max_parts', :default => -1}
    }

    def struct_fields; FIELDS; end

    def validate
    end

    ::Thrift::Struct.generate_accessors self
  end

  class Get_partitions_result
    include ::Thrift::Struct, ::Thrift::Struct_Union
    SUCCESS = 0
    O1 = 1
    O2 = 2

    FIELDS = {
      SUCCESS => {:type => ::Thrift::Types::LIST, :name => 'success', :element => {:type => ::Thrift::Types::STRUCT, :class => ::Partition}},
      O1 => {:type => ::Thrift::Types::STRUCT, :name => 'o1', :class => ::NoSuchObjectException},
      O2 => {:type => ::Thrift::Types::STRUCT, :name => 'o2', :class => ::MetaException}
    }

    def struct_fields; FIELDS; end

    def validate
    end

    ::Thrift::Struct.generate_accessors self
  end

  class Get_partitions_req_args
    include ::Thrift::Struct, ::Thrift::Struct_Union
    REQ = 1

    FIELDS = {
      REQ => {:type => ::Thrift::Types::STRUCT, :name => 'req', :class => ::PartitionsRequest}
    }

    def struct_fields; FIELDS; end

    def validate
    end

    ::Thrift::Struct.generate_accessors self
  end

  class Get_partitions_req_result
    include ::Thrift::Struct, ::Thrift::Struct_Union
    SUCCESS = 0
    O1 = 1
    O2 = 2

    FIELDS = {
      SUCCESS => {:type => ::Thrift::Types::STRUCT, :name => 'success', :class => ::PartitionsResponse},
      O1 => {:type => ::Thrift::Types::STRUCT, :name => 'o1', :class => ::NoSuchObjectException},
      O2 => {:type => ::Thrift::Types::STRUCT, :name => 'o2', :class => ::MetaException}
    }

    def struct_fields; FIELDS; end

    def validate
    end

    ::Thrift::Struct.generate_accessors self
  end

  class Get_partitions_with_auth_args
    include ::Thrift::Struct, ::Thrift::Struct_Union
    DB_NAME = 1
    TBL_NAME = 2
    MAX_PARTS = 3
    USER_NAME = 4
    GROUP_NAMES = 5

    FIELDS = {
      DB_NAME => {:type => ::Thrift::Types::STRING, :name => 'db_name'},
      TBL_NAME => {:type => ::Thrift::Types::STRING, :name => 'tbl_name'},
      MAX_PARTS => {:type => ::Thrift::Types::I16, :name => 'max_parts', :default => -1},
      USER_NAME => {:type => ::Thrift::Types::STRING, :name => 'user_name'},
      GROUP_NAMES => {:type => ::Thrift::Types::LIST, :name => 'group_names', :element => {:type => ::Thrift::Types::STRING}}
    }

    def struct_fields; FIELDS; end

    def validate
    end

    ::Thrift::Struct.generate_accessors self
  end

  class Get_partitions_with_auth_result
    include ::Thrift::Struct, ::Thrift::Struct_Union
    SUCCESS = 0
    O1 = 1
    O2 = 2

    FIELDS = {
      SUCCESS => {:type => ::Thrift::Types::LIST, :name => 'success', :element => {:type => ::Thrift::Types::STRUCT, :class => ::Partition}},
      O1 => {:type => ::Thrift::Types::STRUCT, :name => 'o1', :class => ::NoSuchObjectException},
      O2 => {:type => ::Thrift::Types::STRUCT, :name => 'o2', :class => ::MetaException}
    }

    def struct_fields; FIELDS; end

    def validate
    end

    ::Thrift::Struct.generate_accessors self
  end

  class Get_partitions_pspec_args
    include ::Thrift::Struct, ::Thrift::Struct_Union
    DB_NAME = 1
    TBL_NAME = 2
    MAX_PARTS = 3

    FIELDS = {
      DB_NAME => {:type => ::Thrift::Types::STRING, :name => 'db_name'},
      TBL_NAME => {:type => ::Thrift::Types::STRING, :name => 'tbl_name'},
      MAX_PARTS => {:type => ::Thrift::Types::I32, :name => 'max_parts', :default => -1}
    }

    def struct_fields; FIELDS; end

    def validate
    end

    ::Thrift::Struct.generate_accessors self
  end

  class Get_partitions_pspec_result
    include ::Thrift::Struct, ::Thrift::Struct_Union
    SUCCESS = 0
    O1 = 1
    O2 = 2

    FIELDS = {
      SUCCESS => {:type => ::Thrift::Types::LIST, :name => 'success', :element => {:type => ::Thrift::Types::STRUCT, :class => ::PartitionSpec}},
      O1 => {:type => ::Thrift::Types::STRUCT, :name => 'o1', :class => ::NoSuchObjectException},
      O2 => {:type => ::Thrift::Types::STRUCT, :name => 'o2', :class => ::MetaException}
    }

    def struct_fields; FIELDS; end

    def validate
    end

    ::Thrift::Struct.generate_accessors self
  end

  class Get_partition_names_args
    include ::Thrift::Struct, ::Thrift::Struct_Union
    DB_NAME = 1
    TBL_NAME = 2
    MAX_PARTS = 3

    FIELDS = {
      DB_NAME => {:type => ::Thrift::Types::STRING, :name => 'db_name'},
      TBL_NAME => {:type => ::Thrift::Types::STRING, :name => 'tbl_name'},
      MAX_PARTS => {:type => ::Thrift::Types::I16, :name => 'max_parts', :default => -1}
    }

    def struct_fields; FIELDS; end

    def validate
    end

    ::Thrift::Struct.generate_accessors self
  end

  class Get_partition_names_result
    include ::Thrift::Struct, ::Thrift::Struct_Union
    SUCCESS = 0
    O1 = 1
    O2 = 2

    FIELDS = {
      SUCCESS => {:type => ::Thrift::Types::LIST, :name => 'success', :element => {:type => ::Thrift::Types::STRING}},
      O1 => {:type => ::Thrift::Types::STRUCT, :name => 'o1', :class => ::NoSuchObjectException},
      O2 => {:type => ::Thrift::Types::STRUCT, :name => 'o2', :class => ::MetaException}
    }

    def struct_fields; FIELDS; end

    def validate
    end

    ::Thrift::Struct.generate_accessors self
  end

  class Get_partition_values_args
    include ::Thrift::Struct, ::Thrift::Struct_Union
    REQUEST = 1

    FIELDS = {
      REQUEST => {:type => ::Thrift::Types::STRUCT, :name => 'request', :class => ::PartitionValuesRequest}
    }

    def struct_fields; FIELDS; end

    def validate
    end

    ::Thrift::Struct.generate_accessors self
  end

  class Get_partition_values_result
    include ::Thrift::Struct, ::Thrift::Struct_Union
    SUCCESS = 0
    O1 = 1
    O2 = 2

    FIELDS = {
      SUCCESS => {:type => ::Thrift::Types::STRUCT, :name => 'success', :class => ::PartitionValuesResponse},
      O1 => {:type => ::Thrift::Types::STRUCT, :name => 'o1', :class => ::MetaException},
      O2 => {:type => ::Thrift::Types::STRUCT, :name => 'o2', :class => ::NoSuchObjectException}
    }

    def struct_fields; FIELDS; end

    def validate
    end

    ::Thrift::Struct.generate_accessors self
  end

  class Get_partitions_ps_args
    include ::Thrift::Struct, ::Thrift::Struct_Union
    DB_NAME = 1
    TBL_NAME = 2
    PART_VALS = 3
    MAX_PARTS = 4

    FIELDS = {
      DB_NAME => {:type => ::Thrift::Types::STRING, :name => 'db_name'},
      TBL_NAME => {:type => ::Thrift::Types::STRING, :name => 'tbl_name'},
      PART_VALS => {:type => ::Thrift::Types::LIST, :name => 'part_vals', :element => {:type => ::Thrift::Types::STRING}},
      MAX_PARTS => {:type => ::Thrift::Types::I16, :name => 'max_parts', :default => -1}
    }

    def struct_fields; FIELDS; end

    def validate
    end

    ::Thrift::Struct.generate_accessors self
  end

  class Get_partitions_ps_result
    include ::Thrift::Struct, ::Thrift::Struct_Union
    SUCCESS = 0
    O1 = 1
    O2 = 2

    FIELDS = {
      SUCCESS => {:type => ::Thrift::Types::LIST, :name => 'success', :element => {:type => ::Thrift::Types::STRUCT, :class => ::Partition}},
      O1 => {:type => ::Thrift::Types::STRUCT, :name => 'o1', :class => ::MetaException},
      O2 => {:type => ::Thrift::Types::STRUCT, :name => 'o2', :class => ::NoSuchObjectException}
    }

    def struct_fields; FIELDS; end

    def validate
    end

    ::Thrift::Struct.generate_accessors self
  end

  class Get_partitions_ps_with_auth_args
    include ::Thrift::Struct, ::Thrift::Struct_Union
    DB_NAME = 1
    TBL_NAME = 2
    PART_VALS = 3
    MAX_PARTS = 4
    USER_NAME = 5
    GROUP_NAMES = 6

    FIELDS = {
      DB_NAME => {:type => ::Thrift::Types::STRING, :name => 'db_name'},
      TBL_NAME => {:type => ::Thrift::Types::STRING, :name => 'tbl_name'},
      PART_VALS => {:type => ::Thrift::Types::LIST, :name => 'part_vals', :element => {:type => ::Thrift::Types::STRING}},
      MAX_PARTS => {:type => ::Thrift::Types::I16, :name => 'max_parts', :default => -1},
      USER_NAME => {:type => ::Thrift::Types::STRING, :name => 'user_name'},
      GROUP_NAMES => {:type => ::Thrift::Types::LIST, :name => 'group_names', :element => {:type => ::Thrift::Types::STRING}}
    }

    def struct_fields; FIELDS; end

    def validate
    end

    ::Thrift::Struct.generate_accessors self
  end

  class Get_partitions_ps_with_auth_result
    include ::Thrift::Struct, ::Thrift::Struct_Union
    SUCCESS = 0
    O1 = 1
    O2 = 2

    FIELDS = {
      SUCCESS => {:type => ::Thrift::Types::LIST, :name => 'success', :element => {:type => ::Thrift::Types::STRUCT, :class => ::Partition}},
      O1 => {:type => ::Thrift::Types::STRUCT, :name => 'o1', :class => ::NoSuchObjectException},
      O2 => {:type => ::Thrift::Types::STRUCT, :name => 'o2', :class => ::MetaException}
    }

    def struct_fields; FIELDS; end

    def validate
    end

    ::Thrift::Struct.generate_accessors self
  end

  class Get_partitions_ps_with_auth_req_args
    include ::Thrift::Struct, ::Thrift::Struct_Union
    REQ = 1

    FIELDS = {
      REQ => {:type => ::Thrift::Types::STRUCT, :name => 'req', :class => ::GetPartitionsPsWithAuthRequest}
    }

    def struct_fields; FIELDS; end

    def validate
    end

    ::Thrift::Struct.generate_accessors self
  end

  class Get_partitions_ps_with_auth_req_result
    include ::Thrift::Struct, ::Thrift::Struct_Union
    SUCCESS = 0
    O1 = 1
    O2 = 2

    FIELDS = {
      SUCCESS => {:type => ::Thrift::Types::STRUCT, :name => 'success', :class => ::GetPartitionsPsWithAuthResponse},
      O1 => {:type => ::Thrift::Types::STRUCT, :name => 'o1', :class => ::MetaException},
      O2 => {:type => ::Thrift::Types::STRUCT, :name => 'o2', :class => ::NoSuchObjectException}
    }

    def struct_fields; FIELDS; end

    def validate
    end

    ::Thrift::Struct.generate_accessors self
  end

  class Get_partition_names_ps_args
    include ::Thrift::Struct, ::Thrift::Struct_Union
    DB_NAME = 1
    TBL_NAME = 2
    PART_VALS = 3
    MAX_PARTS = 4

    FIELDS = {
      DB_NAME => {:type => ::Thrift::Types::STRING, :name => 'db_name'},
      TBL_NAME => {:type => ::Thrift::Types::STRING, :name => 'tbl_name'},
      PART_VALS => {:type => ::Thrift::Types::LIST, :name => 'part_vals', :element => {:type => ::Thrift::Types::STRING}},
      MAX_PARTS => {:type => ::Thrift::Types::I16, :name => 'max_parts', :default => -1}
    }

    def struct_fields; FIELDS; end

    def validate
    end

    ::Thrift::Struct.generate_accessors self
  end

  class Get_partition_names_ps_result
    include ::Thrift::Struct, ::Thrift::Struct_Union
    SUCCESS = 0
    O1 = 1
    O2 = 2

    FIELDS = {
      SUCCESS => {:type => ::Thrift::Types::LIST, :name => 'success', :element => {:type => ::Thrift::Types::STRING}},
      O1 => {:type => ::Thrift::Types::STRUCT, :name => 'o1', :class => ::MetaException},
      O2 => {:type => ::Thrift::Types::STRUCT, :name => 'o2', :class => ::NoSuchObjectException}
    }

    def struct_fields; FIELDS; end

    def validate
    end

    ::Thrift::Struct.generate_accessors self
  end

  class Get_partition_names_ps_req_args
    include ::Thrift::Struct, ::Thrift::Struct_Union
    REQ = 1

    FIELDS = {
      REQ => {:type => ::Thrift::Types::STRUCT, :name => 'req', :class => ::GetPartitionNamesPsRequest}
    }

    def struct_fields; FIELDS; end

    def validate
    end

    ::Thrift::Struct.generate_accessors self
  end

  class Get_partition_names_ps_req_result
    include ::Thrift::Struct, ::Thrift::Struct_Union
    SUCCESS = 0
    O1 = 1
    O2 = 2

    FIELDS = {
      SUCCESS => {:type => ::Thrift::Types::STRUCT, :name => 'success', :class => ::GetPartitionNamesPsResponse},
      O1 => {:type => ::Thrift::Types::STRUCT, :name => 'o1', :class => ::MetaException},
      O2 => {:type => ::Thrift::Types::STRUCT, :name => 'o2', :class => ::NoSuchObjectException}
    }

    def struct_fields; FIELDS; end

    def validate
    end

    ::Thrift::Struct.generate_accessors self
  end

  class Get_partition_names_req_args
    include ::Thrift::Struct, ::Thrift::Struct_Union
    REQ = 1

    FIELDS = {
      REQ => {:type => ::Thrift::Types::STRUCT, :name => 'req', :class => ::PartitionsByExprRequest}
    }

    def struct_fields; FIELDS; end

    def validate
    end

    ::Thrift::Struct.generate_accessors self
  end

  class Get_partition_names_req_result
    include ::Thrift::Struct, ::Thrift::Struct_Union
    SUCCESS = 0
    O1 = 1
    O2 = 2

    FIELDS = {
      SUCCESS => {:type => ::Thrift::Types::LIST, :name => 'success', :element => {:type => ::Thrift::Types::STRING}},
      O1 => {:type => ::Thrift::Types::STRUCT, :name => 'o1', :class => ::MetaException},
      O2 => {:type => ::Thrift::Types::STRUCT, :name => 'o2', :class => ::NoSuchObjectException}
    }

    def struct_fields; FIELDS; end

    def validate
    end

    ::Thrift::Struct.generate_accessors self
  end

  class Get_partitions_by_filter_args
    include ::Thrift::Struct, ::Thrift::Struct_Union
    DB_NAME = 1
    TBL_NAME = 2
    FILTER = 3
    MAX_PARTS = 4

    FIELDS = {
      DB_NAME => {:type => ::Thrift::Types::STRING, :name => 'db_name'},
      TBL_NAME => {:type => ::Thrift::Types::STRING, :name => 'tbl_name'},
      FILTER => {:type => ::Thrift::Types::STRING, :name => 'filter'},
      MAX_PARTS => {:type => ::Thrift::Types::I16, :name => 'max_parts', :default => -1}
    }

    def struct_fields; FIELDS; end

    def validate
    end

    ::Thrift::Struct.generate_accessors self
  end

  class Get_partitions_by_filter_result
    include ::Thrift::Struct, ::Thrift::Struct_Union
    SUCCESS = 0
    O1 = 1
    O2 = 2

    FIELDS = {
      SUCCESS => {:type => ::Thrift::Types::LIST, :name => 'success', :element => {:type => ::Thrift::Types::STRUCT, :class => ::Partition}},
      O1 => {:type => ::Thrift::Types::STRUCT, :name => 'o1', :class => ::MetaException},
      O2 => {:type => ::Thrift::Types::STRUCT, :name => 'o2', :class => ::NoSuchObjectException}
    }

    def struct_fields; FIELDS; end

    def validate
    end

    ::Thrift::Struct.generate_accessors self
  end

  class Get_part_specs_by_filter_args
    include ::Thrift::Struct, ::Thrift::Struct_Union
    DB_NAME = 1
    TBL_NAME = 2
    FILTER = 3
    MAX_PARTS = 4

    FIELDS = {
      DB_NAME => {:type => ::Thrift::Types::STRING, :name => 'db_name'},
      TBL_NAME => {:type => ::Thrift::Types::STRING, :name => 'tbl_name'},
      FILTER => {:type => ::Thrift::Types::STRING, :name => 'filter'},
      MAX_PARTS => {:type => ::Thrift::Types::I32, :name => 'max_parts', :default => -1}
    }

    def struct_fields; FIELDS; end

    def validate
    end

    ::Thrift::Struct.generate_accessors self
  end

  class Get_part_specs_by_filter_result
    include ::Thrift::Struct, ::Thrift::Struct_Union
    SUCCESS = 0
    O1 = 1
    O2 = 2

    FIELDS = {
      SUCCESS => {:type => ::Thrift::Types::LIST, :name => 'success', :element => {:type => ::Thrift::Types::STRUCT, :class => ::PartitionSpec}},
      O1 => {:type => ::Thrift::Types::STRUCT, :name => 'o1', :class => ::MetaException},
      O2 => {:type => ::Thrift::Types::STRUCT, :name => 'o2', :class => ::NoSuchObjectException}
    }

    def struct_fields; FIELDS; end

    def validate
    end

    ::Thrift::Struct.generate_accessors self
  end

  class Get_partitions_by_expr_args
    include ::Thrift::Struct, ::Thrift::Struct_Union
    REQ = 1

    FIELDS = {
      REQ => {:type => ::Thrift::Types::STRUCT, :name => 'req', :class => ::PartitionsByExprRequest}
    }

    def struct_fields; FIELDS; end

    def validate
    end

    ::Thrift::Struct.generate_accessors self
  end

  class Get_partitions_by_expr_result
    include ::Thrift::Struct, ::Thrift::Struct_Union
    SUCCESS = 0
    O1 = 1
    O2 = 2

    FIELDS = {
      SUCCESS => {:type => ::Thrift::Types::STRUCT, :name => 'success', :class => ::PartitionsByExprResult},
      O1 => {:type => ::Thrift::Types::STRUCT, :name => 'o1', :class => ::MetaException},
      O2 => {:type => ::Thrift::Types::STRUCT, :name => 'o2', :class => ::NoSuchObjectException}
    }

    def struct_fields; FIELDS; end

    def validate
    end

    ::Thrift::Struct.generate_accessors self
  end

  class Get_partitions_spec_by_expr_args
    include ::Thrift::Struct, ::Thrift::Struct_Union
    REQ = 1

    FIELDS = {
      REQ => {:type => ::Thrift::Types::STRUCT, :name => 'req', :class => ::PartitionsByExprRequest}
    }

    def struct_fields; FIELDS; end

    def validate
    end

    ::Thrift::Struct.generate_accessors self
  end

  class Get_partitions_spec_by_expr_result
    include ::Thrift::Struct, ::Thrift::Struct_Union
    SUCCESS = 0
    O1 = 1
    O2 = 2

    FIELDS = {
      SUCCESS => {:type => ::Thrift::Types::STRUCT, :name => 'success', :class => ::PartitionsSpecByExprResult},
      O1 => {:type => ::Thrift::Types::STRUCT, :name => 'o1', :class => ::MetaException},
      O2 => {:type => ::Thrift::Types::STRUCT, :name => 'o2', :class => ::NoSuchObjectException}
    }

    def struct_fields; FIELDS; end

    def validate
    end

    ::Thrift::Struct.generate_accessors self
  end

  class Get_num_partitions_by_filter_args
    include ::Thrift::Struct, ::Thrift::Struct_Union
    DB_NAME = 1
    TBL_NAME = 2
    FILTER = 3

    FIELDS = {
      DB_NAME => {:type => ::Thrift::Types::STRING, :name => 'db_name'},
      TBL_NAME => {:type => ::Thrift::Types::STRING, :name => 'tbl_name'},
      FILTER => {:type => ::Thrift::Types::STRING, :name => 'filter'}
    }

    def struct_fields; FIELDS; end

    def validate
    end

    ::Thrift::Struct.generate_accessors self
  end

  class Get_num_partitions_by_filter_result
    include ::Thrift::Struct, ::Thrift::Struct_Union
    SUCCESS = 0
    O1 = 1
    O2 = 2

    FIELDS = {
      SUCCESS => {:type => ::Thrift::Types::I32, :name => 'success'},
      O1 => {:type => ::Thrift::Types::STRUCT, :name => 'o1', :class => ::MetaException},
      O2 => {:type => ::Thrift::Types::STRUCT, :name => 'o2', :class => ::NoSuchObjectException}
    }

    def struct_fields; FIELDS; end

    def validate
    end

    ::Thrift::Struct.generate_accessors self
  end

  class Get_partitions_by_names_args
    include ::Thrift::Struct, ::Thrift::Struct_Union
    DB_NAME = 1
    TBL_NAME = 2
    NAMES = 3

    FIELDS = {
      DB_NAME => {:type => ::Thrift::Types::STRING, :name => 'db_name'},
      TBL_NAME => {:type => ::Thrift::Types::STRING, :name => 'tbl_name'},
      NAMES => {:type => ::Thrift::Types::LIST, :name => 'names', :element => {:type => ::Thrift::Types::STRING}}
    }

    def struct_fields; FIELDS; end

    def validate
    end

    ::Thrift::Struct.generate_accessors self
  end

  class Get_partitions_by_names_result
    include ::Thrift::Struct, ::Thrift::Struct_Union
    SUCCESS = 0
    O1 = 1
    O2 = 2

    FIELDS = {
      SUCCESS => {:type => ::Thrift::Types::LIST, :name => 'success', :element => {:type => ::Thrift::Types::STRUCT, :class => ::Partition}},
      O1 => {:type => ::Thrift::Types::STRUCT, :name => 'o1', :class => ::MetaException},
      O2 => {:type => ::Thrift::Types::STRUCT, :name => 'o2', :class => ::NoSuchObjectException}
    }

    def struct_fields; FIELDS; end

    def validate
    end

    ::Thrift::Struct.generate_accessors self
  end

  class Get_partitions_by_names_req_args
    include ::Thrift::Struct, ::Thrift::Struct_Union
    REQ = 1

    FIELDS = {
      REQ => {:type => ::Thrift::Types::STRUCT, :name => 'req', :class => ::GetPartitionsByNamesRequest}
    }

    def struct_fields; FIELDS; end

    def validate
    end

    ::Thrift::Struct.generate_accessors self
  end

  class Get_partitions_by_names_req_result
    include ::Thrift::Struct, ::Thrift::Struct_Union
    SUCCESS = 0
    O1 = 1
    O2 = 2

    FIELDS = {
      SUCCESS => {:type => ::Thrift::Types::STRUCT, :name => 'success', :class => ::GetPartitionsByNamesResult},
      O1 => {:type => ::Thrift::Types::STRUCT, :name => 'o1', :class => ::MetaException},
      O2 => {:type => ::Thrift::Types::STRUCT, :name => 'o2', :class => ::NoSuchObjectException}
    }

    def struct_fields; FIELDS; end

    def validate
    end

    ::Thrift::Struct.generate_accessors self
  end

  class Alter_partition_args
    include ::Thrift::Struct, ::Thrift::Struct_Union
    DB_NAME = 1
    TBL_NAME = 2
    NEW_PART = 3

    FIELDS = {
      DB_NAME => {:type => ::Thrift::Types::STRING, :name => 'db_name'},
      TBL_NAME => {:type => ::Thrift::Types::STRING, :name => 'tbl_name'},
      NEW_PART => {:type => ::Thrift::Types::STRUCT, :name => 'new_part', :class => ::Partition}
    }

    def struct_fields; FIELDS; end

    def validate
    end

    ::Thrift::Struct.generate_accessors self
  end

  class Alter_partition_result
    include ::Thrift::Struct, ::Thrift::Struct_Union
    O1 = 1
    O2 = 2

    FIELDS = {
      O1 => {:type => ::Thrift::Types::STRUCT, :name => 'o1', :class => ::InvalidOperationException},
      O2 => {:type => ::Thrift::Types::STRUCT, :name => 'o2', :class => ::MetaException}
    }

    def struct_fields; FIELDS; end

    def validate
    end

    ::Thrift::Struct.generate_accessors self
  end

  class Alter_partitions_args
    include ::Thrift::Struct, ::Thrift::Struct_Union
    DB_NAME = 1
    TBL_NAME = 2
    NEW_PARTS = 3

    FIELDS = {
      DB_NAME => {:type => ::Thrift::Types::STRING, :name => 'db_name'},
      TBL_NAME => {:type => ::Thrift::Types::STRING, :name => 'tbl_name'},
      NEW_PARTS => {:type => ::Thrift::Types::LIST, :name => 'new_parts', :element => {:type => ::Thrift::Types::STRUCT, :class => ::Partition}}
    }

    def struct_fields; FIELDS; end

    def validate
    end

    ::Thrift::Struct.generate_accessors self
  end

  class Alter_partitions_result
    include ::Thrift::Struct, ::Thrift::Struct_Union
    O1 = 1
    O2 = 2

    FIELDS = {
      O1 => {:type => ::Thrift::Types::STRUCT, :name => 'o1', :class => ::InvalidOperationException},
      O2 => {:type => ::Thrift::Types::STRUCT, :name => 'o2', :class => ::MetaException}
    }

    def struct_fields; FIELDS; end

    def validate
    end

    ::Thrift::Struct.generate_accessors self
  end

  class Alter_partitions_with_environment_context_args
    include ::Thrift::Struct, ::Thrift::Struct_Union
    DB_NAME = 1
    TBL_NAME = 2
    NEW_PARTS = 3
    ENVIRONMENT_CONTEXT = 4

    FIELDS = {
      DB_NAME => {:type => ::Thrift::Types::STRING, :name => 'db_name'},
      TBL_NAME => {:type => ::Thrift::Types::STRING, :name => 'tbl_name'},
      NEW_PARTS => {:type => ::Thrift::Types::LIST, :name => 'new_parts', :element => {:type => ::Thrift::Types::STRUCT, :class => ::Partition}},
      ENVIRONMENT_CONTEXT => {:type => ::Thrift::Types::STRUCT, :name => 'environment_context', :class => ::EnvironmentContext}
    }

    def struct_fields; FIELDS; end

    def validate
    end

    ::Thrift::Struct.generate_accessors self
  end

  class Alter_partitions_with_environment_context_result
    include ::Thrift::Struct, ::Thrift::Struct_Union
    O1 = 1
    O2 = 2

    FIELDS = {
      O1 => {:type => ::Thrift::Types::STRUCT, :name => 'o1', :class => ::InvalidOperationException},
      O2 => {:type => ::Thrift::Types::STRUCT, :name => 'o2', :class => ::MetaException}
    }

    def struct_fields; FIELDS; end

    def validate
    end

    ::Thrift::Struct.generate_accessors self
  end

  class Alter_partitions_req_args
    include ::Thrift::Struct, ::Thrift::Struct_Union
    REQ = 1

    FIELDS = {
      REQ => {:type => ::Thrift::Types::STRUCT, :name => 'req', :class => ::AlterPartitionsRequest}
    }

    def struct_fields; FIELDS; end

    def validate
    end

    ::Thrift::Struct.generate_accessors self
  end

  class Alter_partitions_req_result
    include ::Thrift::Struct, ::Thrift::Struct_Union
    SUCCESS = 0
    O1 = 1
    O2 = 2

    FIELDS = {
      SUCCESS => {:type => ::Thrift::Types::STRUCT, :name => 'success', :class => ::AlterPartitionsResponse},
      O1 => {:type => ::Thrift::Types::STRUCT, :name => 'o1', :class => ::InvalidOperationException},
      O2 => {:type => ::Thrift::Types::STRUCT, :name => 'o2', :class => ::MetaException}
    }

    def struct_fields; FIELDS; end

    def validate
    end

    ::Thrift::Struct.generate_accessors self
  end

  class Alter_partition_with_environment_context_args
    include ::Thrift::Struct, ::Thrift::Struct_Union
    DB_NAME = 1
    TBL_NAME = 2
    NEW_PART = 3
    ENVIRONMENT_CONTEXT = 4

    FIELDS = {
      DB_NAME => {:type => ::Thrift::Types::STRING, :name => 'db_name'},
      TBL_NAME => {:type => ::Thrift::Types::STRING, :name => 'tbl_name'},
      NEW_PART => {:type => ::Thrift::Types::STRUCT, :name => 'new_part', :class => ::Partition},
      ENVIRONMENT_CONTEXT => {:type => ::Thrift::Types::STRUCT, :name => 'environment_context', :class => ::EnvironmentContext}
    }

    def struct_fields; FIELDS; end

    def validate
    end

    ::Thrift::Struct.generate_accessors self
  end

  class Alter_partition_with_environment_context_result
    include ::Thrift::Struct, ::Thrift::Struct_Union
    O1 = 1
    O2 = 2

    FIELDS = {
      O1 => {:type => ::Thrift::Types::STRUCT, :name => 'o1', :class => ::InvalidOperationException},
      O2 => {:type => ::Thrift::Types::STRUCT, :name => 'o2', :class => ::MetaException}
    }

    def struct_fields; FIELDS; end

    def validate
    end

    ::Thrift::Struct.generate_accessors self
  end

  class Rename_partition_args
    include ::Thrift::Struct, ::Thrift::Struct_Union
    DB_NAME = 1
    TBL_NAME = 2
    PART_VALS = 3
    NEW_PART = 4

    FIELDS = {
      DB_NAME => {:type => ::Thrift::Types::STRING, :name => 'db_name'},
      TBL_NAME => {:type => ::Thrift::Types::STRING, :name => 'tbl_name'},
      PART_VALS => {:type => ::Thrift::Types::LIST, :name => 'part_vals', :element => {:type => ::Thrift::Types::STRING}},
      NEW_PART => {:type => ::Thrift::Types::STRUCT, :name => 'new_part', :class => ::Partition}
    }

    def struct_fields; FIELDS; end

    def validate
    end

    ::Thrift::Struct.generate_accessors self
  end

  class Rename_partition_result
    include ::Thrift::Struct, ::Thrift::Struct_Union
    O1 = 1
    O2 = 2

    FIELDS = {
      O1 => {:type => ::Thrift::Types::STRUCT, :name => 'o1', :class => ::InvalidOperationException},
      O2 => {:type => ::Thrift::Types::STRUCT, :name => 'o2', :class => ::MetaException}
    }

    def struct_fields; FIELDS; end

    def validate
    end

    ::Thrift::Struct.generate_accessors self
  end

  class Rename_partition_req_args
    include ::Thrift::Struct, ::Thrift::Struct_Union
    REQ = 1

    FIELDS = {
      REQ => {:type => ::Thrift::Types::STRUCT, :name => 'req', :class => ::RenamePartitionRequest}
    }

    def struct_fields; FIELDS; end

    def validate
    end

    ::Thrift::Struct.generate_accessors self
  end

  class Rename_partition_req_result
    include ::Thrift::Struct, ::Thrift::Struct_Union
    SUCCESS = 0
    O1 = 1
    O2 = 2

    FIELDS = {
      SUCCESS => {:type => ::Thrift::Types::STRUCT, :name => 'success', :class => ::RenamePartitionResponse},
      O1 => {:type => ::Thrift::Types::STRUCT, :name => 'o1', :class => ::InvalidOperationException},
      O2 => {:type => ::Thrift::Types::STRUCT, :name => 'o2', :class => ::MetaException}
    }

    def struct_fields; FIELDS; end

    def validate
    end

    ::Thrift::Struct.generate_accessors self
  end

  class Partition_name_has_valid_characters_args
    include ::Thrift::Struct, ::Thrift::Struct_Union
    PART_VALS = 1
    THROW_EXCEPTION = 2

    FIELDS = {
      PART_VALS => {:type => ::Thrift::Types::LIST, :name => 'part_vals', :element => {:type => ::Thrift::Types::STRING}},
      THROW_EXCEPTION => {:type => ::Thrift::Types::BOOL, :name => 'throw_exception'}
    }

    def struct_fields; FIELDS; end

    def validate
    end

    ::Thrift::Struct.generate_accessors self
  end

  class Partition_name_has_valid_characters_result
    include ::Thrift::Struct, ::Thrift::Struct_Union
    SUCCESS = 0
    O1 = 1

    FIELDS = {
      SUCCESS => {:type => ::Thrift::Types::BOOL, :name => 'success'},
      O1 => {:type => ::Thrift::Types::STRUCT, :name => 'o1', :class => ::MetaException}
    }

    def struct_fields; FIELDS; end

    def validate
    end

    ::Thrift::Struct.generate_accessors self
  end

  class Get_config_value_args
    include ::Thrift::Struct, ::Thrift::Struct_Union
    NAME = 1
    DEFAULTVALUE = 2

    FIELDS = {
      NAME => {:type => ::Thrift::Types::STRING, :name => 'name'},
      DEFAULTVALUE => {:type => ::Thrift::Types::STRING, :name => 'defaultValue'}
    }

    def struct_fields; FIELDS; end

    def validate
    end

    ::Thrift::Struct.generate_accessors self
  end

  class Get_config_value_result
    include ::Thrift::Struct, ::Thrift::Struct_Union
    SUCCESS = 0
    O1 = 1

    FIELDS = {
      SUCCESS => {:type => ::Thrift::Types::STRING, :name => 'success'},
      O1 => {:type => ::Thrift::Types::STRUCT, :name => 'o1', :class => ::ConfigValSecurityException}
    }

    def struct_fields; FIELDS; end

    def validate
    end

    ::Thrift::Struct.generate_accessors self
  end

  class Partition_name_to_vals_args
    include ::Thrift::Struct, ::Thrift::Struct_Union
    PART_NAME = 1

    FIELDS = {
      PART_NAME => {:type => ::Thrift::Types::STRING, :name => 'part_name'}
    }

    def struct_fields; FIELDS; end

    def validate
    end

    ::Thrift::Struct.generate_accessors self
  end

  class Partition_name_to_vals_result
    include ::Thrift::Struct, ::Thrift::Struct_Union
    SUCCESS = 0
    O1 = 1

    FIELDS = {
      SUCCESS => {:type => ::Thrift::Types::LIST, :name => 'success', :element => {:type => ::Thrift::Types::STRING}},
      O1 => {:type => ::Thrift::Types::STRUCT, :name => 'o1', :class => ::MetaException}
    }

    def struct_fields; FIELDS; end

    def validate
    end

    ::Thrift::Struct.generate_accessors self
  end

  class Partition_name_to_spec_args
    include ::Thrift::Struct, ::Thrift::Struct_Union
    PART_NAME = 1

    FIELDS = {
      PART_NAME => {:type => ::Thrift::Types::STRING, :name => 'part_name'}
    }

    def struct_fields; FIELDS; end

    def validate
    end

    ::Thrift::Struct.generate_accessors self
  end

  class Partition_name_to_spec_result
    include ::Thrift::Struct, ::Thrift::Struct_Union
    SUCCESS = 0
    O1 = 1

    FIELDS = {
      SUCCESS => {:type => ::Thrift::Types::MAP, :name => 'success', :key => {:type => ::Thrift::Types::STRING}, :value => {:type => ::Thrift::Types::STRING}},
      O1 => {:type => ::Thrift::Types::STRUCT, :name => 'o1', :class => ::MetaException}
    }

    def struct_fields; FIELDS; end

    def validate
    end

    ::Thrift::Struct.generate_accessors self
  end

  class MarkPartitionForEvent_args
    include ::Thrift::Struct, ::Thrift::Struct_Union
    DB_NAME = 1
    TBL_NAME = 2
    PART_VALS = 3
    EVENTTYPE = 4

    FIELDS = {
      DB_NAME => {:type => ::Thrift::Types::STRING, :name => 'db_name'},
      TBL_NAME => {:type => ::Thrift::Types::STRING, :name => 'tbl_name'},
      PART_VALS => {:type => ::Thrift::Types::MAP, :name => 'part_vals', :key => {:type => ::Thrift::Types::STRING}, :value => {:type => ::Thrift::Types::STRING}},
      EVENTTYPE => {:type => ::Thrift::Types::I32, :name => 'eventType', :enum_class => ::PartitionEventType}
    }

    def struct_fields; FIELDS; end

    def validate
      unless @eventType.nil? || ::PartitionEventType::VALID_VALUES.include?(@eventType)
        raise ::Thrift::ProtocolException.new(::Thrift::ProtocolException::UNKNOWN, 'Invalid value of field eventType!')
      end
    end

    ::Thrift::Struct.generate_accessors self
  end

  class MarkPartitionForEvent_result
    include ::Thrift::Struct, ::Thrift::Struct_Union
    O1 = 1
    O2 = 2
    O3 = 3
    O4 = 4
    O5 = 5
    O6 = 6

    FIELDS = {
      O1 => {:type => ::Thrift::Types::STRUCT, :name => 'o1', :class => ::MetaException},
      O2 => {:type => ::Thrift::Types::STRUCT, :name => 'o2', :class => ::NoSuchObjectException},
      O3 => {:type => ::Thrift::Types::STRUCT, :name => 'o3', :class => ::UnknownDBException},
      O4 => {:type => ::Thrift::Types::STRUCT, :name => 'o4', :class => ::UnknownTableException},
      O5 => {:type => ::Thrift::Types::STRUCT, :name => 'o5', :class => ::UnknownPartitionException},
      O6 => {:type => ::Thrift::Types::STRUCT, :name => 'o6', :class => ::InvalidPartitionException}
    }

    def struct_fields; FIELDS; end

    def validate
    end

    ::Thrift::Struct.generate_accessors self
  end

  class IsPartitionMarkedForEvent_args
    include ::Thrift::Struct, ::Thrift::Struct_Union
    DB_NAME = 1
    TBL_NAME = 2
    PART_VALS = 3
    EVENTTYPE = 4

    FIELDS = {
      DB_NAME => {:type => ::Thrift::Types::STRING, :name => 'db_name'},
      TBL_NAME => {:type => ::Thrift::Types::STRING, :name => 'tbl_name'},
      PART_VALS => {:type => ::Thrift::Types::MAP, :name => 'part_vals', :key => {:type => ::Thrift::Types::STRING}, :value => {:type => ::Thrift::Types::STRING}},
      EVENTTYPE => {:type => ::Thrift::Types::I32, :name => 'eventType', :enum_class => ::PartitionEventType}
    }

    def struct_fields; FIELDS; end

    def validate
      unless @eventType.nil? || ::PartitionEventType::VALID_VALUES.include?(@eventType)
        raise ::Thrift::ProtocolException.new(::Thrift::ProtocolException::UNKNOWN, 'Invalid value of field eventType!')
      end
    end

    ::Thrift::Struct.generate_accessors self
  end

  class IsPartitionMarkedForEvent_result
    include ::Thrift::Struct, ::Thrift::Struct_Union
    SUCCESS = 0
    O1 = 1
    O2 = 2
    O3 = 3
    O4 = 4
    O5 = 5
    O6 = 6

    FIELDS = {
      SUCCESS => {:type => ::Thrift::Types::BOOL, :name => 'success'},
      O1 => {:type => ::Thrift::Types::STRUCT, :name => 'o1', :class => ::MetaException},
      O2 => {:type => ::Thrift::Types::STRUCT, :name => 'o2', :class => ::NoSuchObjectException},
      O3 => {:type => ::Thrift::Types::STRUCT, :name => 'o3', :class => ::UnknownDBException},
      O4 => {:type => ::Thrift::Types::STRUCT, :name => 'o4', :class => ::UnknownTableException},
      O5 => {:type => ::Thrift::Types::STRUCT, :name => 'o5', :class => ::UnknownPartitionException},
      O6 => {:type => ::Thrift::Types::STRUCT, :name => 'o6', :class => ::InvalidPartitionException}
    }

    def struct_fields; FIELDS; end

    def validate
    end

    ::Thrift::Struct.generate_accessors self
  end

  class Get_primary_keys_args
    include ::Thrift::Struct, ::Thrift::Struct_Union
    REQUEST = 1

    FIELDS = {
      REQUEST => {:type => ::Thrift::Types::STRUCT, :name => 'request', :class => ::PrimaryKeysRequest}
    }

    def struct_fields; FIELDS; end

    def validate
    end

    ::Thrift::Struct.generate_accessors self
  end

  class Get_primary_keys_result
    include ::Thrift::Struct, ::Thrift::Struct_Union
    SUCCESS = 0
    O1 = 1
    O2 = 2

    FIELDS = {
      SUCCESS => {:type => ::Thrift::Types::STRUCT, :name => 'success', :class => ::PrimaryKeysResponse},
      O1 => {:type => ::Thrift::Types::STRUCT, :name => 'o1', :class => ::MetaException},
      O2 => {:type => ::Thrift::Types::STRUCT, :name => 'o2', :class => ::NoSuchObjectException}
    }

    def struct_fields; FIELDS; end

    def validate
    end

    ::Thrift::Struct.generate_accessors self
  end

  class Get_foreign_keys_args
    include ::Thrift::Struct, ::Thrift::Struct_Union
    REQUEST = 1

    FIELDS = {
      REQUEST => {:type => ::Thrift::Types::STRUCT, :name => 'request', :class => ::ForeignKeysRequest}
    }

    def struct_fields; FIELDS; end

    def validate
    end

    ::Thrift::Struct.generate_accessors self
  end

  class Get_foreign_keys_result
    include ::Thrift::Struct, ::Thrift::Struct_Union
    SUCCESS = 0
    O1 = 1
    O2 = 2

    FIELDS = {
      SUCCESS => {:type => ::Thrift::Types::STRUCT, :name => 'success', :class => ::ForeignKeysResponse},
      O1 => {:type => ::Thrift::Types::STRUCT, :name => 'o1', :class => ::MetaException},
      O2 => {:type => ::Thrift::Types::STRUCT, :name => 'o2', :class => ::NoSuchObjectException}
    }

    def struct_fields; FIELDS; end

    def validate
    end

    ::Thrift::Struct.generate_accessors self
  end

  class Get_unique_constraints_args
    include ::Thrift::Struct, ::Thrift::Struct_Union
    REQUEST = 1

    FIELDS = {
      REQUEST => {:type => ::Thrift::Types::STRUCT, :name => 'request', :class => ::UniqueConstraintsRequest}
    }

    def struct_fields; FIELDS; end

    def validate
    end

    ::Thrift::Struct.generate_accessors self
  end

  class Get_unique_constraints_result
    include ::Thrift::Struct, ::Thrift::Struct_Union
    SUCCESS = 0
    O1 = 1
    O2 = 2

    FIELDS = {
      SUCCESS => {:type => ::Thrift::Types::STRUCT, :name => 'success', :class => ::UniqueConstraintsResponse},
      O1 => {:type => ::Thrift::Types::STRUCT, :name => 'o1', :class => ::MetaException},
      O2 => {:type => ::Thrift::Types::STRUCT, :name => 'o2', :class => ::NoSuchObjectException}
    }

    def struct_fields; FIELDS; end

    def validate
    end

    ::Thrift::Struct.generate_accessors self
  end

  class Get_not_null_constraints_args
    include ::Thrift::Struct, ::Thrift::Struct_Union
    REQUEST = 1

    FIELDS = {
      REQUEST => {:type => ::Thrift::Types::STRUCT, :name => 'request', :class => ::NotNullConstraintsRequest}
    }

    def struct_fields; FIELDS; end

    def validate
    end

    ::Thrift::Struct.generate_accessors self
  end

  class Get_not_null_constraints_result
    include ::Thrift::Struct, ::Thrift::Struct_Union
    SUCCESS = 0
    O1 = 1
    O2 = 2

    FIELDS = {
      SUCCESS => {:type => ::Thrift::Types::STRUCT, :name => 'success', :class => ::NotNullConstraintsResponse},
      O1 => {:type => ::Thrift::Types::STRUCT, :name => 'o1', :class => ::MetaException},
      O2 => {:type => ::Thrift::Types::STRUCT, :name => 'o2', :class => ::NoSuchObjectException}
    }

    def struct_fields; FIELDS; end

    def validate
    end

    ::Thrift::Struct.generate_accessors self
  end

  class Get_default_constraints_args
    include ::Thrift::Struct, ::Thrift::Struct_Union
    REQUEST = 1

    FIELDS = {
      REQUEST => {:type => ::Thrift::Types::STRUCT, :name => 'request', :class => ::DefaultConstraintsRequest}
    }

    def struct_fields; FIELDS; end

    def validate
    end

    ::Thrift::Struct.generate_accessors self
  end

  class Get_default_constraints_result
    include ::Thrift::Struct, ::Thrift::Struct_Union
    SUCCESS = 0
    O1 = 1
    O2 = 2

    FIELDS = {
      SUCCESS => {:type => ::Thrift::Types::STRUCT, :name => 'success', :class => ::DefaultConstraintsResponse},
      O1 => {:type => ::Thrift::Types::STRUCT, :name => 'o1', :class => ::MetaException},
      O2 => {:type => ::Thrift::Types::STRUCT, :name => 'o2', :class => ::NoSuchObjectException}
    }

    def struct_fields; FIELDS; end

    def validate
    end

    ::Thrift::Struct.generate_accessors self
  end

  class Get_check_constraints_args
    include ::Thrift::Struct, ::Thrift::Struct_Union
    REQUEST = 1

    FIELDS = {
      REQUEST => {:type => ::Thrift::Types::STRUCT, :name => 'request', :class => ::CheckConstraintsRequest}
    }

    def struct_fields; FIELDS; end

    def validate
    end

    ::Thrift::Struct.generate_accessors self
  end

  class Get_check_constraints_result
    include ::Thrift::Struct, ::Thrift::Struct_Union
    SUCCESS = 0
    O1 = 1
    O2 = 2

    FIELDS = {
      SUCCESS => {:type => ::Thrift::Types::STRUCT, :name => 'success', :class => ::CheckConstraintsResponse},
      O1 => {:type => ::Thrift::Types::STRUCT, :name => 'o1', :class => ::MetaException},
      O2 => {:type => ::Thrift::Types::STRUCT, :name => 'o2', :class => ::NoSuchObjectException}
    }

    def struct_fields; FIELDS; end

    def validate
    end

    ::Thrift::Struct.generate_accessors self
  end

  class Update_table_column_statistics_args
    include ::Thrift::Struct, ::Thrift::Struct_Union
    STATS_OBJ = 1

    FIELDS = {
      STATS_OBJ => {:type => ::Thrift::Types::STRUCT, :name => 'stats_obj', :class => ::ColumnStatistics}
    }

    def struct_fields; FIELDS; end

    def validate
    end

    ::Thrift::Struct.generate_accessors self
  end

  class Update_table_column_statistics_result
    include ::Thrift::Struct, ::Thrift::Struct_Union
    SUCCESS = 0
    O1 = 1
    O2 = 2
    O3 = 3
    O4 = 4

    FIELDS = {
      SUCCESS => {:type => ::Thrift::Types::BOOL, :name => 'success'},
      O1 => {:type => ::Thrift::Types::STRUCT, :name => 'o1', :class => ::NoSuchObjectException},
      O2 => {:type => ::Thrift::Types::STRUCT, :name => 'o2', :class => ::InvalidObjectException},
      O3 => {:type => ::Thrift::Types::STRUCT, :name => 'o3', :class => ::MetaException},
      O4 => {:type => ::Thrift::Types::STRUCT, :name => 'o4', :class => ::InvalidInputException}
    }

    def struct_fields; FIELDS; end

    def validate
    end

    ::Thrift::Struct.generate_accessors self
  end

  class Update_partition_column_statistics_args
    include ::Thrift::Struct, ::Thrift::Struct_Union
    STATS_OBJ = 1

    FIELDS = {
      STATS_OBJ => {:type => ::Thrift::Types::STRUCT, :name => 'stats_obj', :class => ::ColumnStatistics}
    }

    def struct_fields; FIELDS; end

    def validate
    end

    ::Thrift::Struct.generate_accessors self
  end

  class Update_partition_column_statistics_result
    include ::Thrift::Struct, ::Thrift::Struct_Union
    SUCCESS = 0
    O1 = 1
    O2 = 2
    O3 = 3
    O4 = 4

    FIELDS = {
      SUCCESS => {:type => ::Thrift::Types::BOOL, :name => 'success'},
      O1 => {:type => ::Thrift::Types::STRUCT, :name => 'o1', :class => ::NoSuchObjectException},
      O2 => {:type => ::Thrift::Types::STRUCT, :name => 'o2', :class => ::InvalidObjectException},
      O3 => {:type => ::Thrift::Types::STRUCT, :name => 'o3', :class => ::MetaException},
      O4 => {:type => ::Thrift::Types::STRUCT, :name => 'o4', :class => ::InvalidInputException}
    }

    def struct_fields; FIELDS; end

    def validate
    end

    ::Thrift::Struct.generate_accessors self
  end

  class Update_table_column_statistics_req_args
    include ::Thrift::Struct, ::Thrift::Struct_Union
    REQ = 1

    FIELDS = {
      REQ => {:type => ::Thrift::Types::STRUCT, :name => 'req', :class => ::SetPartitionsStatsRequest}
    }

    def struct_fields; FIELDS; end

    def validate
    end

    ::Thrift::Struct.generate_accessors self
  end

  class Update_table_column_statistics_req_result
    include ::Thrift::Struct, ::Thrift::Struct_Union
    SUCCESS = 0
    O1 = 1
    O2 = 2
    O3 = 3
    O4 = 4

    FIELDS = {
      SUCCESS => {:type => ::Thrift::Types::STRUCT, :name => 'success', :class => ::SetPartitionsStatsResponse},
      O1 => {:type => ::Thrift::Types::STRUCT, :name => 'o1', :class => ::NoSuchObjectException},
      O2 => {:type => ::Thrift::Types::STRUCT, :name => 'o2', :class => ::InvalidObjectException},
      O3 => {:type => ::Thrift::Types::STRUCT, :name => 'o3', :class => ::MetaException},
      O4 => {:type => ::Thrift::Types::STRUCT, :name => 'o4', :class => ::InvalidInputException}
    }

    def struct_fields; FIELDS; end

    def validate
    end

    ::Thrift::Struct.generate_accessors self
  end

  class Update_partition_column_statistics_req_args
    include ::Thrift::Struct, ::Thrift::Struct_Union
    REQ = 1

    FIELDS = {
      REQ => {:type => ::Thrift::Types::STRUCT, :name => 'req', :class => ::SetPartitionsStatsRequest}
    }

    def struct_fields; FIELDS; end

    def validate
    end

    ::Thrift::Struct.generate_accessors self
  end

  class Update_partition_column_statistics_req_result
    include ::Thrift::Struct, ::Thrift::Struct_Union
    SUCCESS = 0
    O1 = 1
    O2 = 2
    O3 = 3
    O4 = 4

    FIELDS = {
      SUCCESS => {:type => ::Thrift::Types::STRUCT, :name => 'success', :class => ::SetPartitionsStatsResponse},
      O1 => {:type => ::Thrift::Types::STRUCT, :name => 'o1', :class => ::NoSuchObjectException},
      O2 => {:type => ::Thrift::Types::STRUCT, :name => 'o2', :class => ::InvalidObjectException},
      O3 => {:type => ::Thrift::Types::STRUCT, :name => 'o3', :class => ::MetaException},
      O4 => {:type => ::Thrift::Types::STRUCT, :name => 'o4', :class => ::InvalidInputException}
    }

    def struct_fields; FIELDS; end

    def validate
    end

    ::Thrift::Struct.generate_accessors self
  end

  class Get_table_column_statistics_args
    include ::Thrift::Struct, ::Thrift::Struct_Union
    DB_NAME = 1
    TBL_NAME = 2
    COL_NAME = 3

    FIELDS = {
      DB_NAME => {:type => ::Thrift::Types::STRING, :name => 'db_name'},
      TBL_NAME => {:type => ::Thrift::Types::STRING, :name => 'tbl_name'},
      COL_NAME => {:type => ::Thrift::Types::STRING, :name => 'col_name'}
    }

    def struct_fields; FIELDS; end

    def validate
    end

    ::Thrift::Struct.generate_accessors self
  end

  class Get_table_column_statistics_result
    include ::Thrift::Struct, ::Thrift::Struct_Union
    SUCCESS = 0
    O1 = 1
    O2 = 2
    O3 = 3
    O4 = 4

    FIELDS = {
      SUCCESS => {:type => ::Thrift::Types::STRUCT, :name => 'success', :class => ::ColumnStatistics},
      O1 => {:type => ::Thrift::Types::STRUCT, :name => 'o1', :class => ::NoSuchObjectException},
      O2 => {:type => ::Thrift::Types::STRUCT, :name => 'o2', :class => ::MetaException},
      O3 => {:type => ::Thrift::Types::STRUCT, :name => 'o3', :class => ::InvalidInputException},
      O4 => {:type => ::Thrift::Types::STRUCT, :name => 'o4', :class => ::InvalidObjectException}
    }

    def struct_fields; FIELDS; end

    def validate
    end

    ::Thrift::Struct.generate_accessors self
  end

  class Get_partition_column_statistics_args
    include ::Thrift::Struct, ::Thrift::Struct_Union
    DB_NAME = 1
    TBL_NAME = 2
    PART_NAME = 3
    COL_NAME = 4

    FIELDS = {
      DB_NAME => {:type => ::Thrift::Types::STRING, :name => 'db_name'},
      TBL_NAME => {:type => ::Thrift::Types::STRING, :name => 'tbl_name'},
      PART_NAME => {:type => ::Thrift::Types::STRING, :name => 'part_name'},
      COL_NAME => {:type => ::Thrift::Types::STRING, :name => 'col_name'}
    }

    def struct_fields; FIELDS; end

    def validate
    end

    ::Thrift::Struct.generate_accessors self
  end

  class Get_partition_column_statistics_result
    include ::Thrift::Struct, ::Thrift::Struct_Union
    SUCCESS = 0
    O1 = 1
    O2 = 2
    O3 = 3
    O4 = 4

    FIELDS = {
      SUCCESS => {:type => ::Thrift::Types::STRUCT, :name => 'success', :class => ::ColumnStatistics},
      O1 => {:type => ::Thrift::Types::STRUCT, :name => 'o1', :class => ::NoSuchObjectException},
      O2 => {:type => ::Thrift::Types::STRUCT, :name => 'o2', :class => ::MetaException},
      O3 => {:type => ::Thrift::Types::STRUCT, :name => 'o3', :class => ::InvalidInputException},
      O4 => {:type => ::Thrift::Types::STRUCT, :name => 'o4', :class => ::InvalidObjectException}
    }

    def struct_fields; FIELDS; end

    def validate
    end

    ::Thrift::Struct.generate_accessors self
  end

  class Get_table_statistics_req_args
    include ::Thrift::Struct, ::Thrift::Struct_Union
    REQUEST = 1

    FIELDS = {
      REQUEST => {:type => ::Thrift::Types::STRUCT, :name => 'request', :class => ::TableStatsRequest}
    }

    def struct_fields; FIELDS; end

    def validate
    end

    ::Thrift::Struct.generate_accessors self
  end

  class Get_table_statistics_req_result
    include ::Thrift::Struct, ::Thrift::Struct_Union
    SUCCESS = 0
    O1 = 1
    O2 = 2

    FIELDS = {
      SUCCESS => {:type => ::Thrift::Types::STRUCT, :name => 'success', :class => ::TableStatsResult},
      O1 => {:type => ::Thrift::Types::STRUCT, :name => 'o1', :class => ::NoSuchObjectException},
      O2 => {:type => ::Thrift::Types::STRUCT, :name => 'o2', :class => ::MetaException}
    }

    def struct_fields; FIELDS; end

    def validate
    end

    ::Thrift::Struct.generate_accessors self
  end

  class Get_partitions_statistics_req_args
    include ::Thrift::Struct, ::Thrift::Struct_Union
    REQUEST = 1

    FIELDS = {
      REQUEST => {:type => ::Thrift::Types::STRUCT, :name => 'request', :class => ::PartitionsStatsRequest}
    }

    def struct_fields; FIELDS; end

    def validate
    end

    ::Thrift::Struct.generate_accessors self
  end

  class Get_partitions_statistics_req_result
    include ::Thrift::Struct, ::Thrift::Struct_Union
    SUCCESS = 0
    O1 = 1
    O2 = 2

    FIELDS = {
      SUCCESS => {:type => ::Thrift::Types::STRUCT, :name => 'success', :class => ::PartitionsStatsResult},
      O1 => {:type => ::Thrift::Types::STRUCT, :name => 'o1', :class => ::NoSuchObjectException},
      O2 => {:type => ::Thrift::Types::STRUCT, :name => 'o2', :class => ::MetaException}
    }

    def struct_fields; FIELDS; end

    def validate
    end

    ::Thrift::Struct.generate_accessors self
  end

  class Get_aggr_stats_for_args
    include ::Thrift::Struct, ::Thrift::Struct_Union
    REQUEST = 1

    FIELDS = {
      REQUEST => {:type => ::Thrift::Types::STRUCT, :name => 'request', :class => ::PartitionsStatsRequest}
    }

    def struct_fields; FIELDS; end

    def validate
    end

    ::Thrift::Struct.generate_accessors self
  end

  class Get_aggr_stats_for_result
    include ::Thrift::Struct, ::Thrift::Struct_Union
    SUCCESS = 0
    O1 = 1
    O2 = 2

    FIELDS = {
      SUCCESS => {:type => ::Thrift::Types::STRUCT, :name => 'success', :class => ::AggrStats},
      O1 => {:type => ::Thrift::Types::STRUCT, :name => 'o1', :class => ::NoSuchObjectException},
      O2 => {:type => ::Thrift::Types::STRUCT, :name => 'o2', :class => ::MetaException}
    }

    def struct_fields; FIELDS; end

    def validate
    end

    ::Thrift::Struct.generate_accessors self
  end

  class Set_aggr_stats_for_args
    include ::Thrift::Struct, ::Thrift::Struct_Union
    REQUEST = 1

    FIELDS = {
      REQUEST => {:type => ::Thrift::Types::STRUCT, :name => 'request', :class => ::SetPartitionsStatsRequest}
    }

    def struct_fields; FIELDS; end

    def validate
    end

    ::Thrift::Struct.generate_accessors self
  end

  class Set_aggr_stats_for_result
    include ::Thrift::Struct, ::Thrift::Struct_Union
    SUCCESS = 0
    O1 = 1
    O2 = 2
    O3 = 3
    O4 = 4

    FIELDS = {
      SUCCESS => {:type => ::Thrift::Types::BOOL, :name => 'success'},
      O1 => {:type => ::Thrift::Types::STRUCT, :name => 'o1', :class => ::NoSuchObjectException},
      O2 => {:type => ::Thrift::Types::STRUCT, :name => 'o2', :class => ::InvalidObjectException},
      O3 => {:type => ::Thrift::Types::STRUCT, :name => 'o3', :class => ::MetaException},
      O4 => {:type => ::Thrift::Types::STRUCT, :name => 'o4', :class => ::InvalidInputException}
    }

    def struct_fields; FIELDS; end

    def validate
    end

    ::Thrift::Struct.generate_accessors self
  end

  class Delete_partition_column_statistics_args
    include ::Thrift::Struct, ::Thrift::Struct_Union
    DB_NAME = 1
    TBL_NAME = 2
    PART_NAME = 3
    COL_NAME = 4
    ENGINE = 5

    FIELDS = {
      DB_NAME => {:type => ::Thrift::Types::STRING, :name => 'db_name'},
      TBL_NAME => {:type => ::Thrift::Types::STRING, :name => 'tbl_name'},
      PART_NAME => {:type => ::Thrift::Types::STRING, :name => 'part_name'},
      COL_NAME => {:type => ::Thrift::Types::STRING, :name => 'col_name'},
      ENGINE => {:type => ::Thrift::Types::STRING, :name => 'engine'}
    }

    def struct_fields; FIELDS; end

    def validate
    end

    ::Thrift::Struct.generate_accessors self
  end

  class Delete_partition_column_statistics_result
    include ::Thrift::Struct, ::Thrift::Struct_Union
    SUCCESS = 0
    O1 = 1
    O2 = 2
    O3 = 3
    O4 = 4

    FIELDS = {
      SUCCESS => {:type => ::Thrift::Types::BOOL, :name => 'success'},
      O1 => {:type => ::Thrift::Types::STRUCT, :name => 'o1', :class => ::NoSuchObjectException},
      O2 => {:type => ::Thrift::Types::STRUCT, :name => 'o2', :class => ::MetaException},
      O3 => {:type => ::Thrift::Types::STRUCT, :name => 'o3', :class => ::InvalidObjectException},
      O4 => {:type => ::Thrift::Types::STRUCT, :name => 'o4', :class => ::InvalidInputException}
    }

    def struct_fields; FIELDS; end

    def validate
    end

    ::Thrift::Struct.generate_accessors self
  end

  class Delete_table_column_statistics_args
    include ::Thrift::Struct, ::Thrift::Struct_Union
    DB_NAME = 1
    TBL_NAME = 2
    COL_NAME = 3
    ENGINE = 4

    FIELDS = {
      DB_NAME => {:type => ::Thrift::Types::STRING, :name => 'db_name'},
      TBL_NAME => {:type => ::Thrift::Types::STRING, :name => 'tbl_name'},
      COL_NAME => {:type => ::Thrift::Types::STRING, :name => 'col_name'},
      ENGINE => {:type => ::Thrift::Types::STRING, :name => 'engine'}
    }

    def struct_fields; FIELDS; end

    def validate
    end

    ::Thrift::Struct.generate_accessors self
  end

  class Delete_table_column_statistics_result
    include ::Thrift::Struct, ::Thrift::Struct_Union
    SUCCESS = 0
    O1 = 1
    O2 = 2
    O3 = 3
    O4 = 4

    FIELDS = {
      SUCCESS => {:type => ::Thrift::Types::BOOL, :name => 'success'},
      O1 => {:type => ::Thrift::Types::STRUCT, :name => 'o1', :class => ::NoSuchObjectException},
      O2 => {:type => ::Thrift::Types::STRUCT, :name => 'o2', :class => ::MetaException},
      O3 => {:type => ::Thrift::Types::STRUCT, :name => 'o3', :class => ::InvalidObjectException},
      O4 => {:type => ::Thrift::Types::STRUCT, :name => 'o4', :class => ::InvalidInputException}
    }

    def struct_fields; FIELDS; end

    def validate
    end

    ::Thrift::Struct.generate_accessors self
  end

  class Create_function_args
    include ::Thrift::Struct, ::Thrift::Struct_Union
    FUNC = 1

    FIELDS = {
      FUNC => {:type => ::Thrift::Types::STRUCT, :name => 'func', :class => ::Function}
    }

    def struct_fields; FIELDS; end

    def validate
    end

    ::Thrift::Struct.generate_accessors self
  end

  class Create_function_result
    include ::Thrift::Struct, ::Thrift::Struct_Union
    O1 = 1
    O2 = 2
    O3 = 3
    O4 = 4

    FIELDS = {
      O1 => {:type => ::Thrift::Types::STRUCT, :name => 'o1', :class => ::AlreadyExistsException},
      O2 => {:type => ::Thrift::Types::STRUCT, :name => 'o2', :class => ::InvalidObjectException},
      O3 => {:type => ::Thrift::Types::STRUCT, :name => 'o3', :class => ::MetaException},
      O4 => {:type => ::Thrift::Types::STRUCT, :name => 'o4', :class => ::NoSuchObjectException}
    }

    def struct_fields; FIELDS; end

    def validate
    end

    ::Thrift::Struct.generate_accessors self
  end

  class Drop_function_args
    include ::Thrift::Struct, ::Thrift::Struct_Union
    DBNAME = 1
    FUNCNAME = 2

    FIELDS = {
      DBNAME => {:type => ::Thrift::Types::STRING, :name => 'dbName'},
      FUNCNAME => {:type => ::Thrift::Types::STRING, :name => 'funcName'}
    }

    def struct_fields; FIELDS; end

    def validate
    end

    ::Thrift::Struct.generate_accessors self
  end

  class Drop_function_result
    include ::Thrift::Struct, ::Thrift::Struct_Union
    O1 = 1
    O3 = 2

    FIELDS = {
      O1 => {:type => ::Thrift::Types::STRUCT, :name => 'o1', :class => ::NoSuchObjectException},
      O3 => {:type => ::Thrift::Types::STRUCT, :name => 'o3', :class => ::MetaException}
    }

    def struct_fields; FIELDS; end

    def validate
    end

    ::Thrift::Struct.generate_accessors self
  end

  class Alter_function_args
    include ::Thrift::Struct, ::Thrift::Struct_Union
    DBNAME = 1
    FUNCNAME = 2
    NEWFUNC = 3

    FIELDS = {
      DBNAME => {:type => ::Thrift::Types::STRING, :name => 'dbName'},
      FUNCNAME => {:type => ::Thrift::Types::STRING, :name => 'funcName'},
      NEWFUNC => {:type => ::Thrift::Types::STRUCT, :name => 'newFunc', :class => ::Function}
    }

    def struct_fields; FIELDS; end

    def validate
    end

    ::Thrift::Struct.generate_accessors self
  end

  class Alter_function_result
    include ::Thrift::Struct, ::Thrift::Struct_Union
    O1 = 1
    O2 = 2

    FIELDS = {
      O1 => {:type => ::Thrift::Types::STRUCT, :name => 'o1', :class => ::InvalidOperationException},
      O2 => {:type => ::Thrift::Types::STRUCT, :name => 'o2', :class => ::MetaException}
    }

    def struct_fields; FIELDS; end

    def validate
    end

    ::Thrift::Struct.generate_accessors self
  end

  class Get_functions_args
    include ::Thrift::Struct, ::Thrift::Struct_Union
    DBNAME = 1
    PATTERN = 2

    FIELDS = {
      DBNAME => {:type => ::Thrift::Types::STRING, :name => 'dbName'},
      PATTERN => {:type => ::Thrift::Types::STRING, :name => 'pattern'}
    }

    def struct_fields; FIELDS; end

    def validate
    end

    ::Thrift::Struct.generate_accessors self
  end

  class Get_functions_result
    include ::Thrift::Struct, ::Thrift::Struct_Union
    SUCCESS = 0
    O1 = 1

    FIELDS = {
      SUCCESS => {:type => ::Thrift::Types::LIST, :name => 'success', :element => {:type => ::Thrift::Types::STRING}},
      O1 => {:type => ::Thrift::Types::STRUCT, :name => 'o1', :class => ::MetaException}
    }

    def struct_fields; FIELDS; end

    def validate
    end

    ::Thrift::Struct.generate_accessors self
  end

  class Get_function_args
    include ::Thrift::Struct, ::Thrift::Struct_Union
    DBNAME = 1
    FUNCNAME = 2

    FIELDS = {
      DBNAME => {:type => ::Thrift::Types::STRING, :name => 'dbName'},
      FUNCNAME => {:type => ::Thrift::Types::STRING, :name => 'funcName'}
    }

    def struct_fields; FIELDS; end

    def validate
    end

    ::Thrift::Struct.generate_accessors self
  end

  class Get_function_result
    include ::Thrift::Struct, ::Thrift::Struct_Union
    SUCCESS = 0
    O1 = 1
    O2 = 2

    FIELDS = {
      SUCCESS => {:type => ::Thrift::Types::STRUCT, :name => 'success', :class => ::Function},
      O1 => {:type => ::Thrift::Types::STRUCT, :name => 'o1', :class => ::MetaException},
      O2 => {:type => ::Thrift::Types::STRUCT, :name => 'o2', :class => ::NoSuchObjectException}
    }

    def struct_fields; FIELDS; end

    def validate
    end

    ::Thrift::Struct.generate_accessors self
  end

  class Get_all_functions_args
    include ::Thrift::Struct, ::Thrift::Struct_Union

    FIELDS = {

    }

    def struct_fields; FIELDS; end

    def validate
    end

    ::Thrift::Struct.generate_accessors self
  end

  class Get_all_functions_result
    include ::Thrift::Struct, ::Thrift::Struct_Union
    SUCCESS = 0
    O1 = 1

    FIELDS = {
      SUCCESS => {:type => ::Thrift::Types::STRUCT, :name => 'success', :class => ::GetAllFunctionsResponse},
      O1 => {:type => ::Thrift::Types::STRUCT, :name => 'o1', :class => ::MetaException}
    }

    def struct_fields; FIELDS; end

    def validate
    end

    ::Thrift::Struct.generate_accessors self
  end

  class Create_role_args
    include ::Thrift::Struct, ::Thrift::Struct_Union
    ROLE = 1

    FIELDS = {
      ROLE => {:type => ::Thrift::Types::STRUCT, :name => 'role', :class => ::Role}
    }

    def struct_fields; FIELDS; end

    def validate
    end

    ::Thrift::Struct.generate_accessors self
  end

  class Create_role_result
    include ::Thrift::Struct, ::Thrift::Struct_Union
    SUCCESS = 0
    O1 = 1

    FIELDS = {
      SUCCESS => {:type => ::Thrift::Types::BOOL, :name => 'success'},
      O1 => {:type => ::Thrift::Types::STRUCT, :name => 'o1', :class => ::MetaException}
    }

    def struct_fields; FIELDS; end

    def validate
    end

    ::Thrift::Struct.generate_accessors self
  end

  class Drop_role_args
    include ::Thrift::Struct, ::Thrift::Struct_Union
    ROLE_NAME = 1

    FIELDS = {
      ROLE_NAME => {:type => ::Thrift::Types::STRING, :name => 'role_name'}
    }

    def struct_fields; FIELDS; end

    def validate
    end

    ::Thrift::Struct.generate_accessors self
  end

  class Drop_role_result
    include ::Thrift::Struct, ::Thrift::Struct_Union
    SUCCESS = 0
    O1 = 1

    FIELDS = {
      SUCCESS => {:type => ::Thrift::Types::BOOL, :name => 'success'},
      O1 => {:type => ::Thrift::Types::STRUCT, :name => 'o1', :class => ::MetaException}
    }

    def struct_fields; FIELDS; end

    def validate
    end

    ::Thrift::Struct.generate_accessors self
  end

  class Get_role_names_args
    include ::Thrift::Struct, ::Thrift::Struct_Union

    FIELDS = {

    }

    def struct_fields; FIELDS; end

    def validate
    end

    ::Thrift::Struct.generate_accessors self
  end

  class Get_role_names_result
    include ::Thrift::Struct, ::Thrift::Struct_Union
    SUCCESS = 0
    O1 = 1

    FIELDS = {
      SUCCESS => {:type => ::Thrift::Types::LIST, :name => 'success', :element => {:type => ::Thrift::Types::STRING}},
      O1 => {:type => ::Thrift::Types::STRUCT, :name => 'o1', :class => ::MetaException}
    }

    def struct_fields; FIELDS; end

    def validate
    end

    ::Thrift::Struct.generate_accessors self
  end

  class Grant_role_args
    include ::Thrift::Struct, ::Thrift::Struct_Union
    ROLE_NAME = 1
    PRINCIPAL_NAME = 2
    PRINCIPAL_TYPE = 3
    GRANTOR = 4
    GRANTORTYPE = 5
    GRANT_OPTION = 6

    FIELDS = {
      ROLE_NAME => {:type => ::Thrift::Types::STRING, :name => 'role_name'},
      PRINCIPAL_NAME => {:type => ::Thrift::Types::STRING, :name => 'principal_name'},
      PRINCIPAL_TYPE => {:type => ::Thrift::Types::I32, :name => 'principal_type', :enum_class => ::PrincipalType},
      GRANTOR => {:type => ::Thrift::Types::STRING, :name => 'grantor'},
      GRANTORTYPE => {:type => ::Thrift::Types::I32, :name => 'grantorType', :enum_class => ::PrincipalType},
      GRANT_OPTION => {:type => ::Thrift::Types::BOOL, :name => 'grant_option'}
    }

    def struct_fields; FIELDS; end

    def validate
      unless @principal_type.nil? || ::PrincipalType::VALID_VALUES.include?(@principal_type)
        raise ::Thrift::ProtocolException.new(::Thrift::ProtocolException::UNKNOWN, 'Invalid value of field principal_type!')
      end
      unless @grantorType.nil? || ::PrincipalType::VALID_VALUES.include?(@grantorType)
        raise ::Thrift::ProtocolException.new(::Thrift::ProtocolException::UNKNOWN, 'Invalid value of field grantorType!')
      end
    end

    ::Thrift::Struct.generate_accessors self
  end

  class Grant_role_result
    include ::Thrift::Struct, ::Thrift::Struct_Union
    SUCCESS = 0
    O1 = 1

    FIELDS = {
      SUCCESS => {:type => ::Thrift::Types::BOOL, :name => 'success'},
      O1 => {:type => ::Thrift::Types::STRUCT, :name => 'o1', :class => ::MetaException}
    }

    def struct_fields; FIELDS; end

    def validate
    end

    ::Thrift::Struct.generate_accessors self
  end

  class Revoke_role_args
    include ::Thrift::Struct, ::Thrift::Struct_Union
    ROLE_NAME = 1
    PRINCIPAL_NAME = 2
    PRINCIPAL_TYPE = 3

    FIELDS = {
      ROLE_NAME => {:type => ::Thrift::Types::STRING, :name => 'role_name'},
      PRINCIPAL_NAME => {:type => ::Thrift::Types::STRING, :name => 'principal_name'},
      PRINCIPAL_TYPE => {:type => ::Thrift::Types::I32, :name => 'principal_type', :enum_class => ::PrincipalType}
    }

    def struct_fields; FIELDS; end

    def validate
      unless @principal_type.nil? || ::PrincipalType::VALID_VALUES.include?(@principal_type)
        raise ::Thrift::ProtocolException.new(::Thrift::ProtocolException::UNKNOWN, 'Invalid value of field principal_type!')
      end
    end

    ::Thrift::Struct.generate_accessors self
  end

  class Revoke_role_result
    include ::Thrift::Struct, ::Thrift::Struct_Union
    SUCCESS = 0
    O1 = 1

    FIELDS = {
      SUCCESS => {:type => ::Thrift::Types::BOOL, :name => 'success'},
      O1 => {:type => ::Thrift::Types::STRUCT, :name => 'o1', :class => ::MetaException}
    }

    def struct_fields; FIELDS; end

    def validate
    end

    ::Thrift::Struct.generate_accessors self
  end

  class List_roles_args
    include ::Thrift::Struct, ::Thrift::Struct_Union
    PRINCIPAL_NAME = 1
    PRINCIPAL_TYPE = 2

    FIELDS = {
      PRINCIPAL_NAME => {:type => ::Thrift::Types::STRING, :name => 'principal_name'},
      PRINCIPAL_TYPE => {:type => ::Thrift::Types::I32, :name => 'principal_type', :enum_class => ::PrincipalType}
    }

    def struct_fields; FIELDS; end

    def validate
      unless @principal_type.nil? || ::PrincipalType::VALID_VALUES.include?(@principal_type)
        raise ::Thrift::ProtocolException.new(::Thrift::ProtocolException::UNKNOWN, 'Invalid value of field principal_type!')
      end
    end

    ::Thrift::Struct.generate_accessors self
  end

  class List_roles_result
    include ::Thrift::Struct, ::Thrift::Struct_Union
    SUCCESS = 0
    O1 = 1

    FIELDS = {
      SUCCESS => {:type => ::Thrift::Types::LIST, :name => 'success', :element => {:type => ::Thrift::Types::STRUCT, :class => ::Role}},
      O1 => {:type => ::Thrift::Types::STRUCT, :name => 'o1', :class => ::MetaException}
    }

    def struct_fields; FIELDS; end

    def validate
    end

    ::Thrift::Struct.generate_accessors self
  end

  class Grant_revoke_role_args
    include ::Thrift::Struct, ::Thrift::Struct_Union
    REQUEST = 1

    FIELDS = {
      REQUEST => {:type => ::Thrift::Types::STRUCT, :name => 'request', :class => ::GrantRevokeRoleRequest}
    }

    def struct_fields; FIELDS; end

    def validate
    end

    ::Thrift::Struct.generate_accessors self
  end

  class Grant_revoke_role_result
    include ::Thrift::Struct, ::Thrift::Struct_Union
    SUCCESS = 0
    O1 = 1

    FIELDS = {
      SUCCESS => {:type => ::Thrift::Types::STRUCT, :name => 'success', :class => ::GrantRevokeRoleResponse},
      O1 => {:type => ::Thrift::Types::STRUCT, :name => 'o1', :class => ::MetaException}
    }

    def struct_fields; FIELDS; end

    def validate
    end

    ::Thrift::Struct.generate_accessors self
  end

  class Get_principals_in_role_args
    include ::Thrift::Struct, ::Thrift::Struct_Union
    REQUEST = 1

    FIELDS = {
      REQUEST => {:type => ::Thrift::Types::STRUCT, :name => 'request', :class => ::GetPrincipalsInRoleRequest}
    }

    def struct_fields; FIELDS; end

    def validate
    end

    ::Thrift::Struct.generate_accessors self
  end

  class Get_principals_in_role_result
    include ::Thrift::Struct, ::Thrift::Struct_Union
    SUCCESS = 0
    O1 = 1

    FIELDS = {
      SUCCESS => {:type => ::Thrift::Types::STRUCT, :name => 'success', :class => ::GetPrincipalsInRoleResponse},
      O1 => {:type => ::Thrift::Types::STRUCT, :name => 'o1', :class => ::MetaException}
    }

    def struct_fields; FIELDS; end

    def validate
    end

    ::Thrift::Struct.generate_accessors self
  end

  class Get_role_grants_for_principal_args
    include ::Thrift::Struct, ::Thrift::Struct_Union
    REQUEST = 1

    FIELDS = {
      REQUEST => {:type => ::Thrift::Types::STRUCT, :name => 'request', :class => ::GetRoleGrantsForPrincipalRequest}
    }

    def struct_fields; FIELDS; end

    def validate
    end

    ::Thrift::Struct.generate_accessors self
  end

  class Get_role_grants_for_principal_result
    include ::Thrift::Struct, ::Thrift::Struct_Union
    SUCCESS = 0
    O1 = 1

    FIELDS = {
      SUCCESS => {:type => ::Thrift::Types::STRUCT, :name => 'success', :class => ::GetRoleGrantsForPrincipalResponse},
      O1 => {:type => ::Thrift::Types::STRUCT, :name => 'o1', :class => ::MetaException}
    }

    def struct_fields; FIELDS; end

    def validate
    end

    ::Thrift::Struct.generate_accessors self
  end

  class Get_privilege_set_args
    include ::Thrift::Struct, ::Thrift::Struct_Union
    HIVEOBJECT = 1
    USER_NAME = 2
    GROUP_NAMES = 3

    FIELDS = {
      HIVEOBJECT => {:type => ::Thrift::Types::STRUCT, :name => 'hiveObject', :class => ::HiveObjectRef},
      USER_NAME => {:type => ::Thrift::Types::STRING, :name => 'user_name'},
      GROUP_NAMES => {:type => ::Thrift::Types::LIST, :name => 'group_names', :element => {:type => ::Thrift::Types::STRING}}
    }

    def struct_fields; FIELDS; end

    def validate
    end

    ::Thrift::Struct.generate_accessors self
  end

  class Get_privilege_set_result
    include ::Thrift::Struct, ::Thrift::Struct_Union
    SUCCESS = 0
    O1 = 1

    FIELDS = {
      SUCCESS => {:type => ::Thrift::Types::STRUCT, :name => 'success', :class => ::PrincipalPrivilegeSet},
      O1 => {:type => ::Thrift::Types::STRUCT, :name => 'o1', :class => ::MetaException}
    }

    def struct_fields; FIELDS; end

    def validate
    end

    ::Thrift::Struct.generate_accessors self
  end

  class List_privileges_args
    include ::Thrift::Struct, ::Thrift::Struct_Union
    PRINCIPAL_NAME = 1
    PRINCIPAL_TYPE = 2
    HIVEOBJECT = 3

    FIELDS = {
      PRINCIPAL_NAME => {:type => ::Thrift::Types::STRING, :name => 'principal_name'},
      PRINCIPAL_TYPE => {:type => ::Thrift::Types::I32, :name => 'principal_type', :enum_class => ::PrincipalType},
      HIVEOBJECT => {:type => ::Thrift::Types::STRUCT, :name => 'hiveObject', :class => ::HiveObjectRef}
    }

    def struct_fields; FIELDS; end

    def validate
      unless @principal_type.nil? || ::PrincipalType::VALID_VALUES.include?(@principal_type)
        raise ::Thrift::ProtocolException.new(::Thrift::ProtocolException::UNKNOWN, 'Invalid value of field principal_type!')
      end
    end

    ::Thrift::Struct.generate_accessors self
  end

  class List_privileges_result
    include ::Thrift::Struct, ::Thrift::Struct_Union
    SUCCESS = 0
    O1 = 1

    FIELDS = {
      SUCCESS => {:type => ::Thrift::Types::LIST, :name => 'success', :element => {:type => ::Thrift::Types::STRUCT, :class => ::HiveObjectPrivilege}},
      O1 => {:type => ::Thrift::Types::STRUCT, :name => 'o1', :class => ::MetaException}
    }

    def struct_fields; FIELDS; end

    def validate
    end

    ::Thrift::Struct.generate_accessors self
  end

  class Grant_privileges_args
    include ::Thrift::Struct, ::Thrift::Struct_Union
    PRIVILEGES = 1

    FIELDS = {
      PRIVILEGES => {:type => ::Thrift::Types::STRUCT, :name => 'privileges', :class => ::PrivilegeBag}
    }

    def struct_fields; FIELDS; end

    def validate
    end

    ::Thrift::Struct.generate_accessors self
  end

  class Grant_privileges_result
    include ::Thrift::Struct, ::Thrift::Struct_Union
    SUCCESS = 0
    O1 = 1

    FIELDS = {
      SUCCESS => {:type => ::Thrift::Types::BOOL, :name => 'success'},
      O1 => {:type => ::Thrift::Types::STRUCT, :name => 'o1', :class => ::MetaException}
    }

    def struct_fields; FIELDS; end

    def validate
    end

    ::Thrift::Struct.generate_accessors self
  end

  class Revoke_privileges_args
    include ::Thrift::Struct, ::Thrift::Struct_Union
    PRIVILEGES = 1

    FIELDS = {
      PRIVILEGES => {:type => ::Thrift::Types::STRUCT, :name => 'privileges', :class => ::PrivilegeBag}
    }

    def struct_fields; FIELDS; end

    def validate
    end

    ::Thrift::Struct.generate_accessors self
  end

  class Revoke_privileges_result
    include ::Thrift::Struct, ::Thrift::Struct_Union
    SUCCESS = 0
    O1 = 1

    FIELDS = {
      SUCCESS => {:type => ::Thrift::Types::BOOL, :name => 'success'},
      O1 => {:type => ::Thrift::Types::STRUCT, :name => 'o1', :class => ::MetaException}
    }

    def struct_fields; FIELDS; end

    def validate
    end

    ::Thrift::Struct.generate_accessors self
  end

  class Grant_revoke_privileges_args
    include ::Thrift::Struct, ::Thrift::Struct_Union
    REQUEST = 1

    FIELDS = {
      REQUEST => {:type => ::Thrift::Types::STRUCT, :name => 'request', :class => ::GrantRevokePrivilegeRequest}
    }

    def struct_fields; FIELDS; end

    def validate
    end

    ::Thrift::Struct.generate_accessors self
  end

  class Grant_revoke_privileges_result
    include ::Thrift::Struct, ::Thrift::Struct_Union
    SUCCESS = 0
    O1 = 1

    FIELDS = {
      SUCCESS => {:type => ::Thrift::Types::STRUCT, :name => 'success', :class => ::GrantRevokePrivilegeResponse},
      O1 => {:type => ::Thrift::Types::STRUCT, :name => 'o1', :class => ::MetaException}
    }

    def struct_fields; FIELDS; end

    def validate
    end

    ::Thrift::Struct.generate_accessors self
  end

  class Refresh_privileges_args
    include ::Thrift::Struct, ::Thrift::Struct_Union
    OBJTOREFRESH = 1
    AUTHORIZER = 2
    GRANTREQUEST = 3

    FIELDS = {
      OBJTOREFRESH => {:type => ::Thrift::Types::STRUCT, :name => 'objToRefresh', :class => ::HiveObjectRef},
      AUTHORIZER => {:type => ::Thrift::Types::STRING, :name => 'authorizer'},
      GRANTREQUEST => {:type => ::Thrift::Types::STRUCT, :name => 'grantRequest', :class => ::GrantRevokePrivilegeRequest}
    }

    def struct_fields; FIELDS; end

    def validate
    end

    ::Thrift::Struct.generate_accessors self
  end

  class Refresh_privileges_result
    include ::Thrift::Struct, ::Thrift::Struct_Union
    SUCCESS = 0
    O1 = 1

    FIELDS = {
      SUCCESS => {:type => ::Thrift::Types::STRUCT, :name => 'success', :class => ::GrantRevokePrivilegeResponse},
      O1 => {:type => ::Thrift::Types::STRUCT, :name => 'o1', :class => ::MetaException}
    }

    def struct_fields; FIELDS; end

    def validate
    end

    ::Thrift::Struct.generate_accessors self
  end

  class Set_ugi_args
    include ::Thrift::Struct, ::Thrift::Struct_Union
    USER_NAME = 1
    GROUP_NAMES = 2

    FIELDS = {
      USER_NAME => {:type => ::Thrift::Types::STRING, :name => 'user_name'},
      GROUP_NAMES => {:type => ::Thrift::Types::LIST, :name => 'group_names', :element => {:type => ::Thrift::Types::STRING}}
    }

    def struct_fields; FIELDS; end

    def validate
    end

    ::Thrift::Struct.generate_accessors self
  end

  class Set_ugi_result
    include ::Thrift::Struct, ::Thrift::Struct_Union
    SUCCESS = 0
    O1 = 1

    FIELDS = {
      SUCCESS => {:type => ::Thrift::Types::LIST, :name => 'success', :element => {:type => ::Thrift::Types::STRING}},
      O1 => {:type => ::Thrift::Types::STRUCT, :name => 'o1', :class => ::MetaException}
    }

    def struct_fields; FIELDS; end

    def validate
    end

    ::Thrift::Struct.generate_accessors self
  end

  class Get_delegation_token_args
    include ::Thrift::Struct, ::Thrift::Struct_Union
    TOKEN_OWNER = 1
    RENEWER_KERBEROS_PRINCIPAL_NAME = 2

    FIELDS = {
      TOKEN_OWNER => {:type => ::Thrift::Types::STRING, :name => 'token_owner'},
      RENEWER_KERBEROS_PRINCIPAL_NAME => {:type => ::Thrift::Types::STRING, :name => 'renewer_kerberos_principal_name'}
    }

    def struct_fields; FIELDS; end

    def validate
    end

    ::Thrift::Struct.generate_accessors self
  end

  class Get_delegation_token_result
    include ::Thrift::Struct, ::Thrift::Struct_Union
    SUCCESS = 0
    O1 = 1

    FIELDS = {
      SUCCESS => {:type => ::Thrift::Types::STRING, :name => 'success'},
      O1 => {:type => ::Thrift::Types::STRUCT, :name => 'o1', :class => ::MetaException}
    }

    def struct_fields; FIELDS; end

    def validate
    end

    ::Thrift::Struct.generate_accessors self
  end

  class Renew_delegation_token_args
    include ::Thrift::Struct, ::Thrift::Struct_Union
    TOKEN_STR_FORM = 1

    FIELDS = {
      TOKEN_STR_FORM => {:type => ::Thrift::Types::STRING, :name => 'token_str_form'}
    }

    def struct_fields; FIELDS; end

    def validate
    end

    ::Thrift::Struct.generate_accessors self
  end

  class Renew_delegation_token_result
    include ::Thrift::Struct, ::Thrift::Struct_Union
    SUCCESS = 0
    O1 = 1

    FIELDS = {
      SUCCESS => {:type => ::Thrift::Types::I64, :name => 'success'},
      O1 => {:type => ::Thrift::Types::STRUCT, :name => 'o1', :class => ::MetaException}
    }

    def struct_fields; FIELDS; end

    def validate
    end

    ::Thrift::Struct.generate_accessors self
  end

  class Cancel_delegation_token_args
    include ::Thrift::Struct, ::Thrift::Struct_Union
    TOKEN_STR_FORM = 1

    FIELDS = {
      TOKEN_STR_FORM => {:type => ::Thrift::Types::STRING, :name => 'token_str_form'}
    }

    def struct_fields; FIELDS; end

    def validate
    end

    ::Thrift::Struct.generate_accessors self
  end

  class Cancel_delegation_token_result
    include ::Thrift::Struct, ::Thrift::Struct_Union
    O1 = 1

    FIELDS = {
      O1 => {:type => ::Thrift::Types::STRUCT, :name => 'o1', :class => ::MetaException}
    }

    def struct_fields; FIELDS; end

    def validate
    end

    ::Thrift::Struct.generate_accessors self
  end

  class Add_token_args
    include ::Thrift::Struct, ::Thrift::Struct_Union
    TOKEN_IDENTIFIER = 1
    DELEGATION_TOKEN = 2

    FIELDS = {
      TOKEN_IDENTIFIER => {:type => ::Thrift::Types::STRING, :name => 'token_identifier'},
      DELEGATION_TOKEN => {:type => ::Thrift::Types::STRING, :name => 'delegation_token'}
    }

    def struct_fields; FIELDS; end

    def validate
    end

    ::Thrift::Struct.generate_accessors self
  end

  class Add_token_result
    include ::Thrift::Struct, ::Thrift::Struct_Union
    SUCCESS = 0

    FIELDS = {
      SUCCESS => {:type => ::Thrift::Types::BOOL, :name => 'success'}
    }

    def struct_fields; FIELDS; end

    def validate
    end

    ::Thrift::Struct.generate_accessors self
  end

  class Remove_token_args
    include ::Thrift::Struct, ::Thrift::Struct_Union
    TOKEN_IDENTIFIER = 1

    FIELDS = {
      TOKEN_IDENTIFIER => {:type => ::Thrift::Types::STRING, :name => 'token_identifier'}
    }

    def struct_fields; FIELDS; end

    def validate
    end

    ::Thrift::Struct.generate_accessors self
  end

  class Remove_token_result
    include ::Thrift::Struct, ::Thrift::Struct_Union
    SUCCESS = 0

    FIELDS = {
      SUCCESS => {:type => ::Thrift::Types::BOOL, :name => 'success'}
    }

    def struct_fields; FIELDS; end

    def validate
    end

    ::Thrift::Struct.generate_accessors self
  end

  class Get_token_args
    include ::Thrift::Struct, ::Thrift::Struct_Union
    TOKEN_IDENTIFIER = 1

    FIELDS = {
      TOKEN_IDENTIFIER => {:type => ::Thrift::Types::STRING, :name => 'token_identifier'}
    }

    def struct_fields; FIELDS; end

    def validate
    end

    ::Thrift::Struct.generate_accessors self
  end

  class Get_token_result
    include ::Thrift::Struct, ::Thrift::Struct_Union
    SUCCESS = 0

    FIELDS = {
      SUCCESS => {:type => ::Thrift::Types::STRING, :name => 'success'}
    }

    def struct_fields; FIELDS; end

    def validate
    end

    ::Thrift::Struct.generate_accessors self
  end

  class Get_all_token_identifiers_args
    include ::Thrift::Struct, ::Thrift::Struct_Union

    FIELDS = {

    }

    def struct_fields; FIELDS; end

    def validate
    end

    ::Thrift::Struct.generate_accessors self
  end

  class Get_all_token_identifiers_result
    include ::Thrift::Struct, ::Thrift::Struct_Union
    SUCCESS = 0

    FIELDS = {
      SUCCESS => {:type => ::Thrift::Types::LIST, :name => 'success', :element => {:type => ::Thrift::Types::STRING}}
    }

    def struct_fields; FIELDS; end

    def validate
    end

    ::Thrift::Struct.generate_accessors self
  end

  class Add_master_key_args
    include ::Thrift::Struct, ::Thrift::Struct_Union
    KEY = 1

    FIELDS = {
      KEY => {:type => ::Thrift::Types::STRING, :name => 'key'}
    }

    def struct_fields; FIELDS; end

    def validate
    end

    ::Thrift::Struct.generate_accessors self
  end

  class Add_master_key_result
    include ::Thrift::Struct, ::Thrift::Struct_Union
    SUCCESS = 0
    O1 = 1

    FIELDS = {
      SUCCESS => {:type => ::Thrift::Types::I32, :name => 'success'},
      O1 => {:type => ::Thrift::Types::STRUCT, :name => 'o1', :class => ::MetaException}
    }

    def struct_fields; FIELDS; end

    def validate
    end

    ::Thrift::Struct.generate_accessors self
  end

  class Update_master_key_args
    include ::Thrift::Struct, ::Thrift::Struct_Union
    SEQ_NUMBER = 1
    KEY = 2

    FIELDS = {
      SEQ_NUMBER => {:type => ::Thrift::Types::I32, :name => 'seq_number'},
      KEY => {:type => ::Thrift::Types::STRING, :name => 'key'}
    }

    def struct_fields; FIELDS; end

    def validate
    end

    ::Thrift::Struct.generate_accessors self
  end

  class Update_master_key_result
    include ::Thrift::Struct, ::Thrift::Struct_Union
    O1 = 1
    O2 = 2

    FIELDS = {
      O1 => {:type => ::Thrift::Types::STRUCT, :name => 'o1', :class => ::NoSuchObjectException},
      O2 => {:type => ::Thrift::Types::STRUCT, :name => 'o2', :class => ::MetaException}
    }

    def struct_fields; FIELDS; end

    def validate
    end

    ::Thrift::Struct.generate_accessors self
  end

  class Remove_master_key_args
    include ::Thrift::Struct, ::Thrift::Struct_Union
    KEY_SEQ = 1

    FIELDS = {
      KEY_SEQ => {:type => ::Thrift::Types::I32, :name => 'key_seq'}
    }

    def struct_fields; FIELDS; end

    def validate
    end

    ::Thrift::Struct.generate_accessors self
  end

  class Remove_master_key_result
    include ::Thrift::Struct, ::Thrift::Struct_Union
    SUCCESS = 0

    FIELDS = {
      SUCCESS => {:type => ::Thrift::Types::BOOL, :name => 'success'}
    }

    def struct_fields; FIELDS; end

    def validate
    end

    ::Thrift::Struct.generate_accessors self
  end

  class Get_master_keys_args
    include ::Thrift::Struct, ::Thrift::Struct_Union

    FIELDS = {

    }

    def struct_fields; FIELDS; end

    def validate
    end

    ::Thrift::Struct.generate_accessors self
  end

  class Get_master_keys_result
    include ::Thrift::Struct, ::Thrift::Struct_Union
    SUCCESS = 0

    FIELDS = {
      SUCCESS => {:type => ::Thrift::Types::LIST, :name => 'success', :element => {:type => ::Thrift::Types::STRING}}
    }

    def struct_fields; FIELDS; end

    def validate
    end

    ::Thrift::Struct.generate_accessors self
  end

  class Get_open_txns_args
    include ::Thrift::Struct, ::Thrift::Struct_Union

    FIELDS = {

    }

    def struct_fields; FIELDS; end

    def validate
    end

    ::Thrift::Struct.generate_accessors self
  end

  class Get_open_txns_result
    include ::Thrift::Struct, ::Thrift::Struct_Union
    SUCCESS = 0

    FIELDS = {
      SUCCESS => {:type => ::Thrift::Types::STRUCT, :name => 'success', :class => ::GetOpenTxnsResponse}
    }

    def struct_fields; FIELDS; end

    def validate
    end

    ::Thrift::Struct.generate_accessors self
  end

  class Get_open_txns_info_args
    include ::Thrift::Struct, ::Thrift::Struct_Union

    FIELDS = {

    }

    def struct_fields; FIELDS; end

    def validate
    end

    ::Thrift::Struct.generate_accessors self
  end

  class Get_open_txns_info_result
    include ::Thrift::Struct, ::Thrift::Struct_Union
    SUCCESS = 0

    FIELDS = {
      SUCCESS => {:type => ::Thrift::Types::STRUCT, :name => 'success', :class => ::GetOpenTxnsInfoResponse}
    }

    def struct_fields; FIELDS; end

    def validate
    end

    ::Thrift::Struct.generate_accessors self
  end

  class Open_txns_args
    include ::Thrift::Struct, ::Thrift::Struct_Union
    RQST = 1

    FIELDS = {
      RQST => {:type => ::Thrift::Types::STRUCT, :name => 'rqst', :class => ::OpenTxnRequest}
    }

    def struct_fields; FIELDS; end

    def validate
    end

    ::Thrift::Struct.generate_accessors self
  end

  class Open_txns_result
    include ::Thrift::Struct, ::Thrift::Struct_Union
    SUCCESS = 0

    FIELDS = {
      SUCCESS => {:type => ::Thrift::Types::STRUCT, :name => 'success', :class => ::OpenTxnsResponse}
    }

    def struct_fields; FIELDS; end

    def validate
    end

    ::Thrift::Struct.generate_accessors self
  end

  class Abort_txn_args
    include ::Thrift::Struct, ::Thrift::Struct_Union
    RQST = 1

    FIELDS = {
      RQST => {:type => ::Thrift::Types::STRUCT, :name => 'rqst', :class => ::AbortTxnRequest}
    }

    def struct_fields; FIELDS; end

    def validate
    end

    ::Thrift::Struct.generate_accessors self
  end

  class Abort_txn_result
    include ::Thrift::Struct, ::Thrift::Struct_Union
    O1 = 1

    FIELDS = {
      O1 => {:type => ::Thrift::Types::STRUCT, :name => 'o1', :class => ::NoSuchTxnException}
    }

    def struct_fields; FIELDS; end

    def validate
    end

    ::Thrift::Struct.generate_accessors self
  end

  class Abort_txns_args
    include ::Thrift::Struct, ::Thrift::Struct_Union
    RQST = 1

    FIELDS = {
      RQST => {:type => ::Thrift::Types::STRUCT, :name => 'rqst', :class => ::AbortTxnsRequest}
    }

    def struct_fields; FIELDS; end

    def validate
    end

    ::Thrift::Struct.generate_accessors self
  end

  class Abort_txns_result
    include ::Thrift::Struct, ::Thrift::Struct_Union
    O1 = 1

    FIELDS = {
      O1 => {:type => ::Thrift::Types::STRUCT, :name => 'o1', :class => ::NoSuchTxnException}
    }

    def struct_fields; FIELDS; end

    def validate
    end

    ::Thrift::Struct.generate_accessors self
  end

  class Commit_txn_args
    include ::Thrift::Struct, ::Thrift::Struct_Union
    RQST = 1

    FIELDS = {
      RQST => {:type => ::Thrift::Types::STRUCT, :name => 'rqst', :class => ::CommitTxnRequest}
    }

    def struct_fields; FIELDS; end

    def validate
    end

    ::Thrift::Struct.generate_accessors self
  end

  class Commit_txn_result
    include ::Thrift::Struct, ::Thrift::Struct_Union
    O1 = 1
    O2 = 2

    FIELDS = {
      O1 => {:type => ::Thrift::Types::STRUCT, :name => 'o1', :class => ::NoSuchTxnException},
      O2 => {:type => ::Thrift::Types::STRUCT, :name => 'o2', :class => ::TxnAbortedException}
    }

    def struct_fields; FIELDS; end

    def validate
    end

    ::Thrift::Struct.generate_accessors self
  end

  class Repl_tbl_writeid_state_args
    include ::Thrift::Struct, ::Thrift::Struct_Union
    RQST = 1

    FIELDS = {
      RQST => {:type => ::Thrift::Types::STRUCT, :name => 'rqst', :class => ::ReplTblWriteIdStateRequest}
    }

    def struct_fields; FIELDS; end

    def validate
    end

    ::Thrift::Struct.generate_accessors self
  end

  class Repl_tbl_writeid_state_result
    include ::Thrift::Struct, ::Thrift::Struct_Union

    FIELDS = {

    }

    def struct_fields; FIELDS; end

    def validate
    end

    ::Thrift::Struct.generate_accessors self
  end

  class Get_valid_write_ids_args
    include ::Thrift::Struct, ::Thrift::Struct_Union
    RQST = 1

    FIELDS = {
      RQST => {:type => ::Thrift::Types::STRUCT, :name => 'rqst', :class => ::GetValidWriteIdsRequest}
    }

    def struct_fields; FIELDS; end

    def validate
    end

    ::Thrift::Struct.generate_accessors self
  end

  class Get_valid_write_ids_result
    include ::Thrift::Struct, ::Thrift::Struct_Union
    SUCCESS = 0
    O1 = 1
    O2 = 2

    FIELDS = {
      SUCCESS => {:type => ::Thrift::Types::STRUCT, :name => 'success', :class => ::GetValidWriteIdsResponse},
      O1 => {:type => ::Thrift::Types::STRUCT, :name => 'o1', :class => ::NoSuchTxnException},
      O2 => {:type => ::Thrift::Types::STRUCT, :name => 'o2', :class => ::MetaException}
    }

    def struct_fields; FIELDS; end

    def validate
    end

    ::Thrift::Struct.generate_accessors self
  end

  class Allocate_table_write_ids_args
    include ::Thrift::Struct, ::Thrift::Struct_Union
    RQST = 1

    FIELDS = {
      RQST => {:type => ::Thrift::Types::STRUCT, :name => 'rqst', :class => ::AllocateTableWriteIdsRequest}
    }

    def struct_fields; FIELDS; end

    def validate
    end

    ::Thrift::Struct.generate_accessors self
  end

  class Allocate_table_write_ids_result
    include ::Thrift::Struct, ::Thrift::Struct_Union
    SUCCESS = 0
    O1 = 1
    O2 = 2
    O3 = 3

    FIELDS = {
      SUCCESS => {:type => ::Thrift::Types::STRUCT, :name => 'success', :class => ::AllocateTableWriteIdsResponse},
      O1 => {:type => ::Thrift::Types::STRUCT, :name => 'o1', :class => ::NoSuchTxnException},
      O2 => {:type => ::Thrift::Types::STRUCT, :name => 'o2', :class => ::TxnAbortedException},
      O3 => {:type => ::Thrift::Types::STRUCT, :name => 'o3', :class => ::MetaException}
    }

    def struct_fields; FIELDS; end

    def validate
    end

    ::Thrift::Struct.generate_accessors self
  end

  class Lock_args
    include ::Thrift::Struct, ::Thrift::Struct_Union
    RQST = 1

    FIELDS = {
      RQST => {:type => ::Thrift::Types::STRUCT, :name => 'rqst', :class => ::LockRequest}
    }

    def struct_fields; FIELDS; end

    def validate
    end

    ::Thrift::Struct.generate_accessors self
  end

  class Lock_result
    include ::Thrift::Struct, ::Thrift::Struct_Union
    SUCCESS = 0
    O1 = 1
    O2 = 2

    FIELDS = {
      SUCCESS => {:type => ::Thrift::Types::STRUCT, :name => 'success', :class => ::LockResponse},
      O1 => {:type => ::Thrift::Types::STRUCT, :name => 'o1', :class => ::NoSuchTxnException},
      O2 => {:type => ::Thrift::Types::STRUCT, :name => 'o2', :class => ::TxnAbortedException}
    }

    def struct_fields; FIELDS; end

    def validate
    end

    ::Thrift::Struct.generate_accessors self
  end

  class Check_lock_args
    include ::Thrift::Struct, ::Thrift::Struct_Union
    RQST = 1

    FIELDS = {
      RQST => {:type => ::Thrift::Types::STRUCT, :name => 'rqst', :class => ::CheckLockRequest}
    }

    def struct_fields; FIELDS; end

    def validate
    end

    ::Thrift::Struct.generate_accessors self
  end

  class Check_lock_result
    include ::Thrift::Struct, ::Thrift::Struct_Union
    SUCCESS = 0
    O1 = 1
    O2 = 2
    O3 = 3

    FIELDS = {
      SUCCESS => {:type => ::Thrift::Types::STRUCT, :name => 'success', :class => ::LockResponse},
      O1 => {:type => ::Thrift::Types::STRUCT, :name => 'o1', :class => ::NoSuchTxnException},
      O2 => {:type => ::Thrift::Types::STRUCT, :name => 'o2', :class => ::TxnAbortedException},
      O3 => {:type => ::Thrift::Types::STRUCT, :name => 'o3', :class => ::NoSuchLockException}
    }

    def struct_fields; FIELDS; end

    def validate
    end

    ::Thrift::Struct.generate_accessors self
  end

  class Unlock_args
    include ::Thrift::Struct, ::Thrift::Struct_Union
    RQST = 1

    FIELDS = {
      RQST => {:type => ::Thrift::Types::STRUCT, :name => 'rqst', :class => ::UnlockRequest}
    }

    def struct_fields; FIELDS; end

    def validate
    end

    ::Thrift::Struct.generate_accessors self
  end

  class Unlock_result
    include ::Thrift::Struct, ::Thrift::Struct_Union
    O1 = 1
    O2 = 2

    FIELDS = {
      O1 => {:type => ::Thrift::Types::STRUCT, :name => 'o1', :class => ::NoSuchLockException},
      O2 => {:type => ::Thrift::Types::STRUCT, :name => 'o2', :class => ::TxnOpenException}
    }

    def struct_fields; FIELDS; end

    def validate
    end

    ::Thrift::Struct.generate_accessors self
  end

  class Show_locks_args
    include ::Thrift::Struct, ::Thrift::Struct_Union
    RQST = 1

    FIELDS = {
      RQST => {:type => ::Thrift::Types::STRUCT, :name => 'rqst', :class => ::ShowLocksRequest}
    }

    def struct_fields; FIELDS; end

    def validate
    end

    ::Thrift::Struct.generate_accessors self
  end

  class Show_locks_result
    include ::Thrift::Struct, ::Thrift::Struct_Union
    SUCCESS = 0

    FIELDS = {
      SUCCESS => {:type => ::Thrift::Types::STRUCT, :name => 'success', :class => ::ShowLocksResponse}
    }

    def struct_fields; FIELDS; end

    def validate
    end

    ::Thrift::Struct.generate_accessors self
  end

  class Heartbeat_args
    include ::Thrift::Struct, ::Thrift::Struct_Union
    IDS = 1

    FIELDS = {
      IDS => {:type => ::Thrift::Types::STRUCT, :name => 'ids', :class => ::HeartbeatRequest}
    }

    def struct_fields; FIELDS; end

    def validate
    end

    ::Thrift::Struct.generate_accessors self
  end

  class Heartbeat_result
    include ::Thrift::Struct, ::Thrift::Struct_Union
    O1 = 1
    O2 = 2
    O3 = 3

    FIELDS = {
      O1 => {:type => ::Thrift::Types::STRUCT, :name => 'o1', :class => ::NoSuchLockException},
      O2 => {:type => ::Thrift::Types::STRUCT, :name => 'o2', :class => ::NoSuchTxnException},
      O3 => {:type => ::Thrift::Types::STRUCT, :name => 'o3', :class => ::TxnAbortedException}
    }

    def struct_fields; FIELDS; end

    def validate
    end

    ::Thrift::Struct.generate_accessors self
  end

  class Heartbeat_txn_range_args
    include ::Thrift::Struct, ::Thrift::Struct_Union
    TXNS = 1

    FIELDS = {
      TXNS => {:type => ::Thrift::Types::STRUCT, :name => 'txns', :class => ::HeartbeatTxnRangeRequest}
    }

    def struct_fields; FIELDS; end

    def validate
    end

    ::Thrift::Struct.generate_accessors self
  end

  class Heartbeat_txn_range_result
    include ::Thrift::Struct, ::Thrift::Struct_Union
    SUCCESS = 0

    FIELDS = {
      SUCCESS => {:type => ::Thrift::Types::STRUCT, :name => 'success', :class => ::HeartbeatTxnRangeResponse}
    }

    def struct_fields; FIELDS; end

    def validate
    end

    ::Thrift::Struct.generate_accessors self
  end

  class Compact_args
    include ::Thrift::Struct, ::Thrift::Struct_Union
    RQST = 1

    FIELDS = {
      RQST => {:type => ::Thrift::Types::STRUCT, :name => 'rqst', :class => ::CompactionRequest}
    }

    def struct_fields; FIELDS; end

    def validate
    end

    ::Thrift::Struct.generate_accessors self
  end

  class Compact_result
    include ::Thrift::Struct, ::Thrift::Struct_Union

    FIELDS = {

    }

    def struct_fields; FIELDS; end

    def validate
    end

    ::Thrift::Struct.generate_accessors self
  end

  class Compact2_args
    include ::Thrift::Struct, ::Thrift::Struct_Union
    RQST = 1

    FIELDS = {
      RQST => {:type => ::Thrift::Types::STRUCT, :name => 'rqst', :class => ::CompactionRequest}
    }

    def struct_fields; FIELDS; end

    def validate
    end

    ::Thrift::Struct.generate_accessors self
  end

  class Compact2_result
    include ::Thrift::Struct, ::Thrift::Struct_Union
    SUCCESS = 0

    FIELDS = {
      SUCCESS => {:type => ::Thrift::Types::STRUCT, :name => 'success', :class => ::CompactionResponse}
    }

    def struct_fields; FIELDS; end

    def validate
    end

    ::Thrift::Struct.generate_accessors self
  end

  class Show_compact_args
    include ::Thrift::Struct, ::Thrift::Struct_Union
    RQST = 1

    FIELDS = {
      RQST => {:type => ::Thrift::Types::STRUCT, :name => 'rqst', :class => ::ShowCompactRequest}
    }

    def struct_fields; FIELDS; end

    def validate
    end

    ::Thrift::Struct.generate_accessors self
  end

  class Show_compact_result
    include ::Thrift::Struct, ::Thrift::Struct_Union
    SUCCESS = 0

    FIELDS = {
      SUCCESS => {:type => ::Thrift::Types::STRUCT, :name => 'success', :class => ::ShowCompactResponse}
    }

    def struct_fields; FIELDS; end

    def validate
    end

    ::Thrift::Struct.generate_accessors self
  end

  class Add_dynamic_partitions_args
    include ::Thrift::Struct, ::Thrift::Struct_Union
    RQST = 1

    FIELDS = {
      RQST => {:type => ::Thrift::Types::STRUCT, :name => 'rqst', :class => ::AddDynamicPartitions}
    }

    def struct_fields; FIELDS; end

    def validate
    end

    ::Thrift::Struct.generate_accessors self
  end

  class Add_dynamic_partitions_result
    include ::Thrift::Struct, ::Thrift::Struct_Union
    O1 = 1
    O2 = 2

    FIELDS = {
      O1 => {:type => ::Thrift::Types::STRUCT, :name => 'o1', :class => ::NoSuchTxnException},
      O2 => {:type => ::Thrift::Types::STRUCT, :name => 'o2', :class => ::TxnAbortedException}
    }

    def struct_fields; FIELDS; end

    def validate
    end

    ::Thrift::Struct.generate_accessors self
  end

  class Find_next_compact_args
    include ::Thrift::Struct, ::Thrift::Struct_Union
    WORKERID = 1

    FIELDS = {
      WORKERID => {:type => ::Thrift::Types::STRING, :name => 'workerId'}
    }

    def struct_fields; FIELDS; end

    def validate
    end

    ::Thrift::Struct.generate_accessors self
  end

  class Find_next_compact_result
    include ::Thrift::Struct, ::Thrift::Struct_Union
    SUCCESS = 0
    O1 = 1

    FIELDS = {
      SUCCESS => {:type => ::Thrift::Types::STRUCT, :name => 'success', :class => ::OptionalCompactionInfoStruct},
      O1 => {:type => ::Thrift::Types::STRUCT, :name => 'o1', :class => ::MetaException}
    }

    def struct_fields; FIELDS; end

    def validate
    end

    ::Thrift::Struct.generate_accessors self
  end

  class Update_compactor_state_args
    include ::Thrift::Struct, ::Thrift::Struct_Union
    CR = 1
    TXN_ID = 2

    FIELDS = {
      CR => {:type => ::Thrift::Types::STRUCT, :name => 'cr', :class => ::CompactionInfoStruct},
      TXN_ID => {:type => ::Thrift::Types::I64, :name => 'txn_id'}
    }

    def struct_fields; FIELDS; end

    def validate
    end

    ::Thrift::Struct.generate_accessors self
  end

  class Update_compactor_state_result
    include ::Thrift::Struct, ::Thrift::Struct_Union

    FIELDS = {

    }

    def struct_fields; FIELDS; end

    def validate
    end

    ::Thrift::Struct.generate_accessors self
  end

  class Find_columns_with_stats_args
    include ::Thrift::Struct, ::Thrift::Struct_Union
    CR = 1

    FIELDS = {
      CR => {:type => ::Thrift::Types::STRUCT, :name => 'cr', :class => ::CompactionInfoStruct}
    }

    def struct_fields; FIELDS; end

    def validate
    end

    ::Thrift::Struct.generate_accessors self
  end

  class Find_columns_with_stats_result
    include ::Thrift::Struct, ::Thrift::Struct_Union
    SUCCESS = 0

    FIELDS = {
      SUCCESS => {:type => ::Thrift::Types::LIST, :name => 'success', :element => {:type => ::Thrift::Types::STRING}}
    }

    def struct_fields; FIELDS; end

    def validate
    end

    ::Thrift::Struct.generate_accessors self
  end

  class Mark_cleaned_args
    include ::Thrift::Struct, ::Thrift::Struct_Union
    CR = 1

    FIELDS = {
      CR => {:type => ::Thrift::Types::STRUCT, :name => 'cr', :class => ::CompactionInfoStruct}
    }

    def struct_fields; FIELDS; end

    def validate
    end

    ::Thrift::Struct.generate_accessors self
  end

  class Mark_cleaned_result
    include ::Thrift::Struct, ::Thrift::Struct_Union
    O1 = 1

    FIELDS = {
      O1 => {:type => ::Thrift::Types::STRUCT, :name => 'o1', :class => ::MetaException}
    }

    def struct_fields; FIELDS; end

    def validate
    end

    ::Thrift::Struct.generate_accessors self
  end

  class Mark_compacted_args
    include ::Thrift::Struct, ::Thrift::Struct_Union
    CR = 1

    FIELDS = {
      CR => {:type => ::Thrift::Types::STRUCT, :name => 'cr', :class => ::CompactionInfoStruct}
    }

    def struct_fields; FIELDS; end

    def validate
    end

    ::Thrift::Struct.generate_accessors self
  end

  class Mark_compacted_result
    include ::Thrift::Struct, ::Thrift::Struct_Union
    O1 = 1

    FIELDS = {
      O1 => {:type => ::Thrift::Types::STRUCT, :name => 'o1', :class => ::MetaException}
    }

    def struct_fields; FIELDS; end

    def validate
    end

    ::Thrift::Struct.generate_accessors self
  end

  class Mark_failed_args
    include ::Thrift::Struct, ::Thrift::Struct_Union
    CR = 1

    FIELDS = {
      CR => {:type => ::Thrift::Types::STRUCT, :name => 'cr', :class => ::CompactionInfoStruct}
    }

    def struct_fields; FIELDS; end

    def validate
    end

    ::Thrift::Struct.generate_accessors self
  end

  class Mark_failed_result
    include ::Thrift::Struct, ::Thrift::Struct_Union
    O1 = 1

    FIELDS = {
      O1 => {:type => ::Thrift::Types::STRUCT, :name => 'o1', :class => ::MetaException}
    }

    def struct_fields; FIELDS; end

    def validate
    end

    ::Thrift::Struct.generate_accessors self
  end

  class Set_hadoop_jobid_args
    include ::Thrift::Struct, ::Thrift::Struct_Union
    JOBID = 1
    CQ_ID = 2

    FIELDS = {
      JOBID => {:type => ::Thrift::Types::STRING, :name => 'jobId'},
      CQ_ID => {:type => ::Thrift::Types::I64, :name => 'cq_id'}
    }

    def struct_fields; FIELDS; end

    def validate
    end

    ::Thrift::Struct.generate_accessors self
  end

  class Set_hadoop_jobid_result
    include ::Thrift::Struct, ::Thrift::Struct_Union

    FIELDS = {

    }

    def struct_fields; FIELDS; end

    def validate
    end

    ::Thrift::Struct.generate_accessors self
  end

  class Get_next_notification_args
    include ::Thrift::Struct, ::Thrift::Struct_Union
    RQST = 1

    FIELDS = {
      RQST => {:type => ::Thrift::Types::STRUCT, :name => 'rqst', :class => ::NotificationEventRequest}
    }

    def struct_fields; FIELDS; end

    def validate
    end

    ::Thrift::Struct.generate_accessors self
  end

  class Get_next_notification_result
    include ::Thrift::Struct, ::Thrift::Struct_Union
    SUCCESS = 0

    FIELDS = {
      SUCCESS => {:type => ::Thrift::Types::STRUCT, :name => 'success', :class => ::NotificationEventResponse}
    }

    def struct_fields; FIELDS; end

    def validate
    end

    ::Thrift::Struct.generate_accessors self
  end

  class Get_current_notificationEventId_args
    include ::Thrift::Struct, ::Thrift::Struct_Union

    FIELDS = {

    }

    def struct_fields; FIELDS; end

    def validate
    end

    ::Thrift::Struct.generate_accessors self
  end

  class Get_current_notificationEventId_result
    include ::Thrift::Struct, ::Thrift::Struct_Union
    SUCCESS = 0

    FIELDS = {
      SUCCESS => {:type => ::Thrift::Types::STRUCT, :name => 'success', :class => ::CurrentNotificationEventId}
    }

    def struct_fields; FIELDS; end

    def validate
    end

    ::Thrift::Struct.generate_accessors self
  end

  class Get_notification_events_count_args
    include ::Thrift::Struct, ::Thrift::Struct_Union
    RQST = 1

    FIELDS = {
      RQST => {:type => ::Thrift::Types::STRUCT, :name => 'rqst', :class => ::NotificationEventsCountRequest}
    }

    def struct_fields; FIELDS; end

    def validate
    end

    ::Thrift::Struct.generate_accessors self
  end

  class Get_notification_events_count_result
    include ::Thrift::Struct, ::Thrift::Struct_Union
    SUCCESS = 0

    FIELDS = {
      SUCCESS => {:type => ::Thrift::Types::STRUCT, :name => 'success', :class => ::NotificationEventsCountResponse}
    }

    def struct_fields; FIELDS; end

    def validate
    end

    ::Thrift::Struct.generate_accessors self
  end

  class Fire_listener_event_args
    include ::Thrift::Struct, ::Thrift::Struct_Union
    RQST = 1

    FIELDS = {
      RQST => {:type => ::Thrift::Types::STRUCT, :name => 'rqst', :class => ::FireEventRequest}
    }

    def struct_fields; FIELDS; end

    def validate
    end

    ::Thrift::Struct.generate_accessors self
  end

  class Fire_listener_event_result
    include ::Thrift::Struct, ::Thrift::Struct_Union
    SUCCESS = 0

    FIELDS = {
      SUCCESS => {:type => ::Thrift::Types::STRUCT, :name => 'success', :class => ::FireEventResponse}
    }

    def struct_fields; FIELDS; end

    def validate
    end

    ::Thrift::Struct.generate_accessors self
  end

  class FlushCache_args
    include ::Thrift::Struct, ::Thrift::Struct_Union

    FIELDS = {

    }

    def struct_fields; FIELDS; end

    def validate
    end

    ::Thrift::Struct.generate_accessors self
  end

  class FlushCache_result
    include ::Thrift::Struct, ::Thrift::Struct_Union

    FIELDS = {

    }

    def struct_fields; FIELDS; end

    def validate
    end

    ::Thrift::Struct.generate_accessors self
  end

  class Add_write_notification_log_args
    include ::Thrift::Struct, ::Thrift::Struct_Union
    RQST = 1

    FIELDS = {
      RQST => {:type => ::Thrift::Types::STRUCT, :name => 'rqst', :class => ::WriteNotificationLogRequest}
    }

    def struct_fields; FIELDS; end

    def validate
    end

    ::Thrift::Struct.generate_accessors self
  end

  class Add_write_notification_log_result
    include ::Thrift::Struct, ::Thrift::Struct_Union
    SUCCESS = 0

    FIELDS = {
      SUCCESS => {:type => ::Thrift::Types::STRUCT, :name => 'success', :class => ::WriteNotificationLogResponse}
    }

    def struct_fields; FIELDS; end

    def validate
    end

    ::Thrift::Struct.generate_accessors self
  end

  class Cm_recycle_args
    include ::Thrift::Struct, ::Thrift::Struct_Union
    REQUEST = 1

    FIELDS = {
      REQUEST => {:type => ::Thrift::Types::STRUCT, :name => 'request', :class => ::CmRecycleRequest}
    }

    def struct_fields; FIELDS; end

    def validate
    end

    ::Thrift::Struct.generate_accessors self
  end

  class Cm_recycle_result
    include ::Thrift::Struct, ::Thrift::Struct_Union
    SUCCESS = 0
    O1 = 1

    FIELDS = {
      SUCCESS => {:type => ::Thrift::Types::STRUCT, :name => 'success', :class => ::CmRecycleResponse},
      O1 => {:type => ::Thrift::Types::STRUCT, :name => 'o1', :class => ::MetaException}
    }

    def struct_fields; FIELDS; end

    def validate
    end

    ::Thrift::Struct.generate_accessors self
  end

  class Get_file_metadata_by_expr_args
    include ::Thrift::Struct, ::Thrift::Struct_Union
    REQ = 1

    FIELDS = {
      REQ => {:type => ::Thrift::Types::STRUCT, :name => 'req', :class => ::GetFileMetadataByExprRequest}
    }

    def struct_fields; FIELDS; end

    def validate
    end

    ::Thrift::Struct.generate_accessors self
  end

  class Get_file_metadata_by_expr_result
    include ::Thrift::Struct, ::Thrift::Struct_Union
    SUCCESS = 0

    FIELDS = {
      SUCCESS => {:type => ::Thrift::Types::STRUCT, :name => 'success', :class => ::GetFileMetadataByExprResult}
    }

    def struct_fields; FIELDS; end

    def validate
    end

    ::Thrift::Struct.generate_accessors self
  end

  class Get_file_metadata_args
    include ::Thrift::Struct, ::Thrift::Struct_Union
    REQ = 1

    FIELDS = {
      REQ => {:type => ::Thrift::Types::STRUCT, :name => 'req', :class => ::GetFileMetadataRequest}
    }

    def struct_fields; FIELDS; end

    def validate
    end

    ::Thrift::Struct.generate_accessors self
  end

  class Get_file_metadata_result
    include ::Thrift::Struct, ::Thrift::Struct_Union
    SUCCESS = 0

    FIELDS = {
      SUCCESS => {:type => ::Thrift::Types::STRUCT, :name => 'success', :class => ::GetFileMetadataResult}
    }

    def struct_fields; FIELDS; end

    def validate
    end

    ::Thrift::Struct.generate_accessors self
  end

  class Put_file_metadata_args
    include ::Thrift::Struct, ::Thrift::Struct_Union
    REQ = 1

    FIELDS = {
      REQ => {:type => ::Thrift::Types::STRUCT, :name => 'req', :class => ::PutFileMetadataRequest}
    }

    def struct_fields; FIELDS; end

    def validate
    end

    ::Thrift::Struct.generate_accessors self
  end

  class Put_file_metadata_result
    include ::Thrift::Struct, ::Thrift::Struct_Union
    SUCCESS = 0

    FIELDS = {
      SUCCESS => {:type => ::Thrift::Types::STRUCT, :name => 'success', :class => ::PutFileMetadataResult}
    }

    def struct_fields; FIELDS; end

    def validate
    end

    ::Thrift::Struct.generate_accessors self
  end

  class Clear_file_metadata_args
    include ::Thrift::Struct, ::Thrift::Struct_Union
    REQ = 1

    FIELDS = {
      REQ => {:type => ::Thrift::Types::STRUCT, :name => 'req', :class => ::ClearFileMetadataRequest}
    }

    def struct_fields; FIELDS; end

    def validate
    end

    ::Thrift::Struct.generate_accessors self
  end

  class Clear_file_metadata_result
    include ::Thrift::Struct, ::Thrift::Struct_Union
    SUCCESS = 0

    FIELDS = {
      SUCCESS => {:type => ::Thrift::Types::STRUCT, :name => 'success', :class => ::ClearFileMetadataResult}
    }

    def struct_fields; FIELDS; end

    def validate
    end

    ::Thrift::Struct.generate_accessors self
  end

  class Cache_file_metadata_args
    include ::Thrift::Struct, ::Thrift::Struct_Union
    REQ = 1

    FIELDS = {
      REQ => {:type => ::Thrift::Types::STRUCT, :name => 'req', :class => ::CacheFileMetadataRequest}
    }

    def struct_fields; FIELDS; end

    def validate
    end

    ::Thrift::Struct.generate_accessors self
  end

  class Cache_file_metadata_result
    include ::Thrift::Struct, ::Thrift::Struct_Union
    SUCCESS = 0

    FIELDS = {
      SUCCESS => {:type => ::Thrift::Types::STRUCT, :name => 'success', :class => ::CacheFileMetadataResult}
    }

    def struct_fields; FIELDS; end

    def validate
    end

    ::Thrift::Struct.generate_accessors self
  end

  class Get_metastore_db_uuid_args
    include ::Thrift::Struct, ::Thrift::Struct_Union

    FIELDS = {

    }

    def struct_fields; FIELDS; end

    def validate
    end

    ::Thrift::Struct.generate_accessors self
  end

  class Get_metastore_db_uuid_result
    include ::Thrift::Struct, ::Thrift::Struct_Union
    SUCCESS = 0
    O1 = 1

    FIELDS = {
      SUCCESS => {:type => ::Thrift::Types::STRING, :name => 'success'},
      O1 => {:type => ::Thrift::Types::STRUCT, :name => 'o1', :class => ::MetaException}
    }

    def struct_fields; FIELDS; end

    def validate
    end

    ::Thrift::Struct.generate_accessors self
  end

  class Create_resource_plan_args
    include ::Thrift::Struct, ::Thrift::Struct_Union
    REQUEST = 1

    FIELDS = {
      REQUEST => {:type => ::Thrift::Types::STRUCT, :name => 'request', :class => ::WMCreateResourcePlanRequest}
    }

    def struct_fields; FIELDS; end

    def validate
    end

    ::Thrift::Struct.generate_accessors self
  end

  class Create_resource_plan_result
    include ::Thrift::Struct, ::Thrift::Struct_Union
    SUCCESS = 0
    O1 = 1
    O2 = 2
    O3 = 3

    FIELDS = {
      SUCCESS => {:type => ::Thrift::Types::STRUCT, :name => 'success', :class => ::WMCreateResourcePlanResponse},
      O1 => {:type => ::Thrift::Types::STRUCT, :name => 'o1', :class => ::AlreadyExistsException},
      O2 => {:type => ::Thrift::Types::STRUCT, :name => 'o2', :class => ::InvalidObjectException},
      O3 => {:type => ::Thrift::Types::STRUCT, :name => 'o3', :class => ::MetaException}
    }

    def struct_fields; FIELDS; end

    def validate
    end

    ::Thrift::Struct.generate_accessors self
  end

  class Get_resource_plan_args
    include ::Thrift::Struct, ::Thrift::Struct_Union
    REQUEST = 1

    FIELDS = {
      REQUEST => {:type => ::Thrift::Types::STRUCT, :name => 'request', :class => ::WMGetResourcePlanRequest}
    }

    def struct_fields; FIELDS; end

    def validate
    end

    ::Thrift::Struct.generate_accessors self
  end

  class Get_resource_plan_result
    include ::Thrift::Struct, ::Thrift::Struct_Union
    SUCCESS = 0
    O1 = 1
    O2 = 2

    FIELDS = {
      SUCCESS => {:type => ::Thrift::Types::STRUCT, :name => 'success', :class => ::WMGetResourcePlanResponse},
      O1 => {:type => ::Thrift::Types::STRUCT, :name => 'o1', :class => ::NoSuchObjectException},
      O2 => {:type => ::Thrift::Types::STRUCT, :name => 'o2', :class => ::MetaException}
    }

    def struct_fields; FIELDS; end

    def validate
    end

    ::Thrift::Struct.generate_accessors self
  end

  class Get_active_resource_plan_args
    include ::Thrift::Struct, ::Thrift::Struct_Union
    REQUEST = 1

    FIELDS = {
      REQUEST => {:type => ::Thrift::Types::STRUCT, :name => 'request', :class => ::WMGetActiveResourcePlanRequest}
    }

    def struct_fields; FIELDS; end

    def validate
    end

    ::Thrift::Struct.generate_accessors self
  end

  class Get_active_resource_plan_result
    include ::Thrift::Struct, ::Thrift::Struct_Union
    SUCCESS = 0
    O2 = 1

    FIELDS = {
      SUCCESS => {:type => ::Thrift::Types::STRUCT, :name => 'success', :class => ::WMGetActiveResourcePlanResponse},
      O2 => {:type => ::Thrift::Types::STRUCT, :name => 'o2', :class => ::MetaException}
    }

    def struct_fields; FIELDS; end

    def validate
    end

    ::Thrift::Struct.generate_accessors self
  end

  class Get_all_resource_plans_args
    include ::Thrift::Struct, ::Thrift::Struct_Union
    REQUEST = 1

    FIELDS = {
      REQUEST => {:type => ::Thrift::Types::STRUCT, :name => 'request', :class => ::WMGetAllResourcePlanRequest}
    }

    def struct_fields; FIELDS; end

    def validate
    end

    ::Thrift::Struct.generate_accessors self
  end

  class Get_all_resource_plans_result
    include ::Thrift::Struct, ::Thrift::Struct_Union
    SUCCESS = 0
    O1 = 1

    FIELDS = {
      SUCCESS => {:type => ::Thrift::Types::STRUCT, :name => 'success', :class => ::WMGetAllResourcePlanResponse},
      O1 => {:type => ::Thrift::Types::STRUCT, :name => 'o1', :class => ::MetaException}
    }

    def struct_fields; FIELDS; end

    def validate
    end

    ::Thrift::Struct.generate_accessors self
  end

  class Alter_resource_plan_args
    include ::Thrift::Struct, ::Thrift::Struct_Union
    REQUEST = 1

    FIELDS = {
      REQUEST => {:type => ::Thrift::Types::STRUCT, :name => 'request', :class => ::WMAlterResourcePlanRequest}
    }

    def struct_fields; FIELDS; end

    def validate
    end

    ::Thrift::Struct.generate_accessors self
  end

  class Alter_resource_plan_result
    include ::Thrift::Struct, ::Thrift::Struct_Union
    SUCCESS = 0
    O1 = 1
    O2 = 2
    O3 = 3

    FIELDS = {
      SUCCESS => {:type => ::Thrift::Types::STRUCT, :name => 'success', :class => ::WMAlterResourcePlanResponse},
      O1 => {:type => ::Thrift::Types::STRUCT, :name => 'o1', :class => ::NoSuchObjectException},
      O2 => {:type => ::Thrift::Types::STRUCT, :name => 'o2', :class => ::InvalidOperationException},
      O3 => {:type => ::Thrift::Types::STRUCT, :name => 'o3', :class => ::MetaException}
    }

    def struct_fields; FIELDS; end

    def validate
    end

    ::Thrift::Struct.generate_accessors self
  end

  class Validate_resource_plan_args
    include ::Thrift::Struct, ::Thrift::Struct_Union
    REQUEST = 1

    FIELDS = {
      REQUEST => {:type => ::Thrift::Types::STRUCT, :name => 'request', :class => ::WMValidateResourcePlanRequest}
    }

    def struct_fields; FIELDS; end

    def validate
    end

    ::Thrift::Struct.generate_accessors self
  end

  class Validate_resource_plan_result
    include ::Thrift::Struct, ::Thrift::Struct_Union
    SUCCESS = 0
    O1 = 1
    O2 = 2

    FIELDS = {
      SUCCESS => {:type => ::Thrift::Types::STRUCT, :name => 'success', :class => ::WMValidateResourcePlanResponse},
      O1 => {:type => ::Thrift::Types::STRUCT, :name => 'o1', :class => ::NoSuchObjectException},
      O2 => {:type => ::Thrift::Types::STRUCT, :name => 'o2', :class => ::MetaException}
    }

    def struct_fields; FIELDS; end

    def validate
    end

    ::Thrift::Struct.generate_accessors self
  end

  class Drop_resource_plan_args
    include ::Thrift::Struct, ::Thrift::Struct_Union
    REQUEST = 1

    FIELDS = {
      REQUEST => {:type => ::Thrift::Types::STRUCT, :name => 'request', :class => ::WMDropResourcePlanRequest}
    }

    def struct_fields; FIELDS; end

    def validate
    end

    ::Thrift::Struct.generate_accessors self
  end

  class Drop_resource_plan_result
    include ::Thrift::Struct, ::Thrift::Struct_Union
    SUCCESS = 0
    O1 = 1
    O2 = 2
    O3 = 3

    FIELDS = {
      SUCCESS => {:type => ::Thrift::Types::STRUCT, :name => 'success', :class => ::WMDropResourcePlanResponse},
      O1 => {:type => ::Thrift::Types::STRUCT, :name => 'o1', :class => ::NoSuchObjectException},
      O2 => {:type => ::Thrift::Types::STRUCT, :name => 'o2', :class => ::InvalidOperationException},
      O3 => {:type => ::Thrift::Types::STRUCT, :name => 'o3', :class => ::MetaException}
    }

    def struct_fields; FIELDS; end

    def validate
    end

    ::Thrift::Struct.generate_accessors self
  end

  class Create_wm_trigger_args
    include ::Thrift::Struct, ::Thrift::Struct_Union
    REQUEST = 1

    FIELDS = {
      REQUEST => {:type => ::Thrift::Types::STRUCT, :name => 'request', :class => ::WMCreateTriggerRequest}
    }

    def struct_fields; FIELDS; end

    def validate
    end

    ::Thrift::Struct.generate_accessors self
  end

  class Create_wm_trigger_result
    include ::Thrift::Struct, ::Thrift::Struct_Union
    SUCCESS = 0
    O1 = 1
    O2 = 2
    O3 = 3
    O4 = 4

    FIELDS = {
      SUCCESS => {:type => ::Thrift::Types::STRUCT, :name => 'success', :class => ::WMCreateTriggerResponse},
      O1 => {:type => ::Thrift::Types::STRUCT, :name => 'o1', :class => ::AlreadyExistsException},
      O2 => {:type => ::Thrift::Types::STRUCT, :name => 'o2', :class => ::NoSuchObjectException},
      O3 => {:type => ::Thrift::Types::STRUCT, :name => 'o3', :class => ::InvalidObjectException},
      O4 => {:type => ::Thrift::Types::STRUCT, :name => 'o4', :class => ::MetaException}
    }

    def struct_fields; FIELDS; end

    def validate
    end

    ::Thrift::Struct.generate_accessors self
  end

  class Alter_wm_trigger_args
    include ::Thrift::Struct, ::Thrift::Struct_Union
    REQUEST = 1

    FIELDS = {
      REQUEST => {:type => ::Thrift::Types::STRUCT, :name => 'request', :class => ::WMAlterTriggerRequest}
    }

    def struct_fields; FIELDS; end

    def validate
    end

    ::Thrift::Struct.generate_accessors self
  end

  class Alter_wm_trigger_result
    include ::Thrift::Struct, ::Thrift::Struct_Union
    SUCCESS = 0
    O1 = 1
    O2 = 2
    O3 = 3

    FIELDS = {
      SUCCESS => {:type => ::Thrift::Types::STRUCT, :name => 'success', :class => ::WMAlterTriggerResponse},
      O1 => {:type => ::Thrift::Types::STRUCT, :name => 'o1', :class => ::NoSuchObjectException},
      O2 => {:type => ::Thrift::Types::STRUCT, :name => 'o2', :class => ::InvalidObjectException},
      O3 => {:type => ::Thrift::Types::STRUCT, :name => 'o3', :class => ::MetaException}
    }

    def struct_fields; FIELDS; end

    def validate
    end

    ::Thrift::Struct.generate_accessors self
  end

  class Drop_wm_trigger_args
    include ::Thrift::Struct, ::Thrift::Struct_Union
    REQUEST = 1

    FIELDS = {
      REQUEST => {:type => ::Thrift::Types::STRUCT, :name => 'request', :class => ::WMDropTriggerRequest}
    }

    def struct_fields; FIELDS; end

    def validate
    end

    ::Thrift::Struct.generate_accessors self
  end

  class Drop_wm_trigger_result
    include ::Thrift::Struct, ::Thrift::Struct_Union
    SUCCESS = 0
    O1 = 1
    O2 = 2
    O3 = 3

    FIELDS = {
      SUCCESS => {:type => ::Thrift::Types::STRUCT, :name => 'success', :class => ::WMDropTriggerResponse},
      O1 => {:type => ::Thrift::Types::STRUCT, :name => 'o1', :class => ::NoSuchObjectException},
      O2 => {:type => ::Thrift::Types::STRUCT, :name => 'o2', :class => ::InvalidOperationException},
      O3 => {:type => ::Thrift::Types::STRUCT, :name => 'o3', :class => ::MetaException}
    }

    def struct_fields; FIELDS; end

    def validate
    end

    ::Thrift::Struct.generate_accessors self
  end

  class Get_triggers_for_resourceplan_args
    include ::Thrift::Struct, ::Thrift::Struct_Union
    REQUEST = 1

    FIELDS = {
      REQUEST => {:type => ::Thrift::Types::STRUCT, :name => 'request', :class => ::WMGetTriggersForResourePlanRequest}
    }

    def struct_fields; FIELDS; end

    def validate
    end

    ::Thrift::Struct.generate_accessors self
  end

  class Get_triggers_for_resourceplan_result
    include ::Thrift::Struct, ::Thrift::Struct_Union
    SUCCESS = 0
    O1 = 1
    O2 = 2

    FIELDS = {
      SUCCESS => {:type => ::Thrift::Types::STRUCT, :name => 'success', :class => ::WMGetTriggersForResourePlanResponse},
      O1 => {:type => ::Thrift::Types::STRUCT, :name => 'o1', :class => ::NoSuchObjectException},
      O2 => {:type => ::Thrift::Types::STRUCT, :name => 'o2', :class => ::MetaException}
    }

    def struct_fields; FIELDS; end

    def validate
    end

    ::Thrift::Struct.generate_accessors self
  end

  class Create_wm_pool_args
    include ::Thrift::Struct, ::Thrift::Struct_Union
    REQUEST = 1

    FIELDS = {
      REQUEST => {:type => ::Thrift::Types::STRUCT, :name => 'request', :class => ::WMCreatePoolRequest}
    }

    def struct_fields; FIELDS; end

    def validate
    end

    ::Thrift::Struct.generate_accessors self
  end

  class Create_wm_pool_result
    include ::Thrift::Struct, ::Thrift::Struct_Union
    SUCCESS = 0
    O1 = 1
    O2 = 2
    O3 = 3
    O4 = 4

    FIELDS = {
      SUCCESS => {:type => ::Thrift::Types::STRUCT, :name => 'success', :class => ::WMCreatePoolResponse},
      O1 => {:type => ::Thrift::Types::STRUCT, :name => 'o1', :class => ::AlreadyExistsException},
      O2 => {:type => ::Thrift::Types::STRUCT, :name => 'o2', :class => ::NoSuchObjectException},
      O3 => {:type => ::Thrift::Types::STRUCT, :name => 'o3', :class => ::InvalidObjectException},
      O4 => {:type => ::Thrift::Types::STRUCT, :name => 'o4', :class => ::MetaException}
    }

    def struct_fields; FIELDS; end

    def validate
    end

    ::Thrift::Struct.generate_accessors self
  end

  class Alter_wm_pool_args
    include ::Thrift::Struct, ::Thrift::Struct_Union
    REQUEST = 1

    FIELDS = {
      REQUEST => {:type => ::Thrift::Types::STRUCT, :name => 'request', :class => ::WMAlterPoolRequest}
    }

    def struct_fields; FIELDS; end

    def validate
    end

    ::Thrift::Struct.generate_accessors self
  end

  class Alter_wm_pool_result
    include ::Thrift::Struct, ::Thrift::Struct_Union
    SUCCESS = 0
    O1 = 1
    O2 = 2
    O3 = 3
    O4 = 4

    FIELDS = {
      SUCCESS => {:type => ::Thrift::Types::STRUCT, :name => 'success', :class => ::WMAlterPoolResponse},
      O1 => {:type => ::Thrift::Types::STRUCT, :name => 'o1', :class => ::AlreadyExistsException},
      O2 => {:type => ::Thrift::Types::STRUCT, :name => 'o2', :class => ::NoSuchObjectException},
      O3 => {:type => ::Thrift::Types::STRUCT, :name => 'o3', :class => ::InvalidObjectException},
      O4 => {:type => ::Thrift::Types::STRUCT, :name => 'o4', :class => ::MetaException}
    }

    def struct_fields; FIELDS; end

    def validate
    end

    ::Thrift::Struct.generate_accessors self
  end

  class Drop_wm_pool_args
    include ::Thrift::Struct, ::Thrift::Struct_Union
    REQUEST = 1

    FIELDS = {
      REQUEST => {:type => ::Thrift::Types::STRUCT, :name => 'request', :class => ::WMDropPoolRequest}
    }

    def struct_fields; FIELDS; end

    def validate
    end

    ::Thrift::Struct.generate_accessors self
  end

  class Drop_wm_pool_result
    include ::Thrift::Struct, ::Thrift::Struct_Union
    SUCCESS = 0
    O1 = 1
    O2 = 2
    O3 = 3

    FIELDS = {
      SUCCESS => {:type => ::Thrift::Types::STRUCT, :name => 'success', :class => ::WMDropPoolResponse},
      O1 => {:type => ::Thrift::Types::STRUCT, :name => 'o1', :class => ::NoSuchObjectException},
      O2 => {:type => ::Thrift::Types::STRUCT, :name => 'o2', :class => ::InvalidOperationException},
      O3 => {:type => ::Thrift::Types::STRUCT, :name => 'o3', :class => ::MetaException}
    }

    def struct_fields; FIELDS; end

    def validate
    end

    ::Thrift::Struct.generate_accessors self
  end

  class Create_or_update_wm_mapping_args
    include ::Thrift::Struct, ::Thrift::Struct_Union
    REQUEST = 1

    FIELDS = {
      REQUEST => {:type => ::Thrift::Types::STRUCT, :name => 'request', :class => ::WMCreateOrUpdateMappingRequest}
    }

    def struct_fields; FIELDS; end

    def validate
    end

    ::Thrift::Struct.generate_accessors self
  end

  class Create_or_update_wm_mapping_result
    include ::Thrift::Struct, ::Thrift::Struct_Union
    SUCCESS = 0
    O1 = 1
    O2 = 2
    O3 = 3
    O4 = 4

    FIELDS = {
      SUCCESS => {:type => ::Thrift::Types::STRUCT, :name => 'success', :class => ::WMCreateOrUpdateMappingResponse},
      O1 => {:type => ::Thrift::Types::STRUCT, :name => 'o1', :class => ::AlreadyExistsException},
      O2 => {:type => ::Thrift::Types::STRUCT, :name => 'o2', :class => ::NoSuchObjectException},
      O3 => {:type => ::Thrift::Types::STRUCT, :name => 'o3', :class => ::InvalidObjectException},
      O4 => {:type => ::Thrift::Types::STRUCT, :name => 'o4', :class => ::MetaException}
    }

    def struct_fields; FIELDS; end

    def validate
    end

    ::Thrift::Struct.generate_accessors self
  end

  class Drop_wm_mapping_args
    include ::Thrift::Struct, ::Thrift::Struct_Union
    REQUEST = 1

    FIELDS = {
      REQUEST => {:type => ::Thrift::Types::STRUCT, :name => 'request', :class => ::WMDropMappingRequest}
    }

    def struct_fields; FIELDS; end

    def validate
    end

    ::Thrift::Struct.generate_accessors self
  end

  class Drop_wm_mapping_result
    include ::Thrift::Struct, ::Thrift::Struct_Union
    SUCCESS = 0
    O1 = 1
    O2 = 2
    O3 = 3

    FIELDS = {
      SUCCESS => {:type => ::Thrift::Types::STRUCT, :name => 'success', :class => ::WMDropMappingResponse},
      O1 => {:type => ::Thrift::Types::STRUCT, :name => 'o1', :class => ::NoSuchObjectException},
      O2 => {:type => ::Thrift::Types::STRUCT, :name => 'o2', :class => ::InvalidOperationException},
      O3 => {:type => ::Thrift::Types::STRUCT, :name => 'o3', :class => ::MetaException}
    }

    def struct_fields; FIELDS; end

    def validate
    end

    ::Thrift::Struct.generate_accessors self
  end

  class Create_or_drop_wm_trigger_to_pool_mapping_args
    include ::Thrift::Struct, ::Thrift::Struct_Union
    REQUEST = 1

    FIELDS = {
      REQUEST => {:type => ::Thrift::Types::STRUCT, :name => 'request', :class => ::WMCreateOrDropTriggerToPoolMappingRequest}
    }

    def struct_fields; FIELDS; end

    def validate
    end

    ::Thrift::Struct.generate_accessors self
  end

  class Create_or_drop_wm_trigger_to_pool_mapping_result
    include ::Thrift::Struct, ::Thrift::Struct_Union
    SUCCESS = 0
    O1 = 1
    O2 = 2
    O3 = 3
    O4 = 4

    FIELDS = {
      SUCCESS => {:type => ::Thrift::Types::STRUCT, :name => 'success', :class => ::WMCreateOrDropTriggerToPoolMappingResponse},
      O1 => {:type => ::Thrift::Types::STRUCT, :name => 'o1', :class => ::AlreadyExistsException},
      O2 => {:type => ::Thrift::Types::STRUCT, :name => 'o2', :class => ::NoSuchObjectException},
      O3 => {:type => ::Thrift::Types::STRUCT, :name => 'o3', :class => ::InvalidObjectException},
      O4 => {:type => ::Thrift::Types::STRUCT, :name => 'o4', :class => ::MetaException}
    }

    def struct_fields; FIELDS; end

    def validate
    end

    ::Thrift::Struct.generate_accessors self
  end

  class Create_ischema_args
    include ::Thrift::Struct, ::Thrift::Struct_Union
    SCHEMA = 1

    FIELDS = {
      SCHEMA => {:type => ::Thrift::Types::STRUCT, :name => 'schema', :class => ::ISchema}
    }

    def struct_fields; FIELDS; end

    def validate
    end

    ::Thrift::Struct.generate_accessors self
  end

  class Create_ischema_result
    include ::Thrift::Struct, ::Thrift::Struct_Union
    O1 = 1
    O2 = 2
    O3 = 3

    FIELDS = {
      O1 => {:type => ::Thrift::Types::STRUCT, :name => 'o1', :class => ::AlreadyExistsException},
      O2 => {:type => ::Thrift::Types::STRUCT, :name => 'o2', :class => ::NoSuchObjectException},
      O3 => {:type => ::Thrift::Types::STRUCT, :name => 'o3', :class => ::MetaException}
    }

    def struct_fields; FIELDS; end

    def validate
    end

    ::Thrift::Struct.generate_accessors self
  end

  class Alter_ischema_args
    include ::Thrift::Struct, ::Thrift::Struct_Union
    RQST = 1

    FIELDS = {
      RQST => {:type => ::Thrift::Types::STRUCT, :name => 'rqst', :class => ::AlterISchemaRequest}
    }

    def struct_fields; FIELDS; end

    def validate
    end

    ::Thrift::Struct.generate_accessors self
  end

  class Alter_ischema_result
    include ::Thrift::Struct, ::Thrift::Struct_Union
    O1 = 1
    O2 = 2

    FIELDS = {
      O1 => {:type => ::Thrift::Types::STRUCT, :name => 'o1', :class => ::NoSuchObjectException},
      O2 => {:type => ::Thrift::Types::STRUCT, :name => 'o2', :class => ::MetaException}
    }

    def struct_fields; FIELDS; end

    def validate
    end

    ::Thrift::Struct.generate_accessors self
  end

  class Get_ischema_args
    include ::Thrift::Struct, ::Thrift::Struct_Union
    NAME = 1

    FIELDS = {
      NAME => {:type => ::Thrift::Types::STRUCT, :name => 'name', :class => ::ISchemaName}
    }

    def struct_fields; FIELDS; end

    def validate
    end

    ::Thrift::Struct.generate_accessors self
  end

  class Get_ischema_result
    include ::Thrift::Struct, ::Thrift::Struct_Union
    SUCCESS = 0
    O1 = 1
    O2 = 2

    FIELDS = {
      SUCCESS => {:type => ::Thrift::Types::STRUCT, :name => 'success', :class => ::ISchema},
      O1 => {:type => ::Thrift::Types::STRUCT, :name => 'o1', :class => ::NoSuchObjectException},
      O2 => {:type => ::Thrift::Types::STRUCT, :name => 'o2', :class => ::MetaException}
    }

    def struct_fields; FIELDS; end

    def validate
    end

    ::Thrift::Struct.generate_accessors self
  end

  class Drop_ischema_args
    include ::Thrift::Struct, ::Thrift::Struct_Union
    NAME = 1

    FIELDS = {
      NAME => {:type => ::Thrift::Types::STRUCT, :name => 'name', :class => ::ISchemaName}
    }

    def struct_fields; FIELDS; end

    def validate
    end

    ::Thrift::Struct.generate_accessors self
  end

  class Drop_ischema_result
    include ::Thrift::Struct, ::Thrift::Struct_Union
    O1 = 1
    O2 = 2
    O3 = 3

    FIELDS = {
      O1 => {:type => ::Thrift::Types::STRUCT, :name => 'o1', :class => ::NoSuchObjectException},
      O2 => {:type => ::Thrift::Types::STRUCT, :name => 'o2', :class => ::InvalidOperationException},
      O3 => {:type => ::Thrift::Types::STRUCT, :name => 'o3', :class => ::MetaException}
    }

    def struct_fields; FIELDS; end

    def validate
    end

    ::Thrift::Struct.generate_accessors self
  end

  class Add_schema_version_args
    include ::Thrift::Struct, ::Thrift::Struct_Union
    SCHEMAVERSION = 1

    FIELDS = {
      SCHEMAVERSION => {:type => ::Thrift::Types::STRUCT, :name => 'schemaVersion', :class => ::SchemaVersion}
    }

    def struct_fields; FIELDS; end

    def validate
    end

    ::Thrift::Struct.generate_accessors self
  end

  class Add_schema_version_result
    include ::Thrift::Struct, ::Thrift::Struct_Union
    O1 = 1
    O2 = 2
    O3 = 3

    FIELDS = {
      O1 => {:type => ::Thrift::Types::STRUCT, :name => 'o1', :class => ::AlreadyExistsException},
      O2 => {:type => ::Thrift::Types::STRUCT, :name => 'o2', :class => ::NoSuchObjectException},
      O3 => {:type => ::Thrift::Types::STRUCT, :name => 'o3', :class => ::MetaException}
    }

    def struct_fields; FIELDS; end

    def validate
    end

    ::Thrift::Struct.generate_accessors self
  end

  class Get_schema_version_args
    include ::Thrift::Struct, ::Thrift::Struct_Union
    SCHEMAVERSION = 1

    FIELDS = {
      SCHEMAVERSION => {:type => ::Thrift::Types::STRUCT, :name => 'schemaVersion', :class => ::SchemaVersionDescriptor}
    }

    def struct_fields; FIELDS; end

    def validate
    end

    ::Thrift::Struct.generate_accessors self
  end

  class Get_schema_version_result
    include ::Thrift::Struct, ::Thrift::Struct_Union
    SUCCESS = 0
    O1 = 1
    O2 = 2

    FIELDS = {
      SUCCESS => {:type => ::Thrift::Types::STRUCT, :name => 'success', :class => ::SchemaVersion},
      O1 => {:type => ::Thrift::Types::STRUCT, :name => 'o1', :class => ::NoSuchObjectException},
      O2 => {:type => ::Thrift::Types::STRUCT, :name => 'o2', :class => ::MetaException}
    }

    def struct_fields; FIELDS; end

    def validate
    end

    ::Thrift::Struct.generate_accessors self
  end

  class Get_schema_latest_version_args
    include ::Thrift::Struct, ::Thrift::Struct_Union
    SCHEMANAME = 1

    FIELDS = {
      SCHEMANAME => {:type => ::Thrift::Types::STRUCT, :name => 'schemaName', :class => ::ISchemaName}
    }

    def struct_fields; FIELDS; end

    def validate
    end

    ::Thrift::Struct.generate_accessors self
  end

  class Get_schema_latest_version_result
    include ::Thrift::Struct, ::Thrift::Struct_Union
    SUCCESS = 0
    O1 = 1
    O2 = 2

    FIELDS = {
      SUCCESS => {:type => ::Thrift::Types::STRUCT, :name => 'success', :class => ::SchemaVersion},
      O1 => {:type => ::Thrift::Types::STRUCT, :name => 'o1', :class => ::NoSuchObjectException},
      O2 => {:type => ::Thrift::Types::STRUCT, :name => 'o2', :class => ::MetaException}
    }

    def struct_fields; FIELDS; end

    def validate
    end

    ::Thrift::Struct.generate_accessors self
  end

  class Get_schema_all_versions_args
    include ::Thrift::Struct, ::Thrift::Struct_Union
    SCHEMANAME = 1

    FIELDS = {
      SCHEMANAME => {:type => ::Thrift::Types::STRUCT, :name => 'schemaName', :class => ::ISchemaName}
    }

    def struct_fields; FIELDS; end

    def validate
    end

    ::Thrift::Struct.generate_accessors self
  end

  class Get_schema_all_versions_result
    include ::Thrift::Struct, ::Thrift::Struct_Union
    SUCCESS = 0
    O1 = 1
    O2 = 2

    FIELDS = {
      SUCCESS => {:type => ::Thrift::Types::LIST, :name => 'success', :element => {:type => ::Thrift::Types::STRUCT, :class => ::SchemaVersion}},
      O1 => {:type => ::Thrift::Types::STRUCT, :name => 'o1', :class => ::NoSuchObjectException},
      O2 => {:type => ::Thrift::Types::STRUCT, :name => 'o2', :class => ::MetaException}
    }

    def struct_fields; FIELDS; end

    def validate
    end

    ::Thrift::Struct.generate_accessors self
  end

  class Drop_schema_version_args
    include ::Thrift::Struct, ::Thrift::Struct_Union
    SCHEMAVERSION = 1

    FIELDS = {
      SCHEMAVERSION => {:type => ::Thrift::Types::STRUCT, :name => 'schemaVersion', :class => ::SchemaVersionDescriptor}
    }

    def struct_fields; FIELDS; end

    def validate
    end

    ::Thrift::Struct.generate_accessors self
  end

  class Drop_schema_version_result
    include ::Thrift::Struct, ::Thrift::Struct_Union
    O1 = 1
    O2 = 2

    FIELDS = {
      O1 => {:type => ::Thrift::Types::STRUCT, :name => 'o1', :class => ::NoSuchObjectException},
      O2 => {:type => ::Thrift::Types::STRUCT, :name => 'o2', :class => ::MetaException}
    }

    def struct_fields; FIELDS; end

    def validate
    end

    ::Thrift::Struct.generate_accessors self
  end

  class Get_schemas_by_cols_args
    include ::Thrift::Struct, ::Thrift::Struct_Union
    RQST = 1

    FIELDS = {
      RQST => {:type => ::Thrift::Types::STRUCT, :name => 'rqst', :class => ::FindSchemasByColsRqst}
    }

    def struct_fields; FIELDS; end

    def validate
    end

    ::Thrift::Struct.generate_accessors self
  end

  class Get_schemas_by_cols_result
    include ::Thrift::Struct, ::Thrift::Struct_Union
    SUCCESS = 0
    O1 = 1

    FIELDS = {
      SUCCESS => {:type => ::Thrift::Types::STRUCT, :name => 'success', :class => ::FindSchemasByColsResp},
      O1 => {:type => ::Thrift::Types::STRUCT, :name => 'o1', :class => ::MetaException}
    }

    def struct_fields; FIELDS; end

    def validate
    end

    ::Thrift::Struct.generate_accessors self
  end

  class Map_schema_version_to_serde_args
    include ::Thrift::Struct, ::Thrift::Struct_Union
    RQST = 1

    FIELDS = {
      RQST => {:type => ::Thrift::Types::STRUCT, :name => 'rqst', :class => ::MapSchemaVersionToSerdeRequest}
    }

    def struct_fields; FIELDS; end

    def validate
    end

    ::Thrift::Struct.generate_accessors self
  end

  class Map_schema_version_to_serde_result
    include ::Thrift::Struct, ::Thrift::Struct_Union
    O1 = 1
    O2 = 2

    FIELDS = {
      O1 => {:type => ::Thrift::Types::STRUCT, :name => 'o1', :class => ::NoSuchObjectException},
      O2 => {:type => ::Thrift::Types::STRUCT, :name => 'o2', :class => ::MetaException}
    }

    def struct_fields; FIELDS; end

    def validate
    end

    ::Thrift::Struct.generate_accessors self
  end

  class Set_schema_version_state_args
    include ::Thrift::Struct, ::Thrift::Struct_Union
    RQST = 1

    FIELDS = {
      RQST => {:type => ::Thrift::Types::STRUCT, :name => 'rqst', :class => ::SetSchemaVersionStateRequest}
    }

    def struct_fields; FIELDS; end

    def validate
    end

    ::Thrift::Struct.generate_accessors self
  end

  class Set_schema_version_state_result
    include ::Thrift::Struct, ::Thrift::Struct_Union
    O1 = 1
    O2 = 2
    O3 = 3

    FIELDS = {
      O1 => {:type => ::Thrift::Types::STRUCT, :name => 'o1', :class => ::NoSuchObjectException},
      O2 => {:type => ::Thrift::Types::STRUCT, :name => 'o2', :class => ::InvalidOperationException},
      O3 => {:type => ::Thrift::Types::STRUCT, :name => 'o3', :class => ::MetaException}
    }

    def struct_fields; FIELDS; end

    def validate
    end

    ::Thrift::Struct.generate_accessors self
  end

  class Add_serde_args
    include ::Thrift::Struct, ::Thrift::Struct_Union
    SERDE = 1

    FIELDS = {
      SERDE => {:type => ::Thrift::Types::STRUCT, :name => 'serde', :class => ::SerDeInfo}
    }

    def struct_fields; FIELDS; end

    def validate
    end

    ::Thrift::Struct.generate_accessors self
  end

  class Add_serde_result
    include ::Thrift::Struct, ::Thrift::Struct_Union
    O1 = 1
    O2 = 2

    FIELDS = {
      O1 => {:type => ::Thrift::Types::STRUCT, :name => 'o1', :class => ::AlreadyExistsException},
      O2 => {:type => ::Thrift::Types::STRUCT, :name => 'o2', :class => ::MetaException}
    }

    def struct_fields; FIELDS; end

    def validate
    end

    ::Thrift::Struct.generate_accessors self
  end

  class Get_serde_args
    include ::Thrift::Struct, ::Thrift::Struct_Union
    RQST = 1

    FIELDS = {
      RQST => {:type => ::Thrift::Types::STRUCT, :name => 'rqst', :class => ::GetSerdeRequest}
    }

    def struct_fields; FIELDS; end

    def validate
    end

    ::Thrift::Struct.generate_accessors self
  end

  class Get_serde_result
    include ::Thrift::Struct, ::Thrift::Struct_Union
    SUCCESS = 0
    O1 = 1
    O2 = 2

    FIELDS = {
      SUCCESS => {:type => ::Thrift::Types::STRUCT, :name => 'success', :class => ::SerDeInfo},
      O1 => {:type => ::Thrift::Types::STRUCT, :name => 'o1', :class => ::NoSuchObjectException},
      O2 => {:type => ::Thrift::Types::STRUCT, :name => 'o2', :class => ::MetaException}
    }

    def struct_fields; FIELDS; end

    def validate
    end

    ::Thrift::Struct.generate_accessors self
  end

  class Get_lock_materialization_rebuild_args
    include ::Thrift::Struct, ::Thrift::Struct_Union
    DBNAME = 1
    TABLENAME = 2
    TXNID = 3

    FIELDS = {
      DBNAME => {:type => ::Thrift::Types::STRING, :name => 'dbName'},
      TABLENAME => {:type => ::Thrift::Types::STRING, :name => 'tableName'},
      TXNID => {:type => ::Thrift::Types::I64, :name => 'txnId'}
    }

    def struct_fields; FIELDS; end

    def validate
    end

    ::Thrift::Struct.generate_accessors self
  end

  class Get_lock_materialization_rebuild_result
    include ::Thrift::Struct, ::Thrift::Struct_Union
    SUCCESS = 0

    FIELDS = {
      SUCCESS => {:type => ::Thrift::Types::STRUCT, :name => 'success', :class => ::LockResponse}
    }

    def struct_fields; FIELDS; end

    def validate
    end

    ::Thrift::Struct.generate_accessors self
  end

  class Heartbeat_lock_materialization_rebuild_args
    include ::Thrift::Struct, ::Thrift::Struct_Union
    DBNAME = 1
    TABLENAME = 2
    TXNID = 3

    FIELDS = {
      DBNAME => {:type => ::Thrift::Types::STRING, :name => 'dbName'},
      TABLENAME => {:type => ::Thrift::Types::STRING, :name => 'tableName'},
      TXNID => {:type => ::Thrift::Types::I64, :name => 'txnId'}
    }

    def struct_fields; FIELDS; end

    def validate
    end

    ::Thrift::Struct.generate_accessors self
  end

  class Heartbeat_lock_materialization_rebuild_result
    include ::Thrift::Struct, ::Thrift::Struct_Union
    SUCCESS = 0

    FIELDS = {
      SUCCESS => {:type => ::Thrift::Types::BOOL, :name => 'success'}
    }

    def struct_fields; FIELDS; end

    def validate
    end

    ::Thrift::Struct.generate_accessors self
  end

  class Add_runtime_stats_args
    include ::Thrift::Struct, ::Thrift::Struct_Union
    STAT = 1

    FIELDS = {
      STAT => {:type => ::Thrift::Types::STRUCT, :name => 'stat', :class => ::RuntimeStat}
    }

    def struct_fields; FIELDS; end

    def validate
    end

    ::Thrift::Struct.generate_accessors self
  end

  class Add_runtime_stats_result
    include ::Thrift::Struct, ::Thrift::Struct_Union
    O1 = 1

    FIELDS = {
      O1 => {:type => ::Thrift::Types::STRUCT, :name => 'o1', :class => ::MetaException}
    }

    def struct_fields; FIELDS; end

    def validate
    end

    ::Thrift::Struct.generate_accessors self
  end

  class Get_runtime_stats_args
    include ::Thrift::Struct, ::Thrift::Struct_Union
    RQST = 1

    FIELDS = {
      RQST => {:type => ::Thrift::Types::STRUCT, :name => 'rqst', :class => ::GetRuntimeStatsRequest}
    }

    def struct_fields; FIELDS; end

    def validate
    end

    ::Thrift::Struct.generate_accessors self
  end

  class Get_runtime_stats_result
    include ::Thrift::Struct, ::Thrift::Struct_Union
    SUCCESS = 0
    O1 = 1

    FIELDS = {
      SUCCESS => {:type => ::Thrift::Types::LIST, :name => 'success', :element => {:type => ::Thrift::Types::STRUCT, :class => ::RuntimeStat}},
      O1 => {:type => ::Thrift::Types::STRUCT, :name => 'o1', :class => ::MetaException}
    }

    def struct_fields; FIELDS; end

    def validate
    end

    ::Thrift::Struct.generate_accessors self
  end

  class Get_partitions_with_specs_args
    include ::Thrift::Struct, ::Thrift::Struct_Union
    REQUEST = 1

    FIELDS = {
      REQUEST => {:type => ::Thrift::Types::STRUCT, :name => 'request', :class => ::GetPartitionsRequest}
    }

    def struct_fields; FIELDS; end

    def validate
    end

    ::Thrift::Struct.generate_accessors self
  end

  class Get_partitions_with_specs_result
    include ::Thrift::Struct, ::Thrift::Struct_Union
    SUCCESS = 0
    O1 = 1

    FIELDS = {
      SUCCESS => {:type => ::Thrift::Types::STRUCT, :name => 'success', :class => ::GetPartitionsResponse},
      O1 => {:type => ::Thrift::Types::STRUCT, :name => 'o1', :class => ::MetaException}
    }

    def struct_fields; FIELDS; end

    def validate
    end

    ::Thrift::Struct.generate_accessors self
  end

  class Scheduled_query_poll_args
    include ::Thrift::Struct, ::Thrift::Struct_Union
    REQUEST = 1

    FIELDS = {
      REQUEST => {:type => ::Thrift::Types::STRUCT, :name => 'request', :class => ::ScheduledQueryPollRequest}
    }

    def struct_fields; FIELDS; end

    def validate
    end

    ::Thrift::Struct.generate_accessors self
  end

  class Scheduled_query_poll_result
    include ::Thrift::Struct, ::Thrift::Struct_Union
    SUCCESS = 0
    O1 = 1

    FIELDS = {
      SUCCESS => {:type => ::Thrift::Types::STRUCT, :name => 'success', :class => ::ScheduledQueryPollResponse},
      O1 => {:type => ::Thrift::Types::STRUCT, :name => 'o1', :class => ::MetaException}
    }

    def struct_fields; FIELDS; end

    def validate
    end

    ::Thrift::Struct.generate_accessors self
  end

  class Scheduled_query_maintenance_args
    include ::Thrift::Struct, ::Thrift::Struct_Union
    REQUEST = 1

    FIELDS = {
      REQUEST => {:type => ::Thrift::Types::STRUCT, :name => 'request', :class => ::ScheduledQueryMaintenanceRequest}
    }

    def struct_fields; FIELDS; end

    def validate
    end

    ::Thrift::Struct.generate_accessors self
  end

  class Scheduled_query_maintenance_result
    include ::Thrift::Struct, ::Thrift::Struct_Union
    O1 = 1
    O2 = 2
    O3 = 3
    O4 = 4

    FIELDS = {
      O1 => {:type => ::Thrift::Types::STRUCT, :name => 'o1', :class => ::MetaException},
      O2 => {:type => ::Thrift::Types::STRUCT, :name => 'o2', :class => ::NoSuchObjectException},
      O3 => {:type => ::Thrift::Types::STRUCT, :name => 'o3', :class => ::AlreadyExistsException},
      O4 => {:type => ::Thrift::Types::STRUCT, :name => 'o4', :class => ::InvalidInputException}
    }

    def struct_fields; FIELDS; end

    def validate
    end

    ::Thrift::Struct.generate_accessors self
  end

  class Scheduled_query_progress_args
    include ::Thrift::Struct, ::Thrift::Struct_Union
    INFO = 1

    FIELDS = {
      INFO => {:type => ::Thrift::Types::STRUCT, :name => 'info', :class => ::ScheduledQueryProgressInfo}
    }

    def struct_fields; FIELDS; end

    def validate
    end

    ::Thrift::Struct.generate_accessors self
  end

  class Scheduled_query_progress_result
    include ::Thrift::Struct, ::Thrift::Struct_Union
    O1 = 1
    O2 = 2

    FIELDS = {
      O1 => {:type => ::Thrift::Types::STRUCT, :name => 'o1', :class => ::MetaException},
      O2 => {:type => ::Thrift::Types::STRUCT, :name => 'o2', :class => ::InvalidOperationException}
    }

    def struct_fields; FIELDS; end

    def validate
    end

    ::Thrift::Struct.generate_accessors self
  end

  class Get_scheduled_query_args
    include ::Thrift::Struct, ::Thrift::Struct_Union
    SCHEDULEKEY = 1

    FIELDS = {
      SCHEDULEKEY => {:type => ::Thrift::Types::STRUCT, :name => 'scheduleKey', :class => ::ScheduledQueryKey}
    }

    def struct_fields; FIELDS; end

    def validate
    end

    ::Thrift::Struct.generate_accessors self
  end

  class Get_scheduled_query_result
    include ::Thrift::Struct, ::Thrift::Struct_Union
    SUCCESS = 0
    O1 = 1
    O2 = 2

    FIELDS = {
      SUCCESS => {:type => ::Thrift::Types::STRUCT, :name => 'success', :class => ::ScheduledQuery},
      O1 => {:type => ::Thrift::Types::STRUCT, :name => 'o1', :class => ::MetaException},
      O2 => {:type => ::Thrift::Types::STRUCT, :name => 'o2', :class => ::NoSuchObjectException}
    }

    def struct_fields; FIELDS; end

    def validate
    end

    ::Thrift::Struct.generate_accessors self
  end

  class Add_replication_metrics_args
    include ::Thrift::Struct, ::Thrift::Struct_Union
    REPLICATIONMETRICLIST = 1

    FIELDS = {
      REPLICATIONMETRICLIST => {:type => ::Thrift::Types::STRUCT, :name => 'replicationMetricList', :class => ::ReplicationMetricList}
    }

    def struct_fields; FIELDS; end

    def validate
    end

    ::Thrift::Struct.generate_accessors self
  end

  class Add_replication_metrics_result
    include ::Thrift::Struct, ::Thrift::Struct_Union
    O1 = 1

    FIELDS = {
      O1 => {:type => ::Thrift::Types::STRUCT, :name => 'o1', :class => ::MetaException}
    }

    def struct_fields; FIELDS; end

    def validate
    end

    ::Thrift::Struct.generate_accessors self
  end

  class Get_replication_metrics_args
    include ::Thrift::Struct, ::Thrift::Struct_Union
    RQST = 1

    FIELDS = {
      RQST => {:type => ::Thrift::Types::STRUCT, :name => 'rqst', :class => ::GetReplicationMetricsRequest}
    }

    def struct_fields; FIELDS; end

    def validate
    end

    ::Thrift::Struct.generate_accessors self
  end

  class Get_replication_metrics_result
    include ::Thrift::Struct, ::Thrift::Struct_Union
    SUCCESS = 0
    O1 = 1

    FIELDS = {
      SUCCESS => {:type => ::Thrift::Types::STRUCT, :name => 'success', :class => ::ReplicationMetricList},
      O1 => {:type => ::Thrift::Types::STRUCT, :name => 'o1', :class => ::MetaException}
    }

    def struct_fields; FIELDS; end

    def validate
    end

    ::Thrift::Struct.generate_accessors self
  end

end

