- All Superinterfaces:
public interface ProjectableFilterableTable extends TableTable 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.
All Methods Instance Methods Abstract Methods Modifier and Type Method Description
scan(DataContext root, List<RexNode> filters, int @Nullable  projects)Returns an enumerable over the rows in this Table.
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.
root- Execution context
filters- 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".
- Enumerable over all rows that match the accepted filters, returning
for each row an array of column values, one value for each ordinal in