Interface Catalog

  • All Known Implementing Classes:
    InMemoryCatalog

    @Internal
    public interface Catalog
    Represents a named and configurable container for managing tables. Is defined with a type and configuration properties. Uses an underlying MetaStore to manage tables and table providers.
    • Field Summary

      Fields 
      Modifier and Type Field Description
      static java.lang.String DEFAULT  
    • Method Detail

      • type

        java.lang.String type()
        A type that defines this catalog.
      • metaStore

        MetaStore metaStore​(java.lang.String database)
        Returns the underlying MetaStore for this database. Creates a new MetaStore if one does not exist yet.
      • currentDatabase

        @Nullable java.lang.String currentDatabase()
        Produces the currently active database. Can be null if no database is active.
        Returns:
        the current active database
      • databases

        java.util.Collection<java.lang.String> databases()
        Returns a collection of existing database names.
      • createDatabase

        boolean createDatabase​(java.lang.String databaseName)
        Creates a database with this name.
        Parameters:
        databaseName -
        Returns:
        true if the database was created, false otherwise.
      • databaseExists

        boolean databaseExists​(java.lang.String db)
        Returns true if the database exists.
      • useDatabase

        void useDatabase​(java.lang.String databaseName)
        Switches to use the specified database.
        Parameters:
        databaseName -
      • dropDatabase

        boolean dropDatabase​(java.lang.String databaseName,
                             boolean cascade)
        Drops the database with this name. If cascade is true, the catalog should first drop all tables contained in this database.
        Parameters:
        databaseName -
        cascade -
        Returns:
        true if the database was dropped, false otherwise.
      • name

        java.lang.String name()
        The name of this catalog, specified by the user.
      • properties

        java.util.Map<java.lang.String,​java.lang.String> properties()
        User-specified configuration properties.