27#include <unordered_map>
28#include <unordered_set>
48 std::shared_ptr<HttpClient> client;
49 std::shared_ptr<ResourcePaths> paths;
50 std::shared_ptr<auth::AuthSession> session;
51 std::unordered_set<Endpoint> supported_endpoints;
60 std::function<Result<std::shared_ptr<StorageCredentialProvider>>(
61 const std::string& plan_id)>
62 credential_provider_factory;
75 std::shared_ptr<TableMetadata> metadata, std::shared_ptr<Schema> schema,
77 std::shared_ptr<const RestScanContext> rest_context);
88 const std::shared_ptr<FileIO>&
io()
const override;
91 RestTableScan(std::shared_ptr<TableMetadata> metadata, std::shared_ptr<Schema> schema,
93 std::shared_ptr<const RestScanContext> rest_context);
95 std::shared_ptr<const RestScanContext> rest_context_;
96 mutable std::shared_ptr<FileIO> scan_io_;
103 std::shared_ptr<FileIO> io, std::string table_name,
104 std::shared_ptr<MetricsReporter> metrics_reporter,
105 std::shared_ptr<const RestScanContext> rest_context);
111 std::shared_ptr<const RestScanContext> rest_context_;
128 std::shared_ptr<TableMetadata> metadata, std::shared_ptr<Schema> schema,
130 std::shared_ptr<const RestScanContext> rest_context);
132 using IncrementalAppendScan::PlanFiles;
136 const std::shared_ptr<FileIO>&
io()
const override;
143 std::optional<int64_t> from_snapshot_id_exclusive,
144 int64_t to_snapshot_id_inclusive)
const override;
148 std::shared_ptr<Schema> schema, std::shared_ptr<FileIO> io,
150 std::shared_ptr<const RestScanContext> rest_context);
152 std::shared_ptr<const RestScanContext> rest_context_;
153 mutable std::shared_ptr<FileIO> scan_io_;
161 std::shared_ptr<FileIO> io, std::string table_name,
162 std::shared_ptr<MetricsReporter> metrics_reporter,
163 std::shared_ptr<const RestScanContext> rest_context);
168 std::shared_ptr<const RestScanContext> rest_context_;
A scan that reads data files and applies delete files to filter rows.
Definition data_table_scan.h:36
A scan that reads data files added between snapshots (incremental appends).
Definition incremental_append_scan.h:38
Builder class for creating TableScan instances.
Definition table_scan.h:293
Definition expected.h:1199
Builder that produces a RestIncrementalAppendScan.
Definition rest_table_scan.h:158
Result< std::unique_ptr< IncrementalAppendScan > > Build() override
Builds and returns a TableScan instance.
An IncrementalAppendScan that delegates PlanFiles() to the REST catalog server.
Definition rest_table_scan.h:123
const std::shared_ptr< FileIO > & io() const override
Returns the FileIO with vended credentials if the server returned any during planning; otherwise retu...
Result< std::vector< std::shared_ptr< FileScanTask > > > PlanFiles(std::optional< int64_t > from_snapshot_id_exclusive, int64_t to_snapshot_id_inclusive) const override
Plans files via the REST scan planning endpoints.
Builder that produces a RestTableScan with the REST HTTP context injected.
Definition rest_table_scan.h:100
Result< std::unique_ptr< DataTableScan > > Build() override
Resolves schema/context via parent logic then creates a RestTableScan.
A DataTableScan that delegates PlanFilesStream() to the REST catalog server via the scan planning end...
Definition rest_table_scan.h:68
const std::shared_ptr< FileIO > & io() const override
Returns the effective FileIO for reading scan results.
static Result< std::unique_ptr< DataTableScan > > Make(std::shared_ptr< TableMetadata > metadata, std::shared_ptr< Schema > schema, std::shared_ptr< FileIO > io, internal::TableScanContext context, std::shared_ptr< const RestScanContext > rest_context)
Create a point-in-time scan. Incremental ranges must use RestIncrementalAppendScan.
Result< FileScanTaskStreamPtr > PlanFilesStream() const override
Plans files lazily via the REST scan planning endpoints.
Scan that reads the data files of a table snapshot.
Define symbol visibility macros for the REST catalog library.
Scan that reads the data files appended between snapshots.
REST catalog APIs.
Definition auth_manager.h:34
Define Result, Status, and error helpers.
Identifies a table in iceberg catalog.
Definition table_identifier.h:46
Definition table_scan.h:260
REST table context shared by its builders, scans and task streams.
Definition rest_table_scan.h:47
std::unordered_map< std::string, std::string > catalog_config
Definition rest_table_scan.h:55
std::unordered_map< std::string, std::string > table_config
Table-level config merged with catalog_config for scan-scoped FileIO creation.
Definition rest_table_scan.h:57
Define table scan APIs and scan task types.