38class ICEBERG_EXPORT
Table :
public std::enable_shared_from_this<Table> {
47 std::shared_ptr<TableMetadata> metadata,
48 std::string metadata_location,
49 std::shared_ptr<FileIO> io,
50 std::shared_ptr<Catalog> catalog);
58 const std::string&
uuid()
const;
61 Result<std::shared_ptr<Schema>> schema()
const;
65 std::reference_wrapper<const std::unordered_map<int32_t, std::shared_ptr<Schema>>>>
69 Result<std::shared_ptr<PartitionSpec>> spec()
const;
72 Result<std::reference_wrapper<
73 const std::unordered_map<int32_t, std::shared_ptr<PartitionSpec>>>>
77 Result<std::shared_ptr<SortOrder>> sort_order()
const;
80 Result<std::reference_wrapper<
81 const std::unordered_map<int32_t, std::shared_ptr<SortOrder>>>>
88 std::string_view metadata_file_location()
const;
91 std::string_view location()
const;
94 TimePointMs last_updated_ms()
const;
97 Result<std::shared_ptr<Snapshot>> current_snapshot()
const;
103 Result<std::shared_ptr<Snapshot>> SnapshotById(int64_t snapshot_id)
const;
106 const std::vector<std::shared_ptr<Snapshot>>& snapshots()
const;
109 const std::vector<SnapshotLogEntry>& history()
const;
112 const std::shared_ptr<FileIO>& io()
const;
115 const std::shared_ptr<TableMetadata>& metadata()
const;
118 const std::shared_ptr<Catalog>& catalog()
const;
121 Result<std::unique_ptr<LocationProvider>> location_provider()
const;
124 virtual Status Refresh();
130 virtual Result<std::unique_ptr<DataTableScanBuilder>> NewScan()
const;
133 virtual Result<std::unique_ptr<IncrementalAppendScanBuilder>> NewIncrementalAppendScan()
137 virtual Result<std::unique_ptr<IncrementalChangelogScanBuilder>>
138 NewIncrementalChangelogScan()
const;
141 virtual Result<std::shared_ptr<Transaction>> NewTransaction();
145 virtual Result<std::shared_ptr<UpdatePartitionSpec>> NewUpdatePartitionSpec();
149 virtual Result<std::shared_ptr<UpdateProperties>> NewUpdateProperties();
153 virtual Result<std::shared_ptr<UpdateSortOrder>> NewUpdateSortOrder();
157 virtual Result<std::shared_ptr<UpdateSchema>> NewUpdateSchema();
161 virtual Result<std::shared_ptr<ExpireSnapshots>> NewExpireSnapshots();
165 virtual Result<std::shared_ptr<UpdateStatistics>> NewUpdateStatistics();
169 virtual Result<std::shared_ptr<UpdatePartitionStatistics>>
170 NewUpdatePartitionStatistics();
174 virtual Result<std::shared_ptr<UpdateLocation>> NewUpdateLocation();
177 virtual Result<std::shared_ptr<FastAppend>> NewFastAppend();
180 virtual Result<std::shared_ptr<MergeAppend>> NewMergeAppend();
183 virtual Result<std::shared_ptr<DeleteFiles>> NewDeleteFiles();
186 virtual Result<std::shared_ptr<RowDelta>> NewRowDelta();
189 virtual Result<std::shared_ptr<OverwriteFiles>> NewOverwrite();
193 virtual Result<std::shared_ptr<RewriteFiles>> NewRewriteFiles();
196 virtual Result<std::shared_ptr<SnapshotManager>> NewSnapshotManager();
200 std::string metadata_location, std::shared_ptr<FileIO> io,
201 std::shared_ptr<Catalog> catalog);
204 std::shared_ptr<TableMetadata> metadata_;
205 std::string metadata_location_;
206 std::shared_ptr<FileIO> io_;
207 std::shared_ptr<Catalog> catalog_;
208 std::unique_ptr<class TableMetadataCache> metadata_cache_;
233 static Result<std::shared_ptr<StaticTable>> Make(
235 std::string metadata_location, std::shared_ptr<FileIO> io);
239 Status Refresh()
override;
241 Result<std::shared_ptr<Transaction>> NewTransaction()
override;
243 Result<std::shared_ptr<UpdateProperties>> NewUpdateProperties()
override;
245 Result<std::shared_ptr<UpdateSchema>> NewUpdateSchema()
override;
247 Result<std::shared_ptr<UpdateLocation>> NewUpdateLocation()
override;
249 Result<std::shared_ptr<UpdatePartitionSpec>> NewUpdatePartitionSpec()
override;
251 Result<std::shared_ptr<UpdateSortOrder>> NewUpdateSortOrder()
override;
253 Result<std::shared_ptr<ExpireSnapshots>> NewExpireSnapshots()
override;
255 Result<std::shared_ptr<UpdateStatistics>> NewUpdateStatistics()
override;
257 Result<std::shared_ptr<UpdatePartitionStatistics>> NewUpdatePartitionStatistics()
260 Result<std::shared_ptr<FastAppend>> NewFastAppend()
override;
262 Result<std::shared_ptr<MergeAppend>> NewMergeAppend()
override;
264 Result<std::shared_ptr<DeleteFiles>> NewDeleteFiles()
override;
266 Result<std::shared_ptr<RowDelta>> NewRowDelta()
override;
268 Result<std::shared_ptr<OverwriteFiles>> NewOverwrite()
override;
270 Result<std::shared_ptr<RewriteFiles>> NewRewriteFiles()
override;
272 Result<std::shared_ptr<SnapshotManager>> NewSnapshotManager()
override;