Package org.apache.iceberg.catalog
Interface SessionCatalog
- All Known Implementing Classes:
- BaseSessionCatalog,- BaseViewSessionCatalog,- RESTSessionCatalog
public interface SessionCatalog
A Catalog API for table and namespace operations that includes session context.
- 
Nested Class SummaryNested ClassesModifier and TypeInterfaceDescriptionstatic final classContext for a session.
- 
Method SummaryModifier and TypeMethodDescriptionbuildTable(SessionCatalog.SessionContext context, TableIdentifier ident, Schema schema) Create a builder to create a table or start a create/replace transaction.default voidcreateNamespace(SessionCatalog.SessionContext context, Namespace namespace) Create a namespace in the catalog.voidcreateNamespace(SessionCatalog.SessionContext context, Namespace namespace, Map<String, String> metadata) Create a namespace in the catalog.booleandropNamespace(SessionCatalog.SessionContext context, Namespace namespace) Drop a namespace.booleandropTable(SessionCatalog.SessionContext context, TableIdentifier ident) Drop a table, without requesting that files are immediately deleted.voidinitialize(String name, Map<String, String> properties) Initialize given a custom name and a map of catalog properties.voidinvalidateTable(SessionCatalog.SessionContext context, TableIdentifier ident) Invalidate cached table metadata from current catalog.List top-level namespaces from the catalog.listNamespaces(SessionCatalog.SessionContext context, Namespace namespace) List child namespaces from the namespace.listTables(SessionCatalog.SessionContext context, Namespace namespace) Return all the identifiers under this namespace.loadNamespaceMetadata(SessionCatalog.SessionContext context, Namespace namespace) Load metadata properties for a namespace.loadTable(SessionCatalog.SessionContext context, TableIdentifier ident) Load a table.name()Return the name for this catalog.default booleannamespaceExists(SessionCatalog.SessionContext context, Namespace namespace) Checks whether the Namespace exists.Return the properties for this catalog.booleanpurgeTable(SessionCatalog.SessionContext context, TableIdentifier ident) Drop a table and request that files are immediately deleted.registerTable(SessionCatalog.SessionContext context, TableIdentifier ident, String metadataFileLocation) Register a table if it does not exist.voidrenameTable(SessionCatalog.SessionContext context, TableIdentifier from, TableIdentifier to) Rename a table.default booleantableExists(SessionCatalog.SessionContext context, TableIdentifier ident) Check whether table exists.booleanupdateNamespaceMetadata(SessionCatalog.SessionContext context, Namespace namespace, Map<String, String> updates, Set<String> removals) Set a collection of properties on a namespace in the catalog.
- 
Method Details- 
initializeInitialize given a custom name and a map of catalog properties.- Parameters:
- name- a custom name for the catalog
- properties- catalog properties
 
- 
nameString name()Return the name for this catalog.- Returns:
- this catalog's name
 
- 
propertiesReturn the properties for this catalog.- Returns:
- this catalog's config properties
 
- 
listTablesReturn all the identifiers under this namespace.- Parameters:
- context- session context
- namespace- a namespace
- Returns:
- a list of identifiers for tables
- Throws:
- NoSuchNamespaceException- if the namespace does not exist
 
- 
buildTableCatalog.TableBuilder buildTable(SessionCatalog.SessionContext context, TableIdentifier ident, Schema schema) Create a builder to create a table or start a create/replace transaction.- Parameters:
- context- session context
- ident- a table identifier
- schema- a schema
- Returns:
- the builder to create a table or start a create/replace transaction
 
- 
registerTableTable registerTable(SessionCatalog.SessionContext context, TableIdentifier ident, String metadataFileLocation) Register a table if it does not exist.- Parameters:
- context- session context
- ident- a table identifier
- metadataFileLocation- the location of a metadata file
- Returns:
- a Table instance
- Throws:
- AlreadyExistsException- if the table already exists in the catalog.
 
- 
tableExistsCheck whether table exists.- Parameters:
- context- session context
- ident- a table identifier
- Returns:
- true if the table exists, false otherwise
 
- 
loadTableLoad a table.- Parameters:
- context- session context
- ident- a table identifier
- Returns:
- instance of Tableimplementation referred bytableIdentifier
- Throws:
- NoSuchTableException- if the table does not exist
 
