IcebergRestCatalog class

Client for the Apache Iceberg REST Catalog exposed by Supabase Storage under an analytics bucket. It manages namespaces and tables within a warehouse (an analytics bucket).

final catalog = storage.analyticsCatalog('my-analytics-bucket');
await catalog.createNamespace(['analytics']);

Constructors

IcebergRestCatalog({required String baseUrl, required Map<String, String> headers, String? warehouse, List<AccessDelegation>? accessDelegation, Client? httpClient})
Creates a catalog client.

Properties

hashCode int
The hash code for this object.
no setterinherited
runtimeType Type
A representation of the runtime type of the object.
no setterinherited

Methods

createNamespace(List<String> namespace, {Map<String, String>? properties}) Future<List<String>>
Creates a namespace with optional properties.
createNamespaceIfNotExists(List<String> namespace, {Map<String, String>? properties}) Future<List<String>?>
Creates a namespace, returning null if it already exists.
createTable(List<String> namespace, CreateTableRequest request) Future<TableMetadata>
Creates a table in a namespace and returns its metadata.
createTableIfNotExists(List<String> namespace, CreateTableRequest request) Future<TableMetadata>
Creates a table if it does not already exist.
createTableResult(List<String> namespace, CreateTableRequest request) Future<LoadTableResult>
Creates a table and returns the full load result, including any server vended storage credentials.
dropNamespace(List<String> namespace) Future<void>
Drops a namespace. The namespace must contain no tables.
dropTable(TableIdentifier id, {bool purge = false}) Future<void>
Drops a table, optionally purging its underlying data files.
listNamespaces([ListNamespacesOptions? options]) Future<ListNamespacesResult>
Lists namespaces in the catalog, optionally under a parent namespace.
listTables(List<String> namespace, [ListTablesOptions? options]) Future<ListTablesResult>
Lists tables in a namespace.
loadNamespaceMetadata(List<String> namespace) Future<Map<String, String>>
Loads the properties of a namespace.
loadTable(TableIdentifier id) Future<TableMetadata>
Loads a table's metadata.
loadTableResult(TableIdentifier id, [LoadTableOptions? options]) Future<LoadTableResult?>
Loads a table and returns the full load result, or null when a conditional request with LoadTableOptions.ifNoneMatch is not modified.
namespaceExists(List<String> namespace) Future<bool>
Whether a namespace exists in the catalog.
noSuchMethod(Invocation invocation) → dynamic
Invoked when a nonexistent method or property is accessed.
inherited
registerTable(List<String> namespace, RegisterTableRequest request) Future<TableMetadata>
Registers an existing metadata file as a table.
renameTable(TableIdentifier source, TableIdentifier destination) Future<void>
Renames a table. Servers may or may not support cross namespace renames.
tableExists(TableIdentifier id) Future<bool>
Whether a table exists in the catalog.
toString() String
A string representation of this object.
inherited
updateNamespaceProperties(List<String> namespace, {Map<String, String>? updates, List<String>? removals}) Future<UpdateNamespacePropertiesResult>
Sets and removes properties on a namespace.
updateTable(TableIdentifier id, {required List<TableUpdate> updates, List<TableRequirement> requirements = const []}) Future<CommitTableResult>
Commits updates to a table, optionally guarded by requirements.

Operators

operator ==(Object other) bool
The equality operator.
inherited