Class LogicalTableScan

  • All Implemented Interfaces:
    java.lang.Cloneable, RelOptNode, RelNode

    public final class LogicalTableScan
    extends TableScan
    A LogicalTableScan reads all the rows from a RelOptTable.

    If the table is a net.sf.saffron.ext.JdbcTable, then this is literally possible. But for other kinds of tables, there may be many ways to read the data from the table. For some kinds of table, it may not even be possible to read all of the rows unless some narrowing constraint is applied.

    In the example of the net.sf.saffron.ext.ReflectSchema schema,

    select from fields

    cannot be implemented, but

    select from fields as f
     where f.getClass().getName().equals("java.lang.String")

    can. It is the optimizer's responsibility to find these ways, by applying transformation rules.