- 
dropTableDrop a table, without requesting that files are immediately deleted.Data and metadata files should be deleted according to the catalog's policy. - Parameters:
- context- session context
- ident- a table identifier
- Returns:
- true if the table was dropped, false if the table did not exist
 
- 
purgeTableDrop a table and request that files are immediately deleted.- Parameters:
- context- session context
- ident- a table identifier
- Returns:
- true if the table was dropped and purged, false if the table did not exist
- Throws:
- UnsupportedOperationException- if immediate delete is not supported
 
- 
renameTableRename a table.- Parameters:
- context- session context
- from- identifier of the table to rename
- to- new table name
- Throws:
- NoSuchTableException- if the from table does not exist
- AlreadyExistsException- if the to table already exists
 
- 
invalidateTableInvalidate cached table metadata from current catalog.If the table is already loaded or cached, drop cached data. If the table does not exist or is not cached, do nothing. - Parameters:
- context- session context
- ident- a table identifier
 
- 
createNamespaceCreate a namespace in the catalog.- Parameters:
- context- session context
- namespace- a- namespace
- Throws:
- AlreadyExistsException- If the namespace already exists
- UnsupportedOperationException- If create is not a supported operation
 
- 
createNamespacevoid createNamespace(SessionCatalog.SessionContext context, Namespace namespace, Map<String, String> metadata) Create a namespace in the catalog.- Parameters:
- context- session context
- namespace- a- namespace
- metadata- a string Map of properties for the given namespace
- Throws:
- AlreadyExistsException- If the namespace already exists
- UnsupportedOperationException- If create is not a supported operation
 
- 
listNamespacesList top-level namespaces from the catalog.If an object such as a table, view, or function exists, its parent namespaces must also exist and must be returned by this discovery method. For example, if table a.b.t exists, this method must return ["a"] in the result array. - Parameters:
- context- session context
- Returns:
- a List of namespace Namespacenames
 
- 
listNamespacesList child namespaces from the namespace.For two existing tables named 'a.b.c.table' and 'a.b.d.table', this method returns: - Given: Namespace.empty()
- Returns: Namespace.of("a")
 - Given: Namespace.of("a")
- Returns: Namespace.of("a", "b")
 - Given: Namespace.of("a", "b")
- Returns: Namespace.of("a", "b", "c")andNamespace.of("a", "b", "d")
 - Given: Namespace.of("a", "b", "c")
- Returns: empty list, because there are no child namespaces
 - Parameters:
- context- session context
- namespace- a- namespace
- Returns:
- a List of child Namespacenames from the given namespace
- Throws:
- NoSuchNamespaceException- If the namespace does not exist (optional)
 
- Given: 
- 
loadNamespaceMetadataMap<String,String> loadNamespaceMetadata(SessionCatalog.SessionContext context, Namespace namespace) Load metadata properties for a namespace.- Parameters:
- context- session context
- namespace- a- namespace
- Returns:
- a string map of properties for the given namespace
- Throws:
- NoSuchNamespaceException- If the namespace does not exist (optional)
 
- 
dropNamespaceDrop a namespace. If the namespace exists and was dropped, this will return true.- Parameters:
- context- session context
- namespace- a- namespace
- Returns:
- true if the namespace was dropped, false otherwise.
- Throws:
- NamespaceNotEmptyException- If the namespace is not empty
 
- 
updateNamespaceMetadataboolean updateNamespaceMetadata(SessionCatalog.SessionContext context, Namespace namespace, Map<String, String> updates, Set<String> removals) Set a collection of properties on a namespace in the catalog.Properties that are not in the given map are not modified or removed by this method. - Parameters:
- context- session context
- namespace- a- namespace
- updates- properties to set for the namespace
- removals- properties to remove from the namespace
- Throws:
- NoSuchNamespaceException- If the namespace does not exist (optional)
- UnsupportedOperationException- If namespace properties are not supported
 
- 
namespaceExistsChecks whether the Namespace exists.- Parameters:
- context- session context
- namespace- a- namespace
- Returns:
- true if the Namespace exists, false otherwise
 
 
-