42 public std::enable_shared_from_this<HiveCatalog> {
58 std::string_view name()
const override;
60 Status CreateNamespace(
62 const std::unordered_map<std::string, std::string>& properties)
override;
64 Result<std::vector<Namespace>> ListNamespaces(
const Namespace& ns)
const override;
66 Result<std::unordered_map<std::string, std::string>> GetNamespaceProperties(
69 Status DropNamespace(
const Namespace& ns)
override;
71 Result<bool> NamespaceExists(
const Namespace& ns)
const override;
73 Status UpdateNamespaceProperties(
74 const Namespace& ns,
const std::unordered_map<std::string, std::string>& updates,
75 const std::unordered_set<std::string>& removals)
override;
77 Result<std::vector<TableIdentifier>> ListTables(
const Namespace& ns)
const override;
79 Result<std::shared_ptr<Table>> CreateTable(
80 const TableIdentifier& identifier,
const std::shared_ptr<Schema>& schema,
81 const std::shared_ptr<PartitionSpec>& spec,
const std::shared_ptr<SortOrder>& order,
82 const std::string& location,
83 const std::unordered_map<std::string, std::string>& properties)
override;
85 Result<std::shared_ptr<Table>> UpdateTable(
87 const std::vector<std::unique_ptr<TableRequirement>>& requirements,
88 const std::vector<std::unique_ptr<TableUpdate>>& updates)
override;
90 Result<std::shared_ptr<Transaction>> StageCreateTable(
91 const TableIdentifier& identifier,
const std::shared_ptr<Schema>& schema,
92 const std::shared_ptr<PartitionSpec>& spec,
const std::shared_ptr<SortOrder>& order,
93 const std::string& location,
94 const std::unordered_map<std::string, std::string>& properties)
override;
96 Result<bool> TableExists(
const TableIdentifier& identifier)
const override;
98 Status DropTable(
const TableIdentifier& identifier,
bool purge)
override;
102 Result<std::shared_ptr<Table>> LoadTable(
const TableIdentifier& identifier)
override;
104 Result<std::shared_ptr<Table>> RegisterTable(
106 const std::string& metadata_file_location)
override;