Interface CatalogView

All Superinterfaces:
CatalogBaseTable
All Known Implementing Classes:
ResolvedCatalogView

@PublicEvolving public interface CatalogView extends CatalogBaseTable
Represents the unresolved metadata of a view in a Catalog.

It contains all characteristics that can be expressed in a SQL CREATE VIEW statement. The framework will resolve instances of this interface to a ResolvedCatalogView before usage.

A catalog implementer can either use of(Schema, String, String, String, Map) for a basic implementation of this interface or create a custom class that allows passing catalog-specific objects (if necessary).

  • Method Details

    • of

      static CatalogView of(Schema schema, @Nullable String comment, String originalQuery, String expandedQuery, Map<String,String> options)
      Creates a basic implementation of this interface.

      The signature is similar to a SQL CREATE VIEW statement.

      Parameters:
      schema - unresolved schema
      comment - optional comment
      originalQuery - original text of the view definition
      expandedQuery - expanded text of the original view definition with materialized identifiers
      options - options to configure the connector
    • getTableKind

      default CatalogBaseTable.TableKind getTableKind()
      Description copied from interface: CatalogBaseTable
      The kind of table this CatalogBaseTable describes.
      Specified by:
      getTableKind in interface CatalogBaseTable
    • getOriginalQuery

      String getOriginalQuery()
      Original text of the view definition that also preserves the original formatting.
      Returns:
      the original string literal provided by the user.
    • getExpandedQuery

      String getExpandedQuery()
      Expanded text of the original view definition This is needed because the context such as current DB is lost after the session, in which view is defined, is gone. Expanded query text takes care of this, as an example.

      For example, for a view that is defined in the context of "default" database with a query select * from test1, the expanded query text might become select `test1`.`name`, `test1`.`value` from `default`.`test1`, where table test1 resides in database "default" and has two columns ("name" and "value").

      Returns:
      the view definition in expanded text.