Interface SqlValidatorNamespace

    • Method Detail

      • getValidator

        SqlValidator getValidator()
        Returns the validator.
        Returns:
        validator
      • getTable

        SqlValidatorTable getTable()
        Returns the underlying table, or null if there is none.
      • getRowType

        RelDataType getRowType()
        Returns the row type of this namespace, which comprises a list of names and types of the output columns. If the scope's type has not yet been derived, derives it.
        Returns:
        Row type of this namespace, never null, always a struct
      • getType

        RelDataType getType()
        Returns the type of this namespace.
        Returns:
        Row type converted to struct
      • setType

        void setType​(RelDataType type)
        Sets the type of this namespace.

        Allows the type for the namespace to be explicitly set, but usually is called during validate(RelDataType).

        Implicitly also sets the row type. If the type is not a struct, then the row type is the type wrapped as a struct with a single column, otherwise the type and row type are the same.

      • getRowTypeSansSystemColumns

        RelDataType getRowTypeSansSystemColumns()
        Returns the row type of this namespace, sans any system columns.
        Returns:
        Row type sans system columns
      • getNode

        SqlNode getNode()
        Returns the parse tree node at the root of this namespace.
        Returns:
        parse tree node; null for TableNamespace
      • getEnclosingNode

        SqlNode getEnclosingNode()
        Returns the parse tree node that at is at the root of this namespace and includes all decorations. If there are no decorations, returns the same as getNode().
      • lookupChild

        SqlValidatorNamespace lookupChild​(java.lang.String name)
        Looks up a child namespace of a given name.

        For example, in the query select e.name from emps as e, e is an IdentifierNamespace which has a child name which is a FieldNamespace.

        Parameters:
        name - Name of namespace
        Returns:
        Namespace
      • fieldExists

        boolean fieldExists​(java.lang.String name)
        Returns whether this namespace has a field of a given name.
        Parameters:
        name - Field name
        Returns:
        Whether field exists
      • getMonotonicExprs

        java.util.List<Pair<SqlNode,​SqlMonotonicity>> getMonotonicExprs()
        Returns a list of expressions which are monotonic in this namespace. For example, if the namespace represents a relation ordered by a column called "TIMESTAMP", then the list would contain a SqlIdentifier called "TIMESTAMP".
      • getMonotonicity

        SqlMonotonicity getMonotonicity​(java.lang.String columnName)
        Returns whether and how a given column is sorted.
      • makeNullable

        @Deprecated
        void makeNullable()
        Deprecated.
      • unwrap

        <T> T unwrap​(java.lang.Class<T> clazz)
        Returns this namespace, or a wrapped namespace, cast to a particular class.
        Parameters:
        clazz - Desired type
        Returns:
        This namespace cast to desired type
        Throws:
        java.lang.ClassCastException - if no such interface is available
      • isWrapperFor

        boolean isWrapperFor​(java.lang.Class<?> clazz)
        Returns whether this namespace implements a given interface, or wraps a class which does.
        Parameters:
        clazz - Interface
        Returns:
        Whether namespace implements given interface
      • resolve

        SqlValidatorNamespace resolve()
        If this namespace resolves to another namespace, returns that namespace, following links to the end of the chain.

        A WITH) clause defines table names that resolve to queries (the body of the with-item). An IdentifierNamespace typically resolves to a TableNamespace.

        You must not call this method before validate(RelDataType) has completed.

      • supportsModality

        boolean supportsModality​(SqlModality modality)
        Returns whether this namespace is capable of giving results of the desired modality. true means streaming, false means relational.
        Parameters:
        modality - Modality