Interface Member
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 Details
-
getName
String getName()The name of this function. -
getParameters
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
Evaluates this member to yield a result. The result is aQueryable
.- Parameters:
schemaInstance
- Object that is an instance of the containingSchema
arguments
- List of arguments to the call; must matchparameters
in number and type- Returns:
- An instance of this schema object, as a Queryable
-