44 public std::enable_shared_from_this<RestCatalog> {
56 std::string_view name()
const override;
58 Result<std::shared_ptr<Catalog>> AsCatalog()
override;
60 Result<std::shared_ptr<Catalog>> WithContext(
SessionContext context)
override;
67 std::unique_ptr<HttpClient> client, std::unique_ptr<ResourcePaths> paths,
68 std::unordered_set<Endpoint> endpoints,
69 std::unique_ptr<auth::AuthManager> auth_manager,
70 std::shared_ptr<auth::AuthSession> catalog_session,
73 Result<std::shared_ptr<auth::AuthSession>> ContextualAuthSession(
76 Result<std::shared_ptr<auth::AuthSession>> TableAuthSession(
78 const std::unordered_map<std::string, std::string>& table_config,
79 std::shared_ptr<auth::AuthSession> contextual_session);
81 Result<std::shared_ptr<FileIO>> TableFileIO(
83 const std::unordered_map<std::string, std::string>& table_config,
84 const std::vector<StorageCredential>& storage_credentials)
const;
86 Result<std::vector<Namespace>> ListNamespaces(
const Namespace& ns,
89 Status CreateNamespace(
const Namespace& ns,
90 const std::unordered_map<std::string, std::string>& properties,
93 Result<std::unordered_map<std::string, std::string>> GetNamespaceProperties(
100 Status UpdateNamespaceProperties(
101 const Namespace& ns,
const std::unordered_map<std::string, std::string>& updates,
104 Result<std::vector<TableIdentifier>> ListTables(
const Namespace& ns,
107 Result<std::shared_ptr<Table>> CreateTable(
108 const TableIdentifier& identifier,
const std::shared_ptr<Schema>& schema,
109 const std::shared_ptr<PartitionSpec>& spec,
const std::shared_ptr<SortOrder>& order,
110 const std::string& location,
111 const std::unordered_map<std::string, std::string>& properties,
113 std::shared_ptr<auth::AuthSession> contextual_session);
115 Result<std::shared_ptr<Table>> UpdateTable(
117 const std::vector<std::unique_ptr<TableRequirement>>& requirements,
118 const std::vector<std::unique_ptr<TableUpdate>>& updates,
120 std::shared_ptr<auth::AuthSession> contextual_session);
122 Result<std::shared_ptr<Transaction>> StageCreateTable(
123 const TableIdentifier& identifier,
const std::shared_ptr<Schema>& schema,
124 const std::shared_ptr<PartitionSpec>& spec,
const std::shared_ptr<SortOrder>& order,
125 const std::string& location,
126 const std::unordered_map<std::string, std::string>& properties,
128 std::shared_ptr<auth::AuthSession> contextual_session);
139 Result<std::shared_ptr<Table>> LoadTable(
141 std::shared_ptr<auth::AuthSession> request_session,
142 std::shared_ptr<auth::AuthSession> contextual_session);
144 Result<std::shared_ptr<Table>> RegisterTable(
145 const TableIdentifier& identifier,
const std::string& metadata_file_location,
147 std::shared_ptr<auth::AuthSession> contextual_session);
149 Result<LoadTableResult> LoadTableInternal(
const TableIdentifier& identifier,
152 Result<LoadTableResult> CreateTableInternal(
153 const TableIdentifier& identifier,
const std::shared_ptr<Schema>& schema,
154 const std::shared_ptr<PartitionSpec>& spec,
const std::shared_ptr<SortOrder>& order,
155 const std::string& location,
156 const std::unordered_map<std::string, std::string>& properties,
bool stage_create,
159 Result<CommitTableResponse> UpdateTableInternal(
161 const std::vector<std::unique_ptr<TableRequirement>>& requirements,
162 const std::vector<std::unique_ptr<TableUpdate>>& updates,
165 Result<std::shared_ptr<Table>> MakeTableFromLoadResult(
168 std::shared_ptr<auth::AuthSession> contextual_session);
170 Result<std::shared_ptr<Table>> MakeTableFromCommitResponse(
173 const std::unordered_map<std::string, std::string>& table_config,
174 std::shared_ptr<auth::AuthSession> table_session, std::shared_ptr<FileIO> table_io);
177 std::shared_ptr<FileIO> file_io_;
178 std::unique_ptr<HttpClient> client_;
179 std::unique_ptr<ResourcePaths> paths_;
181 std::unordered_set<Endpoint> supported_endpoints_;
182 std::unique_ptr<auth::AuthManager> auth_manager_;
183 std::shared_ptr<auth::AuthSession> catalog_session_;
186 std::weak_ptr<Catalog> default_catalog_;
Session state used to bind catalog operations to a caller context.
Definition session_context.h:39