public interface Table
The typical way for a table to be created is when Calcite interrogates a
user-defined schema in order to validate names appearing in a SQL query.
Calcite finds the schema by calling
the connection's root schema, then gets a table by calling
Note that a table does not know its name. It is in fact possible for a table to be used more than once, perhaps under multiple names or under multiple schemas. (Compare with the i-node concept in the UNIX filesystem.)
A particular table instance may also implement
to give access to sub-objects.
|Modifier and Type||Method and Description|
Type of table.
Returns this table's row type.
Returns a provider of statistics about this table.
Determines whether the given
Determines whether the given rolled up column can be used inside the given aggregate function.
RelDataType getRowType(RelDataTypeFactory typeFactory)
This is a struct type whose fields describe the names and types of the columns in this table.
The implementer must use the type factory provided. This ensures that the type is converted into a canonical form; other equal types in the same query will use the same object.
typeFactory- Type factory with which to create the type
boolean isRolledUp(String column)
columnhas been rolled up.
boolean rolledUpColumnValidInsideAgg(String column, SqlCall call, SqlNode parent, CalciteConnectionConfig config)
column- The column name for which
call- The aggregate call
parent- Parent node of
config- Config settings. May be null
Copyright © 2012-2020 Apache Software Foundation. All Rights Reserved.