Interface ViewCatalog


  • public interface ViewCatalog
    A Catalog API for view create, drop, and load operations.
    • Method Detail

      • name

        java.lang.String name()
        Return the name for this catalog.
        Returns:
        this catalog's name
      • listViews

        java.util.List<TableIdentifier> listViews​(Namespace namespace)
        Return all the identifiers under this namespace.
        Parameters:
        namespace - a namespace
        Returns:
        a list of identifiers for views
        Throws:
        NoSuchNamespaceException - if the namespace is not found
      • loadView

        View loadView​(TableIdentifier identifier)
        Load a view.
        Parameters:
        identifier - a view identifier
        Returns:
        instance of View implementation referred by the identifier
        Throws:
        NoSuchViewException - if the view does not exist
      • viewExists

        default boolean viewExists​(TableIdentifier identifier)
        Check whether view exists.
        Parameters:
        identifier - a view identifier
        Returns:
        true if the view exists, false otherwise
      • buildView

        ViewBuilder buildView​(TableIdentifier identifier)
        Instantiate a builder to create or replace a SQL view.
        Parameters:
        identifier - a view identifier
        Returns:
        a view builder
      • dropView

        boolean dropView​(TableIdentifier identifier)
        Drop a view.
        Parameters:
        identifier - a view identifier
        Returns:
        true if the view was dropped, false if the view did not exist
      • invalidateView

        default void invalidateView​(TableIdentifier identifier)
        Invalidate cached view metadata from current catalog.

        If the view is already loaded or cached, drop cached data. If the view does not exist or is not cached, do nothing.

        Parameters:
        identifier - a view identifier
      • initialize

        default void initialize​(java.lang.String name,
                                java.util.Map<java.lang.String,​java.lang.String> properties)
        Initialize a view catalog given a custom name and a map of catalog properties.

        A custom view catalog implementation must have a no-arg constructor. A compute engine like Spark or Flink will first initialize the catalog without any arguments, and then call this method to complete catalog initialization with properties passed into the engine.

        Parameters:
        name - a custom name for the catalog
        properties - catalog properties