Class JdbcCatalog

    • Field Detail

    • Constructor Detail

      • JdbcCatalog

        public JdbcCatalog()
      • JdbcCatalog

        public JdbcCatalog​(java.util.function.Function<java.util.Map<java.lang.String,​java.lang.String>,​FileIO> ioBuilder,
                           java.util.function.Function<java.util.Map<java.lang.String,​java.lang.String>,​JdbcClientPool> clientPoolBuilder,
                           boolean initializeCatalogTables)
    • Method Detail

      • initialize

        public void initialize​(java.lang.String name,
                               java.util.Map<java.lang.String,​java.lang.String> properties)
        Description copied from interface: ViewCatalog
        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.

        Specified by:
        initialize in interface Catalog
        Specified by:
        initialize in interface ViewCatalog
        Overrides:
        initialize in class BaseMetastoreViewCatalog
        Parameters:
        name - a custom name for the catalog
        properties - catalog properties
      • dropTable

        public boolean dropTable​(TableIdentifier identifier,
                                 boolean purge)
        Description copied from interface: Catalog
        Drop a table; optionally delete data and metadata files.

        If purge is set to true the implementation should delete all data and metadata files.

        Specified by:
        dropTable in interface Catalog
        Parameters:
        identifier - a table identifier
        purge - if true, delete all data and metadata files in the table
        Returns:
        true if the table was dropped, false if the table did not exist
      • listTables

        public java.util.List<TableIdentifier> listTables​(Namespace namespace)
        Description copied from interface: Catalog
        Return all the identifiers under this namespace.
        Specified by:
        listTables in interface Catalog
        Parameters:
        namespace - a namespace
        Returns:
        a list of identifiers for tables
      • setConf

        public void setConf​(java.lang.Object conf)
        Specified by:
        setConf in interface Configurable<java.lang.Object>
      • createNamespace

        public void createNamespace​(Namespace namespace,
                                    java.util.Map<java.lang.String,​java.lang.String> metadata)
        Description copied from interface: SupportsNamespaces
        Create a namespace in the catalog.
        Specified by:
        createNamespace in interface SupportsNamespaces
        Parameters:
        namespace - a multi-part namespace
        metadata - a string Map of properties for the given namespace
      • listNamespaces

        public java.util.List<Namespace> listNamespaces()
        Description copied from interface: SupportsNamespaces
        List 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.

        Specified by:
        listNamespaces in interface SupportsNamespaces
        Returns:
        a List of namespace Namespace names
      • listNamespaces

        public java.util.List<Namespace> listNamespaces​(Namespace namespace)
                                                 throws NoSuchNamespaceException
        Description copied from interface: SupportsNamespaces
        List 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") and Namespace.of("a", "b", "d")
        • Given: Namespace.of("a", "b", "c")
        • Returns: empty list, because there are no child namespaces
        Specified by:
        listNamespaces in interface SupportsNamespaces
        Returns:
        a List of child Namespace names from the given namespace
        Throws:
        NoSuchNamespaceException - If the namespace does not exist (optional)
      • setProperties

        public boolean setProperties​(Namespace namespace,
                                     java.util.Map<java.lang.String,​java.lang.String> properties)
                              throws NoSuchNamespaceException
        Description copied from interface: SupportsNamespaces
        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.

        Specified by:
        setProperties in interface SupportsNamespaces
        Parameters:
        namespace - a namespace. Namespace
        properties - a collection of metadata to apply to the namespace
        Throws:
        NoSuchNamespaceException - If the namespace does not exist (optional)
      • removeProperties

        public boolean removeProperties​(Namespace namespace,
                                        java.util.Set<java.lang.String> properties)
                                 throws NoSuchNamespaceException
        Description copied from interface: SupportsNamespaces
        Remove a set of property keys from a namespace in the catalog.

        Properties that are not in the given set are not modified or removed by this method.

        Specified by:
        removeProperties in interface SupportsNamespaces
        Parameters:
        namespace - a namespace. Namespace
        properties - a collection of metadata to apply to the namespace
        Throws:
        NoSuchNamespaceException - If the namespace does not exist (optional)
      • close

        public void close()
        Specified by:
        close in interface java.lang.AutoCloseable
        Specified by:
        close in interface java.io.Closeable
        Overrides:
        close in class BaseMetastoreCatalog
      • dropView

        public boolean dropView​(TableIdentifier identifier)
        Description copied from interface: ViewCatalog
        Drop a view.
        Specified by:
        dropView in interface ViewCatalog
        Parameters:
        identifier - a view identifier
        Returns:
        true if the view was dropped, false if the view did not exist
      • listViews

        public java.util.List<TableIdentifier> listViews​(Namespace namespace)
        Description copied from interface: ViewCatalog
        Return all the identifiers under this namespace.
        Specified by:
        listViews in interface ViewCatalog
        Parameters:
        namespace - a namespace
        Returns:
        a list of identifiers for views