public final class LogicalTableScan
extends org.apache.calcite.rel.core.TableScan
LogicalTableScan
reads all the rows from a RelOptTable
.
This class is copied from Calcite because the explainTerms(org.apache.calcite.rel.RelWriter)
should consider hints.
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.
Constructor and Description |
---|
LogicalTableScan(org.apache.calcite.rel.RelInput input)
Creates a LogicalTableScan by parsing serialized output.
|
LogicalTableScan(org.apache.calcite.plan.RelOptCluster cluster,
org.apache.calcite.plan.RelOptTable table)
Deprecated.
|
LogicalTableScan(org.apache.calcite.plan.RelOptCluster cluster,
org.apache.calcite.plan.RelTraitSet traitSet,
List<org.apache.calcite.rel.hint.RelHint> hints,
org.apache.calcite.plan.RelOptTable table)
Creates a LogicalTableScan.
|
LogicalTableScan(org.apache.calcite.plan.RelOptCluster cluster,
org.apache.calcite.plan.RelTraitSet traitSet,
org.apache.calcite.plan.RelOptTable table)
Deprecated.
|
Modifier and Type | Method and Description |
---|---|
org.apache.calcite.rel.RelNode |
copy(org.apache.calcite.plan.RelTraitSet traitSet,
List<org.apache.calcite.rel.RelNode> inputs) |
static LogicalTableScan |
create(org.apache.calcite.plan.RelOptCluster cluster,
org.apache.calcite.plan.RelOptTable relOptTable,
List<org.apache.calcite.rel.hint.RelHint> hints)
Creates a LogicalTableScan.
|
org.apache.calcite.rel.RelWriter |
explainTerms(org.apache.calcite.rel.RelWriter pw) |
org.apache.calcite.rel.RelNode |
withHints(List<org.apache.calcite.rel.hint.RelHint> hintList) |
accept, computeSelfCost, deriveRowType, estimateRowCount, getHints, getTable, identity, identity, project
accept, childrenAccept, collectVariablesSet, collectVariablesUsed, deepEquals, deepHashCode, equals, explain, getCluster, getConvention, getCorrelVariable, getDescription, getDigest, getExpectedInputRowType, getId, getInput, getInputs, getRelDigest, getRelTypeName, getRowType, getTraitSet, getVariablesSet, hashCode, isEnforcer, isValid, metadata, onRegister, recomputeDigest, register, replaceInput, sole, toString
public LogicalTableScan(org.apache.calcite.plan.RelOptCluster cluster, org.apache.calcite.plan.RelTraitSet traitSet, List<org.apache.calcite.rel.hint.RelHint> hints, org.apache.calcite.plan.RelOptTable table)
Use create(org.apache.calcite.plan.RelOptCluster, org.apache.calcite.plan.RelOptTable, java.util.List<org.apache.calcite.rel.hint.RelHint>)
unless you know what you're doing.
@Deprecated public LogicalTableScan(org.apache.calcite.plan.RelOptCluster cluster, org.apache.calcite.plan.RelTraitSet traitSet, org.apache.calcite.plan.RelOptTable table)
@Deprecated public LogicalTableScan(org.apache.calcite.plan.RelOptCluster cluster, org.apache.calcite.plan.RelOptTable table)
public LogicalTableScan(org.apache.calcite.rel.RelInput input)
public org.apache.calcite.rel.RelNode copy(org.apache.calcite.plan.RelTraitSet traitSet, List<org.apache.calcite.rel.RelNode> inputs)
copy
in interface org.apache.calcite.rel.RelNode
copy
in class org.apache.calcite.rel.AbstractRelNode
public org.apache.calcite.rel.RelWriter explainTerms(org.apache.calcite.rel.RelWriter pw)
explainTerms
in class org.apache.calcite.rel.core.TableScan
public static LogicalTableScan create(org.apache.calcite.plan.RelOptCluster cluster, org.apache.calcite.plan.RelOptTable relOptTable, List<org.apache.calcite.rel.hint.RelHint> hints)
cluster
- ClusterrelOptTable
- Tablehints
- The hintspublic org.apache.calcite.rel.RelNode withHints(List<org.apache.calcite.rel.hint.RelHint> hintList)
Copyright © 2014–2022 The Apache Software Foundation. All rights reserved.