Class CatalogManager
- java.lang.Object
-
- org.apache.flink.table.catalog.CatalogManager
-
- All Implemented Interfaces:
AutoCloseable,CatalogRegistry
@Internal public final class CatalogManager extends Object implements CatalogRegistry, AutoCloseable
A manager for dealing with catalog objects such as tables, views, functions, and types. It encapsulates all available catalogs and stores temporary objects.
-
-
Nested Class Summary
Nested Classes Modifier and Type Class Description static classCatalogManager.BuilderBuilder for a fluent definition of aCatalogManager.
-
Method Summary
All Methods Static Methods Instance Methods Concrete Methods Deprecated Methods Modifier and Type Method Description voidalterCatalog(String catalogName, org.apache.flink.table.catalog.CatalogChange catalogChange)Alters a catalog under the given name.voidalterDatabase(String catalogName, String databaseName, org.apache.flink.table.catalog.CatalogDatabase newDatabase, boolean ignoreIfNotExists)Modify an existing database.voidalterModel(org.apache.flink.table.catalog.CatalogModel modelChange, org.apache.flink.table.catalog.ObjectIdentifier objectIdentifier, boolean ignoreIfNotExists)Alters a model in a given fully qualified path.voidalterTable(org.apache.flink.table.catalog.CatalogBaseTable table, List<org.apache.flink.table.catalog.TableChange> changes, org.apache.flink.table.catalog.ObjectIdentifier objectIdentifier, boolean ignoreIfNotExists)Alters a table in a given fully qualified path with table changes.voidalterTable(org.apache.flink.table.catalog.CatalogBaseTable table, org.apache.flink.table.catalog.ObjectIdentifier objectIdentifier, boolean ignoreIfNotExists)Alters a table in a given fully qualified path.voidclose()Closes the catalog manager and releases its resources.voidcreateCatalog(String catalogName, org.apache.flink.table.catalog.CatalogDescriptor catalogDescriptor)voidcreateCatalog(String catalogName, org.apache.flink.table.catalog.CatalogDescriptor catalogDescriptor, boolean ignoreIfExists)Creates a catalog under the given name.voidcreateDatabase(String catalogName, String databaseName, org.apache.flink.table.catalog.CatalogDatabase database, boolean ignoreIfExists)Create a database.voidcreateModel(org.apache.flink.table.catalog.CatalogModel model, org.apache.flink.table.catalog.ObjectIdentifier objectIdentifier, boolean ignoreIfExists)Creates a model in a given fully qualified path.booleancreateTable(org.apache.flink.table.catalog.CatalogBaseTable table, org.apache.flink.table.catalog.ObjectIdentifier objectIdentifier, boolean ignoreIfExists)Creates a table in a given fully qualified path.voidcreateTemporaryModel(org.apache.flink.table.catalog.CatalogModel model, org.apache.flink.table.catalog.ObjectIdentifier objectIdentifier, boolean ignoreIfExists)Creates a temporary model in a given fully qualified path.voidcreateTemporaryTable(org.apache.flink.table.catalog.CatalogBaseTable table, org.apache.flink.table.catalog.ObjectIdentifier objectIdentifier, boolean ignoreIfExists)Creates a temporary table in a given fully qualified path.voiddropDatabase(String catalogName, String databaseName, boolean ignoreIfNotExists, boolean cascade)Drop a database.booleandropMaterializedTable(org.apache.flink.table.catalog.ObjectIdentifier objectIdentifier, boolean ignoreIfNotExists)Drops a materialized table in a given fully qualified path.voiddropModel(org.apache.flink.table.catalog.ObjectIdentifier objectIdentifier, boolean ignoreIfNotExists)Drops a model in a given fully qualified path.booleandropTable(org.apache.flink.table.catalog.ObjectIdentifier objectIdentifier, boolean ignoreIfNotExists)Drops a table in a given fully qualified path.voiddropTemporaryModel(org.apache.flink.table.catalog.ObjectIdentifier objectIdentifier, boolean ignoreIfNotExists)Drop a temporary model in a given fully qualified path.voiddropTemporaryTable(org.apache.flink.table.catalog.ObjectIdentifier objectIdentifier, boolean ignoreIfNotExists)Drop a temporary table in a given fully qualified path.voiddropTemporaryView(org.apache.flink.table.catalog.ObjectIdentifier objectIdentifier, boolean ignoreIfNotExists)Drop a temporary view in a given fully qualified path.booleandropView(org.apache.flink.table.catalog.ObjectIdentifier objectIdentifier, boolean ignoreIfNotExists)Drops a view in a given fully qualified path.StringgetBuiltInCatalogName()Gets the built-in catalog name.StringgetBuiltInDatabaseName()Gets the built-in database name in the built-in catalog.Optional<org.apache.flink.table.catalog.Catalog>getCatalog(String catalogName)Gets aCataloginstance by name.Optional<org.apache.flink.table.catalog.ResolvedCatalogBaseTable<?>>getCatalogBaseTable(org.apache.flink.table.catalog.ObjectIdentifier objectIdentifier)Retrieves a fully qualified table.Optional<org.apache.flink.table.catalog.CatalogDescriptor>getCatalogDescriptor(String catalogName)List<CatalogModificationListener>getCatalogModificationListeners()org.apache.flink.table.catalog.CataloggetCatalogOrError(String catalogName)Gets a catalog by name.org.apache.flink.table.catalog.CataloggetCatalogOrThrowException(String catalogName)StringgetCurrentCatalog()Gets the current catalog that will be used when resolving table path.StringgetCurrentDatabase()Gets the current database name that will be used when resolving table path.org.apache.flink.table.catalog.DataTypeFactorygetDataTypeFactory()Returns a factory for creating fully resolved data types that can be used for planning.Optional<ContextResolvedModel>getModel(org.apache.flink.table.catalog.ObjectIdentifier objectIdentifier)Retrieves a fully qualified model.ContextResolvedModelgetModelOrError(org.apache.flink.table.catalog.ObjectIdentifier objectIdentifier)LikegetModel(ObjectIdentifier), but throws an error when the model is not available in any of the catalogs.Optional<org.apache.flink.table.catalog.CatalogPartition>getPartition(org.apache.flink.table.catalog.ObjectIdentifier tableIdentifier, org.apache.flink.table.catalog.CatalogPartitionSpec partitionSpec)Retrieves a partition with a fully qualified table path and partition spec.org.apache.flink.table.catalog.SchemaResolvergetSchemaResolver()Returns aSchemaResolverfor creatingResolvedSchemafromSchema.Optional<ContextResolvedTable>getTable(org.apache.flink.table.catalog.ObjectIdentifier objectIdentifier)Retrieves a fully qualified table.Optional<ContextResolvedTable>getTable(org.apache.flink.table.catalog.ObjectIdentifier objectIdentifier, long timestamp)Retrieves a fully qualified table with a specific time.ContextResolvedTablegetTableOrError(org.apache.flink.table.catalog.ObjectIdentifier objectIdentifier)LikegetTable(ObjectIdentifier), but throws an error when the table is not available in any of the catalogs.protected Optional<org.apache.flink.table.catalog.TemporaryOperationListener>getTemporaryOperationListener(org.apache.flink.table.catalog.ObjectIdentifier identifier)voidinitSchemaResolver(boolean isStreamingMode, ExpressionResolver.ExpressionResolverBuilder expressionResolverBuilder, Parser parser)Initializes aSchemaResolverforSchemaresolution.booleanisTemporaryModel(org.apache.flink.table.catalog.ObjectIdentifier objectIdentifier)Return whether the model with a fully qualified table path is temporary or not.booleanisTemporaryTable(org.apache.flink.table.catalog.ObjectIdentifier objectIdentifier)Return whether the table with a fully qualified table path is temporary or not.Set<String>listCatalogs()Retrieves the set of names of all registered catalogs, including all initialized catalogs and all catalogs stored in theCatalogStore.Set<String>listModels()Returns an array of names of all models registered in the namespace of the current catalog and database.Set<String>listModels(String catalogName, String databaseName)Returns an array of names of all models registered in the namespace of the given catalog and database.Set<String>listSchemas()Lists all available schemas in the root of the catalog manager.Set<String>listSchemas(String catalogName)Lists all available schemas in the given catalog.Set<String>listTables()Returns an array of names of all tables (tables and views, both temporary and permanent) registered in the namespace of the current catalog and database.Set<String>listTables(String catalogName, String databaseName)Returns an array of names of all tables (tables and views, both temporary and permanent) registered in the namespace of the given catalog and database.Set<String>listTemporaryTables()Returns an array of names of temporary tables registered in the namespace of the current catalog and database.Set<String>listTemporaryViews()Returns an array of names of temporary views registered in the namespace of the current catalog and database.Set<String>listViews()Returns an array of names of all views(both temporary and permanent) registered in the namespace of the current catalog and database.Set<String>listViews(String catalogName, String databaseName)Returns an array of names of all views(both temporary and permanent) registered in the namespace of the given catalog and database.static CatalogManager.BuildernewBuilder()StringqualifyCatalog(String catalogName)Qualifies catalog name.StringqualifyDatabase(String databaseName)Qualifies database name.org.apache.flink.table.catalog.ObjectIdentifierqualifyIdentifier(org.apache.flink.table.catalog.UnresolvedIdentifier identifier)Returns the full name of the given table path, this name may be padded with current catalog/database name based on theidentifier'slength.voidregisterCatalog(String catalogName, org.apache.flink.table.catalog.Catalog catalog)Deprecated.This method is deprecated and will be removed in a future release.org.apache.flink.table.catalog.ResolvedCatalogBaseTable<?>resolveCatalogBaseTable(org.apache.flink.table.catalog.CatalogBaseTable baseTable)Resolves aCatalogBaseTableto a validatedResolvedCatalogBaseTable.org.apache.flink.table.catalog.ResolvedCatalogMaterializedTableresolveCatalogMaterializedTable(org.apache.flink.table.catalog.CatalogMaterializedTable table)Resolves aCatalogMaterializedTableto a validatedResolvedCatalogMaterializedTable.org.apache.flink.table.catalog.ResolvedCatalogModelresolveCatalogModel(org.apache.flink.table.catalog.CatalogModel model)org.apache.flink.table.catalog.ResolvedCatalogTableresolveCatalogTable(org.apache.flink.table.catalog.CatalogTable table)Resolves aCatalogTableto a validatedResolvedCatalogTable.org.apache.flink.table.catalog.ResolvedCatalogViewresolveCatalogView(org.apache.flink.table.catalog.CatalogView view)Resolves aCatalogViewto a validatedResolvedCatalogView.booleanschemaExists(String catalogName)Checks if there is a catalog with given name or is there a temporary object registered within a given catalog.booleanschemaExists(String catalogName, String databaseName)Checks if there is a database with given name in a given catalog or is there a temporary object registered within a given catalog and database.voidsetCurrentCatalog(String catalogName)Sets the current catalog name that will be used when resolving table path.voidsetCurrentDatabase(String databaseName)Sets the current database name that will be used when resolving a table path.voidunregisterCatalog(String catalogName, boolean ignoreIfNotExists)Unregisters a catalog under the given name.
-
-
-
Method Detail
-
getCatalogModificationListeners
@VisibleForTesting public List<CatalogModificationListener> getCatalogModificationListeners()
-
getCatalogDescriptor
public Optional<org.apache.flink.table.catalog.CatalogDescriptor> getCatalogDescriptor(String catalogName)
-
newBuilder
public static CatalogManager.Builder newBuilder()
-
close
public void close() throws org.apache.flink.table.catalog.exceptions.CatalogExceptionCloses the catalog manager and releases its resources.This method closes all initialized catalogs and the catalog store.
- Specified by:
closein interfaceAutoCloseable- Throws:
org.apache.flink.table.catalog.exceptions.CatalogException- if an error occurs while closing the catalogs or the catalog store
-
initSchemaResolver
public void initSchemaResolver(boolean isStreamingMode, ExpressionResolver.ExpressionResolverBuilder expressionResolverBuilder, Parser parser)Initializes aSchemaResolverforSchemaresolution.Currently, the resolver cannot be passed in the constructor because of a chicken-and-egg problem between
PlannerandCatalogManager.
-
getSchemaResolver
public org.apache.flink.table.catalog.SchemaResolver getSchemaResolver()
Returns aSchemaResolverfor creatingResolvedSchemafromSchema.
-
getDataTypeFactory
public org.apache.flink.table.catalog.DataTypeFactory getDataTypeFactory()
Returns a factory for creating fully resolved data types that can be used for planning.
-
createCatalog
public void createCatalog(String catalogName, org.apache.flink.table.catalog.CatalogDescriptor catalogDescriptor, boolean ignoreIfExists) throws org.apache.flink.table.catalog.exceptions.CatalogException
Creates a catalog under the given name. The catalog name must be unique.- Parameters:
catalogName- the given catalog name under which to create the given catalogcatalogDescriptor- catalog descriptor for creating catalogignoreIfExists- if false exception will be thrown if a catalog exists.- Throws:
org.apache.flink.table.catalog.exceptions.CatalogException- If the catalog already exists in the catalog store or initialized catalogs, or if an error occurs while creating the catalog or storing theCatalogDescriptor
-
createCatalog
public void createCatalog(String catalogName, org.apache.flink.table.catalog.CatalogDescriptor catalogDescriptor)
-
alterCatalog
public void alterCatalog(String catalogName, org.apache.flink.table.catalog.CatalogChange catalogChange) throws org.apache.flink.table.catalog.exceptions.CatalogException
Alters a catalog under the given name. The catalog name must be unique.- Parameters:
catalogName- the given catalog name under which to alter the given catalogcatalogChange- catalog change to update the underlying catalog descriptor- Throws:
org.apache.flink.table.catalog.exceptions.CatalogException- If the catalog neither exists in the catalog store nor in the initialized catalogs, or if an error occurs while creating the catalog or storing theCatalogDescriptor
-
registerCatalog
@Deprecated public void registerCatalog(String catalogName, org.apache.flink.table.catalog.Catalog catalog)
Deprecated.This method is deprecated and will be removed in a future release. UsecreateCataloginstead to create a catalog usingCatalogDescriptorand store it in theCatalogStore.Registers a catalog under the given name. The catalog name must be unique.- Parameters:
catalogName- name under which to register the given catalogcatalog- catalog to register- Throws:
org.apache.flink.table.catalog.exceptions.CatalogException- if the registration of the catalog under the given name failed
-
unregisterCatalog
public void unregisterCatalog(String catalogName, boolean ignoreIfNotExists)
Unregisters a catalog under the given name. The catalog name must be existed.If the catalog is in the initialized catalogs, it will be removed from the initialized catalogs. If the catalog is stored in the
CatalogStore, it will be removed from the CatalogStore.- Parameters:
catalogName- name under which to unregister the given catalog.ignoreIfNotExists- If false exception will be thrown if the table or database or catalog to be altered does not exist.- Throws:
org.apache.flink.table.catalog.exceptions.CatalogException- If the catalog does not exist in the initialized catalogs and not in theCatalogStore, or if the remove operation failed.
-
getCatalog
public Optional<org.apache.flink.table.catalog.Catalog> getCatalog(String catalogName)
Gets aCataloginstance by name.If the catalog has already been initialized, the initialized instance will be returned directly. Otherwise, the
CatalogDescriptorwill be obtained from theCatalogStore, and the catalog instance will be initialized.- Parameters:
catalogName- name of the catalog to retrieve- Returns:
- the requested catalog or empty if it does not exist
-
getCatalogOrThrowException
public org.apache.flink.table.catalog.Catalog getCatalogOrThrowException(String catalogName)
-
getCatalogOrError
public org.apache.flink.table.catalog.Catalog getCatalogOrError(String catalogName) throws org.apache.flink.table.api.CatalogNotExistException
Gets a catalog by name.- Specified by:
getCatalogOrErrorin interfaceCatalogRegistry- Parameters:
catalogName- name of the catalog to retrieve- Returns:
- the requested catalog
- Throws:
org.apache.flink.table.api.CatalogNotExistException- if the catalog does not exist
-
getCurrentCatalog
@Nullable public String getCurrentCatalog()
Gets the current catalog that will be used when resolving table path.- Specified by:
getCurrentCatalogin interfaceCatalogRegistry- Returns:
- the current catalog
- See Also:
qualifyIdentifier(UnresolvedIdentifier)
-
setCurrentCatalog
public void setCurrentCatalog(@Nullable String catalogName) throws org.apache.flink.table.api.CatalogNotExistExceptionSets the current catalog name that will be used when resolving table path.- Parameters:
catalogName- catalog name to set as current catalog- Throws:
org.apache.flink.table.api.CatalogNotExistException- thrown if the catalog doesn't exist- See Also:
qualifyIdentifier(UnresolvedIdentifier)
-
getCurrentDatabase
@Nullable public String getCurrentDatabase()
Gets the current database name that will be used when resolving table path.- Specified by:
getCurrentDatabasein interfaceCatalogRegistry- Returns:
- the current database
- See Also:
qualifyIdentifier(UnresolvedIdentifier)
-
setCurrentDatabase
public void setCurrentDatabase(@Nullable String databaseName)Sets the current database name that will be used when resolving a table path. The database has to exist in the current catalog.- Parameters:
databaseName- database name to set as current database name- Throws:
org.apache.flink.table.catalog.exceptions.CatalogException- thrown if the database doesn't exist in the current catalog- See Also:
qualifyIdentifier(UnresolvedIdentifier),setCurrentCatalog(String)
-
getBuiltInCatalogName
public String getBuiltInCatalogName()
Gets the built-in catalog name. The built-in catalog is used for storing all non-serializable transient meta-objects.- Returns:
- the built-in catalog name
-
getBuiltInDatabaseName
public String getBuiltInDatabaseName()
Gets the built-in database name in the built-in catalog. The built-in database is used for storing all non-serializable transient meta-objects.- Returns:
- the built-in database name
-
getTable
public Optional<ContextResolvedTable> getTable(org.apache.flink.table.catalog.ObjectIdentifier objectIdentifier)
Retrieves a fully qualified table. If the path is not yet fully qualified usequalifyIdentifier(UnresolvedIdentifier)first.- Parameters:
objectIdentifier- full path of the table to retrieve- Returns:
- table that the path points to.
-
getTable
public Optional<ContextResolvedTable> getTable(org.apache.flink.table.catalog.ObjectIdentifier objectIdentifier, long timestamp)
Retrieves a fully qualified table with a specific time. If the path is not yet fully qualified, usequalifyIdentifier(UnresolvedIdentifier)first.- Parameters:
objectIdentifier- full path of the table to retrievetimestamp- Timestamp of the table snapshot, which is milliseconds since 1970-01-01 00:00:00 UTC- Returns:
- table at a specific time that the path points to.
-
getCatalogBaseTable
public Optional<org.apache.flink.table.catalog.ResolvedCatalogBaseTable<?>> getCatalogBaseTable(org.apache.flink.table.catalog.ObjectIdentifier objectIdentifier)
Retrieves a fully qualified table. If the path is not yet fully qualified usequalifyIdentifier(UnresolvedIdentifier)first.- Specified by:
getCatalogBaseTablein interfaceCatalogRegistry- Parameters:
objectIdentifier- full path of the table to retrieve- Returns:
- resolved table that the path points to or empty if it does not exist.
-
isTemporaryTable
public boolean isTemporaryTable(org.apache.flink.table.catalog.ObjectIdentifier objectIdentifier)
Return whether the table with a fully qualified table path is temporary or not.- Specified by:
isTemporaryTablein interfaceCatalogRegistry- Parameters:
objectIdentifier- full path of the table- Returns:
- the table is temporary or not.
-
getTableOrError
public ContextResolvedTable getTableOrError(org.apache.flink.table.catalog.ObjectIdentifier objectIdentifier)
LikegetTable(ObjectIdentifier), but throws an error when the table is not available in any of the catalogs.
-
getPartition
public Optional<org.apache.flink.table.catalog.CatalogPartition> getPartition(org.apache.flink.table.catalog.ObjectIdentifier tableIdentifier, org.apache.flink.table.catalog.CatalogPartitionSpec partitionSpec)
Retrieves a partition with a fully qualified table path and partition spec. If the path is not yet fully qualified usequalifyIdentifier(UnresolvedIdentifier)first.- Specified by:
getPartitionin interfaceCatalogRegistry- Parameters:
tableIdentifier- full path of the table to retrievepartitionSpec- full partition spec- Returns:
- partition in the table.
-
listCatalogs
public Set<String> listCatalogs()
Retrieves the set of names of all registered catalogs, including all initialized catalogs and all catalogs stored in theCatalogStore.- Returns:
- a set of names of registered catalogs
-
listTables
public Set<String> listTables()
Returns an array of names of all tables (tables and views, both temporary and permanent) registered in the namespace of the current catalog and database.- Returns:
- names of all registered tables
-
listTables
public Set<String> listTables(String catalogName, String databaseName)
Returns an array of names of all tables (tables and views, both temporary and permanent) registered in the namespace of the given catalog and database.- Returns:
- names of all registered tables
-
listTemporaryTables
public Set<String> listTemporaryTables()
Returns an array of names of temporary tables registered in the namespace of the current catalog and database.- Returns:
- names of registered temporary tables
-
listTemporaryViews
public Set<String> listTemporaryViews()
Returns an array of names of temporary views registered in the namespace of the current catalog and database.- Returns:
- names of registered temporary views
-
listViews
public Set<String> listViews()
Returns an array of names of all views(both temporary and permanent) registered in the namespace of the current catalog and database.- Returns:
- names of all registered views
-
listViews
public Set<String> listViews(String catalogName, String databaseName)
Returns an array of names of all views(both temporary and permanent) registered in the namespace of the given catalog and database.- Returns:
- names of registered views
-
listSchemas
public Set<String> listSchemas()
Lists all available schemas in the root of the catalog manager. It is not equivalent to listing all catalogs as it includes also different catalog parts of the temporary objects.NOTE:It is primarily used for interacting with Calcite's schema.
- Returns:
- set of schemas in the root of catalog manager
-
listSchemas
public Set<String> listSchemas(String catalogName)
Lists all available schemas in the given catalog. It is not equivalent to listing databases within the given catalog as it includes also different database parts of the temporary objects identifiers.NOTE:It is primarily used for interacting with Calcite's schema.
- Parameters:
catalogName- filter for the catalog part of the schema- Returns:
- set of schemas with the given prefix
-
schemaExists
public boolean schemaExists(String catalogName)
Checks if there is a catalog with given name or is there a temporary object registered within a given catalog.NOTE:It is primarily used for interacting with Calcite's schema.
- Parameters:
catalogName- filter for the catalog part of the schema- Returns:
- true if a subschema exists
-
schemaExists
public boolean schemaExists(String catalogName, String databaseName)
Checks if there is a database with given name in a given catalog or is there a temporary object registered within a given catalog and database.NOTE:It is primarily used for interacting with Calcite's schema.
- Parameters:
catalogName- filter for the catalog part of the schemadatabaseName- filter for the database part of the schema- Returns:
- true if a subschema exists
-
qualifyIdentifier
public org.apache.flink.table.catalog.ObjectIdentifier qualifyIdentifier(org.apache.flink.table.catalog.UnresolvedIdentifier identifier)
Returns the full name of the given table path, this name may be padded with current catalog/database name based on theidentifier'slength.- Specified by:
qualifyIdentifierin interfaceCatalogRegistry- Parameters:
identifier- an unresolved identifier- Returns:
- a fully qualified object identifier
-
qualifyCatalog
public String qualifyCatalog(@Nullable String catalogName)
Qualifies catalog name. ThrowsValidationExceptionif not set.
-
qualifyDatabase
public String qualifyDatabase(@Nullable String databaseName)
Qualifies database name. ThrowsValidationExceptionif not set.
-
createTable
public boolean createTable(org.apache.flink.table.catalog.CatalogBaseTable table, org.apache.flink.table.catalog.ObjectIdentifier objectIdentifier, boolean ignoreIfExists)Creates a table in a given fully qualified path.- Parameters:
table- The table to put in the given path.objectIdentifier- The fully qualified path where to put the table.ignoreIfExists- If false exception will be thrown if a table exists in the given path.- Returns:
- true if table was created in the given path, false if a table already exists in the given path.
-
createTemporaryTable
public void createTemporaryTable(org.apache.flink.table.catalog.CatalogBaseTable table, org.apache.flink.table.catalog.ObjectIdentifier objectIdentifier, boolean ignoreIfExists)Creates a temporary table in a given fully qualified path.- Parameters:
table- The table to put in the given path.objectIdentifier- The fully qualified path where to put the table.ignoreIfExists- if false exception will be thrown if a table exists in the given path.
-
dropTemporaryTable
public void dropTemporaryTable(org.apache.flink.table.catalog.ObjectIdentifier objectIdentifier, boolean ignoreIfNotExists)Drop a temporary table in a given fully qualified path.- Parameters:
objectIdentifier- The fully qualified path of the table to drop.ignoreIfNotExists- If false exception will be thrown if the table to be dropped does not exist.
-
dropTemporaryView
public void dropTemporaryView(org.apache.flink.table.catalog.ObjectIdentifier objectIdentifier, boolean ignoreIfNotExists)Drop a temporary view in a given fully qualified path.- Parameters:
objectIdentifier- The fully qualified path of the view to drop.ignoreIfNotExists- If false exception will be thrown if the view to be dropped does not exist.
-
getTemporaryOperationListener
protected Optional<org.apache.flink.table.catalog.TemporaryOperationListener> getTemporaryOperationListener(org.apache.flink.table.catalog.ObjectIdentifier identifier)
-
alterTable
public void alterTable(org.apache.flink.table.catalog.CatalogBaseTable table, org.apache.flink.table.catalog.ObjectIdentifier objectIdentifier, boolean ignoreIfNotExists)Alters a table in a given fully qualified path.- Parameters:
table- The table to put in the given pathobjectIdentifier- The fully qualified path where to alter the table.ignoreIfNotExists- If false exception will be thrown if the table or database or catalog to be altered does not exist.
-
alterTable
public void alterTable(org.apache.flink.table.catalog.CatalogBaseTable table, List<org.apache.flink.table.catalog.TableChange> changes, org.apache.flink.table.catalog.ObjectIdentifier objectIdentifier, boolean ignoreIfNotExists)Alters a table in a given fully qualified path with table changes.- Parameters:
table- The table to put in the given pathchanges- The table changes from the original table to the new table.objectIdentifier- The fully qualified path where to alter the table.ignoreIfNotExists- If false exception will be thrown if the table or database or catalog to be altered does not exist.
-
dropTable
public boolean dropTable(org.apache.flink.table.catalog.ObjectIdentifier objectIdentifier, boolean ignoreIfNotExists)Drops a table in a given fully qualified path.- Parameters:
objectIdentifier- The fully qualified path of the table to drop.ignoreIfNotExists- If false exception will be thrown if the table to drop does not exist.- Returns:
- true if table existed in the given path and was dropped, false if table didn't exist in the given path and ignoreIfNotExists was true.
-
dropMaterializedTable
public boolean dropMaterializedTable(org.apache.flink.table.catalog.ObjectIdentifier objectIdentifier, boolean ignoreIfNotExists)Drops a materialized table in a given fully qualified path.- Parameters:
objectIdentifier- The fully qualified path of the materialized table to drop.ignoreIfNotExists- If false exception will be thrown if the table to drop does not exist.- Returns:
- true if materialized table existed in the given path and was dropped, false if materialized table didn't exist in the given path and ignoreIfNotExists was true.
-
dropView
public boolean dropView(org.apache.flink.table.catalog.ObjectIdentifier objectIdentifier, boolean ignoreIfNotExists)Drops a view in a given fully qualified path.- Parameters:
objectIdentifier- The fully qualified path of the view to drop.ignoreIfNotExists- If false exception will be thrown if the view to drop does not exist.- Returns:
- true if view existed in the given path and was dropped, false if view didn't exist in the given path and ignoreIfNotExists was true.
-
getModel
public Optional<ContextResolvedModel> getModel(org.apache.flink.table.catalog.ObjectIdentifier objectIdentifier)
Retrieves a fully qualified model. If the path is not yet fully qualified usequalifyIdentifier(UnresolvedIdentifier)first.- Parameters:
objectIdentifier- full path of the model to retrieve- Returns:
- model that the path points to.
-
getModelOrError
public ContextResolvedModel getModelOrError(org.apache.flink.table.catalog.ObjectIdentifier objectIdentifier)
LikegetModel(ObjectIdentifier), but throws an error when the model is not available in any of the catalogs.
-
isTemporaryModel
public boolean isTemporaryModel(org.apache.flink.table.catalog.ObjectIdentifier objectIdentifier)
Return whether the model with a fully qualified table path is temporary or not.- Parameters:
objectIdentifier- full path of the table- Returns:
- the model is temporary or not.
-
listModels
public Set<String> listModels()
Returns an array of names of all models registered in the namespace of the current catalog and database.- Returns:
- names of all registered models
-
listModels
public Set<String> listModels(String catalogName, String databaseName)
Returns an array of names of all models registered in the namespace of the given catalog and database.- Returns:
- names of all registered models
-
createModel
public void createModel(org.apache.flink.table.catalog.CatalogModel model, org.apache.flink.table.catalog.ObjectIdentifier objectIdentifier, boolean ignoreIfExists)Creates a model in a given fully qualified path.- Parameters:
model- The resolved model to put in the given path.objectIdentifier- The fully qualified path where to put the model.ignoreIfExists- If false exception will be thrown if a model exists in the given path.
-
createTemporaryModel
public void createTemporaryModel(org.apache.flink.table.catalog.CatalogModel model, org.apache.flink.table.catalog.ObjectIdentifier objectIdentifier, boolean ignoreIfExists)Creates a temporary model in a given fully qualified path.- Parameters:
model- The resolved model to put in the given path.objectIdentifier- The fully qualified path where to put the model.ignoreIfExists- if false exception will be thrown if a model exists in the given path.
-
alterModel
public void alterModel(org.apache.flink.table.catalog.CatalogModel modelChange, org.apache.flink.table.catalog.ObjectIdentifier objectIdentifier, boolean ignoreIfNotExists)Alters a model in a given fully qualified path.- Parameters:
modelChange- The model containing only changesobjectIdentifier- The fully qualified path where to alter the model.ignoreIfNotExists- If false exception will be thrown if the model to be altered does not exist.
-
dropModel
public void dropModel(org.apache.flink.table.catalog.ObjectIdentifier objectIdentifier, boolean ignoreIfNotExists)Drops a model in a given fully qualified path.- Parameters:
objectIdentifier- The fully qualified path of the model to drop.ignoreIfNotExists- If false exception will be thrown if the model to drop does not exist.
-
dropTemporaryModel
public void dropTemporaryModel(org.apache.flink.table.catalog.ObjectIdentifier objectIdentifier, boolean ignoreIfNotExists)Drop a temporary model in a given fully qualified path.- Parameters:
objectIdentifier- The fully qualified path of the model to drop.ignoreIfNotExists- If false exception will be thrown if the model to be dropped does not exist.
-
resolveCatalogModel
public org.apache.flink.table.catalog.ResolvedCatalogModel resolveCatalogModel(org.apache.flink.table.catalog.CatalogModel model)
-
resolveCatalogBaseTable
public org.apache.flink.table.catalog.ResolvedCatalogBaseTable<?> resolveCatalogBaseTable(org.apache.flink.table.catalog.CatalogBaseTable baseTable)
Resolves aCatalogBaseTableto a validatedResolvedCatalogBaseTable.
-
resolveCatalogTable
public org.apache.flink.table.catalog.ResolvedCatalogTable resolveCatalogTable(org.apache.flink.table.catalog.CatalogTable table)
Resolves aCatalogTableto a validatedResolvedCatalogTable.
-
resolveCatalogMaterializedTable
public org.apache.flink.table.catalog.ResolvedCatalogMaterializedTable resolveCatalogMaterializedTable(org.apache.flink.table.catalog.CatalogMaterializedTable table)
Resolves aCatalogMaterializedTableto a validatedResolvedCatalogMaterializedTable.
-
resolveCatalogView
public org.apache.flink.table.catalog.ResolvedCatalogView resolveCatalogView(org.apache.flink.table.catalog.CatalogView view)
Resolves aCatalogViewto a validatedResolvedCatalogView.
-
createDatabase
public void createDatabase(String catalogName, String databaseName, org.apache.flink.table.catalog.CatalogDatabase database, boolean ignoreIfExists) throws org.apache.flink.table.catalog.exceptions.DatabaseAlreadyExistException, org.apache.flink.table.catalog.exceptions.CatalogException
Create a database.- Parameters:
catalogName- Name of the catalog for databasedatabaseName- Name of the database to be createddatabase- The database definitionignoreIfExists- Flag to specify behavior when a database with the given name already exists: if set to false, throw a DatabaseAlreadyExistException, if set to true, do nothing.- Throws:
org.apache.flink.table.catalog.exceptions.DatabaseAlreadyExistException- if the given database already exists and ignoreIfExists is falseorg.apache.flink.table.catalog.exceptions.CatalogException- in case of any runtime exception
-
dropDatabase
public void dropDatabase(String catalogName, String databaseName, boolean ignoreIfNotExists, boolean cascade) throws org.apache.flink.table.catalog.exceptions.DatabaseNotExistException, org.apache.flink.table.catalog.exceptions.DatabaseNotEmptyException, org.apache.flink.table.catalog.exceptions.CatalogException
Drop a database.- Parameters:
catalogName- Name of the catalog for database.databaseName- Name of the database to be dropped.ignoreIfNotExists- Flag to specify behavior when the database does not exist: if set to false, throw an exception, if set to true, do nothing.cascade- Flag to specify behavior when the database contains table or function: if set to true, delete all tables and functions in the database and then delete the database, if set to false, throw an exception.- Throws:
org.apache.flink.table.catalog.exceptions.DatabaseNotExistException- if the given database does not existorg.apache.flink.table.catalog.exceptions.DatabaseNotEmptyException- if the given database is not empty and isRestrict is trueorg.apache.flink.table.catalog.exceptions.CatalogException- in case of any runtime exception
-
alterDatabase
public void alterDatabase(String catalogName, String databaseName, org.apache.flink.table.catalog.CatalogDatabase newDatabase, boolean ignoreIfNotExists) throws org.apache.flink.table.catalog.exceptions.DatabaseNotExistException, org.apache.flink.table.catalog.exceptions.CatalogException
Modify an existing database.- Parameters:
catalogName- Name of the catalog for databasedatabaseName- Name of the database to be droppednewDatabase- The new database definitionignoreIfNotExists- Flag to specify behavior when the given database does not exist: if set to false, throw an exception, if set to true, do nothing.- Throws:
org.apache.flink.table.catalog.exceptions.DatabaseNotExistException- if the given database does not existorg.apache.flink.table.catalog.exceptions.CatalogException- in case of any runtime exception
-
-