Package org.apache.calcite.schema
Interface ProjectableFilterableTable
- All Superinterfaces:
Table
Table that can be scanned, optionally applying supplied filter expressions,
and projecting a given list of columns,
without creating an intermediate relational expression.
If you wish to write a table that can apply projects but not filters, simply decline all filters.
- See Also:
-
Method Summary
Modifier and TypeMethodDescriptionEnumerable<@Nullable Object[]>
scan
(DataContext root, List<RexNode> filters, int @Nullable [] projects) Returns an enumerable over the rows in this Table.Methods inherited from interface org.apache.calcite.schema.Table
getJdbcTableType, getRowType, getStatistic, isRolledUp, rolledUpColumnValidInsideAgg
-
Method Details
-
scan
Enumerable<@Nullable Object[]> scan(DataContext root, List<RexNode> filters, int @Nullable [] projects) Returns an enumerable over the rows in this Table.Each row is represented as an array of its column values.
The list of filters is mutable. If the table can implement a particular filter, it should remove that filter from the list. If it cannot implement a filter, it should leave it in the list. Any filters remaining will be implemented by the consuming Calcite operator.
The projects are zero-based.
- Parameters:
root
- Execution contextfilters
- Mutable list of filters. The method should keep in the list any filters that it cannot apply.projects
- List of projects. Each is the 0-based ordinal of the column to project. Null means "project all columns".- Returns:
- Enumerable over all rows that match the accepted filters, returning
for each row an array of column values, one value for each ordinal in
projects
.
-