|
|||||||||
| PREV CLASS NEXT CLASS | FRAMES NO FRAMES | ||||||||
| SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD | ||||||||
java.lang.Objectorg.eigenbase.rel.AbstractRelNode
org.eigenbase.rel.TableAccessRelBase
net.sf.farrago.namespace.ftrs.FtrsIndexScanRel
class FtrsIndexScanRel
FtrsIndexScanRel is the relational expression corresponding to a scan via a particular index over the contents of a table stored in FTRS format.
| Field Summary | |
|---|---|
(package private) FtrsTable |
ftrsTable
Refinement for super.table. |
(package private) FemLocalIndex |
index
Index to use for access. |
private FtrsIndexGuide |
indexGuide
|
(package private) boolean |
isOrderPreserving
|
(package private) Integer[] |
projectedColumns
Array of 0-based flattened column ordinals to project; if null, project all columns. |
| Fields inherited from class org.eigenbase.rel.TableAccessRelBase |
|---|
connection, table |
| Fields inherited from class org.eigenbase.rel.AbstractRelNode |
|---|
digest, id, rowType, traits |
| Fields inherited from interface net.sf.farrago.query.FennelRel |
|---|
FENNEL_EXEC_CONVENTION |
| Fields inherited from interface org.eigenbase.rel.RelNode |
|---|
emptyArray |
| Constructor Summary | |
|---|---|
FtrsIndexScanRel(RelOptCluster cluster,
FtrsTable ftrsTable,
FemLocalIndex index,
RelOptConnection connection,
Integer[] projectedColumns,
boolean isOrderPreserving)
Creates a new FtrsIndexScanRel object. |
|
| Method Summary | |
|---|---|
FtrsIndexScanRel |
clone()
Clones this RelNode. |
(package private) RelOptCost |
computeCost(RelOptPlanner planner,
double dRows)
|
private Integer[] |
computeProjectedColumns()
|
RelOptCost |
computeSelfCost(RelOptPlanner planner)
Returns the cost of this plan (not including children). |
(package private) void |
defineScanStream(FemIndexScanDef scanStream)
Fills in a stream definition for this scan. |
RelDataType |
deriveRowType()
|
void |
explain(RelOptPlanWriter pw)
|
RelFieldCollation[] |
getCollations()
TODO: jhyde, 2006/3/28: unify with RelNode.getCollationList() |
FemAbstractColumn |
getColumnForFieldAccess(int fieldOrdinal)
Gets the column referenced by a FieldAccess relative to this scan. |
FtrsIndexGuide |
getIndexGuide()
|
Object |
implementFennelChild(FennelRelImplementor implementor)
Visits this relational expression as part of the implementation process. |
FemExecutionStreamDef |
toStreamDef(FennelRelImplementor implementor)
Converts this relational expression to FemExecutionStreamDef
form. |
| Methods inherited from class org.eigenbase.rel.TableAccessRelBase |
|---|
getCollationList, getConnection, getRows, getTable |
| Methods inherited from class org.eigenbase.rel.AbstractRelNode |
|---|
childrenAccept, cloneTraits, collectVariablesSet, collectVariablesUsed, computeDigest, getChildExps, getCluster, getConvention, getCorrelVariable, getDescription, getDigest, getExpectedInputRowType, getId, getInput, getInputs, getOrCreateCorrelVariable, getQuery, getRelTypeName, getRowType, getTraits, getVariablesStopped, inheritTraitsFrom, isAccessTo, isDistinct, isValid, onRegister, recomputeDigest, register, registerCorrelVariable, replaceInput, setCorrelVariable, toString |
| Methods inherited from class java.lang.Object |
|---|
equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait |
| Methods inherited from interface org.eigenbase.rel.RelNode |
|---|
childrenAccept, collectVariablesSet, collectVariablesUsed, getChildExps, getCluster, getCollationList, getConvention, getCorrelVariable, getDescription, getDigest, getExpectedInputRowType, getId, getInput, getInputs, getOrCreateCorrelVariable, getQuery, getRelTypeName, getRows, getRowType, getTable, getTraits, getVariablesStopped, isAccessTo, isDistinct, isValid, onRegister, recomputeDigest, registerCorrelVariable, replaceInput, setCorrelVariable |
| Field Detail |
|---|
final FemLocalIndex index
final FtrsTable ftrsTable
final Integer[] projectedColumns
final boolean isOrderPreserving
private FtrsIndexGuide indexGuide
| Constructor Detail |
|---|
public FtrsIndexScanRel(RelOptCluster cluster,
FtrsTable ftrsTable,
FemLocalIndex index,
RelOptConnection connection,
Integer[] projectedColumns,
boolean isOrderPreserving)
cluster - RelOptCluster for this relftrsTable - table being scannedindex - index to use for table accessconnection - connectionprojectedColumns - array of 0-based table-relative column ordinals,
or null to project all columnsisOrderPreserving - if true, returned rows must be in index order;
if false, rows can be returned out of order| Method Detail |
|---|
public FtrsIndexGuide getIndexGuide()
public FemAbstractColumn getColumnForFieldAccess(int fieldOrdinal)
fieldOrdinal - 0-based ordinal of an output field of the scan
public FtrsIndexScanRel clone()
RelNodeTraits of the RelNode must be explicitly cloned, using AbstractRelNode.inheritTraitsFrom(AbstractRelNode), as the RelNode may
have traits of which it has no knowledge. Example implementation:
public MyRelNode clone()
{
MyRelNode clone = new MyRelNode(...);
clone.inheritTraitsFrom(this);
return clone;
}
N.B.: This method must be overridden whenever an existing,
concrete RelNode is extended. Otherwise, calling clone() will produce a
differently typed RelNode, resulting in invalid or incorrect query plans.
clone in interface RelNodeclone in class TableAccessRelBasepublic RelOptCost computeSelfCost(RelOptPlanner planner)
RelNodeNOTE jvs 29-Mar-2006: Don't call this method directly. Instead, use
RelMetadataQuery.getNonCumulativeCost(org.eigenbase.rel.RelNode), which gives plugins a
chance to override the rel's default ideas about cost.
computeSelfCost in interface RelNodecomputeSelfCost in class TableAccessRelBasepublic RelDataType deriveRowType()
deriveRowType in class TableAccessRelBasepublic void explain(RelOptPlanWriter pw)
explain in interface RelNodeexplain in class TableAccessRelBasepublic Object implementFennelChild(FennelRelImplementor implementor)
FennelRelFennelRel.toStreamDef(net.sf.farrago.query.FennelRelImplementor).
implementFennelChild in interface FennelRelpublic FemExecutionStreamDef toStreamDef(FennelRelImplementor implementor)
FennelRelFemExecutionStreamDef
form. In the process, the relational expression will almost certainly
call FennelRelImplementor.visitFennelChild(net.sf.farrago.query.FennelRel, int) on each of its
children.
toStreamDef in interface FennelRelimplementor - for generating Java code
RelOptCost computeCost(RelOptPlanner planner,
double dRows)
void defineScanStream(FemIndexScanDef scanStream)
scanStream - stream definition to fill inprivate Integer[] computeProjectedColumns()
public RelFieldCollation[] getCollations()
FennelRelTODO: jhyde, 2006/3/28: unify with RelNode.getCollationList()
getCollations in interface FennelRel
|
|||||||||
| PREV CLASS NEXT CLASS | FRAMES NO FRAMES | ||||||||
| SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD | ||||||||