Interface Member


  • public interface Member
    A named expression in a schema.

    Examples of members

    Several kinds of members crop up in real life. They all implement the Member interface, but tend to be treated differently by the back-end system if not by Calcite.

    A member that has zero arguments and a type that is a collection of records is referred to as a relation. In schemas backed by a relational database, tables and views will appear as relations.

    A member that has one or more arguments and a type that is a collection of records is referred to as a parameterized relation. Some relational databases support these; for example, Oracle calls them "table functions".

    Members may be also more typical of programming-language functions: they take zero or more arguments, and return a result of arbitrary type.

    From the above definitions, you can see that a member is a special kind of function. This makes sense, because even though it has no arguments, it is "evaluated" each time it is used in a query.

    • Method Detail

      • getName

        java.lang.String getName()
        The name of this function.
      • getParameters

        java.util.List<FunctionParameter> getParameters()
        Returns the parameters of this member.
        Returns:
        Parameters; never null
      • getType

        RelDataType getType()
        Returns the type of this function's result.
        Returns:
        Type of result; never null
      • evaluate

        Queryable evaluate​(java.lang.Object schemaInstance,
                           java.util.List<java.lang.Object> arguments)
        Evaluates this member to yield a result. The result is a Queryable.
        Parameters:
        schemaInstance - Object that is an instance of the containing Schema
        arguments - List of arguments to the call; must match parameters in number and type
        Returns:
        An instance of this schema object, as a Queryable