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<SnapshotManager>> NewSnapshotManager();
184 std::string metadata_location, std::shared_ptr<FileIO> io,
185 std::shared_ptr<Catalog> catalog);
188 std::shared_ptr<TableMetadata> metadata_;
189 std::string metadata_location_;
190 std::shared_ptr<FileIO> io_;
191 std::shared_ptr<Catalog> catalog_;
192 std::unique_ptr<class TableMetadataCache> metadata_cache_;