|
|||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | ||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |
java.lang.Object org.eigenbase.rel.AbstractRelNode net.sf.farrago.fennel.rel.FennelMultipleRel com.lucidera.lcs.LcsRowScanRelBase
public abstract class LcsRowScanRelBase
Field Summary | |
---|---|
(package private) List<FemLocalIndex> |
clusteredIndexes
|
(package private) RelOptConnection |
connection
|
private LcsIndexGuide |
indexGuide
|
(package private) double |
inputSelectivity
Selectivity from filtering using the inputs. |
(package private) boolean |
isFullScan
Types of scans to perform. |
(package private) LcsTable |
lcsTable
|
(package private) Integer[] |
projectedColumns
Array of 0-based flattened column ordinals to project; if null, project all columns. |
(package private) Integer[] |
residualColumns
Array of 0-based flattened filter column ordinals. |
Fields inherited from class net.sf.farrago.fennel.rel.FennelMultipleRel |
---|
inputs |
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 | |
---|---|
LcsRowScanRelBase(RelOptCluster cluster,
RelNode[] children,
LcsTable lcsTable,
List<FemLocalIndex> clusteredIndexes,
RelOptConnection connection,
Integer[] projectedColumns,
boolean isFullScan,
Integer[] resCols,
double inputSelectivity)
Creates a new LcsRowScanRel object. |
Method Summary | |
---|---|
RelOptCost |
computeCost(RelOptPlanner planner,
double dRows)
|
RelOptCost |
computeSelfCost(RelOptPlanner planner)
Returns the cost of this plan (not including children). |
protected FemLcsRowScanStreamDef |
createScanStream(FennelRelImplementor implementor)
|
protected RelDataType |
deriveRowType()
|
void |
explain(RelOptPlanWriter pw)
|
protected void |
explain(RelOptPlanWriter pw,
String[] subclassTerms,
Object[] subclassValues)
Explains this LcsRowScanRelBase , appending the additional terms
and values from a subclass. |
List<FemLocalIndex> |
getClusteredIndexes()
|
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. |
RelOptConnection |
getConnection()
|
LcsIndexGuide |
getIndexGuide()
|
double |
getInputSelectivity()
|
int |
getOriginalColumnOrdinal(int projOrdinal)
Gets the original column pos(relative to the table) at projOrdinal |
int |
getProjectedColumnOrdinal(int origColOrdinal)
Returns the projected column ordinal for a given column ordinal, relative to this scan. |
Integer[] |
getProjectedColumns()
|
double |
getRows()
Returns an estimate of the number of rows this relational expression will return. |
RelOptTable |
getTable()
If this relational expression represents an access to a table, returns that table, otherwise returns null. |
boolean |
hasResidualFilters()
|
Object |
implementFennelChild(FennelRelImplementor implementor)
Visits this relational expression as part of the implementation process. |
boolean |
isFullScan()
|
FemExecutionStreamDef |
toStreamDef(FennelRelImplementor implementor)
Converts this relational expression to FemExecutionStreamDef
form. |
Methods inherited from class net.sf.farrago.fennel.rel.FennelMultipleRel |
---|
getFarragoTypeFactory, getInputs, replaceInput |
Methods inherited from class org.eigenbase.rel.AbstractRelNode |
---|
childrenAccept, clone, cloneTraits, collectVariablesSet, collectVariablesUsed, computeDigest, getChildExps, getCluster, getCollationList, getConvention, getCorrelVariable, getDescription, getDigest, getExpectedInputRowType, getId, getInput, getOrCreateCorrelVariable, getQuery, getRelTypeName, getRowType, getTraits, getVariablesStopped, inheritTraitsFrom, isAccessTo, isDistinct, isValid, onRegister, recomputeDigest, register, registerCorrelVariable, 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, clone, collectVariablesSet, collectVariablesUsed, getChildExps, getCluster, getCollationList, getConvention, getCorrelVariable, getDescription, getDigest, getExpectedInputRowType, getId, getInput, getOrCreateCorrelVariable, getQuery, getRelTypeName, getRowType, getTraits, getVariablesStopped, isAccessTo, isDistinct, isValid, onRegister, recomputeDigest, registerCorrelVariable, setCorrelVariable |
Field Detail |
---|
private LcsIndexGuide indexGuide
final List<FemLocalIndex> clusteredIndexes
final LcsTable lcsTable
RelOptConnection connection
final Integer[] projectedColumns
boolean isFullScan
final Integer[] residualColumns
double inputSelectivity
Constructor Detail |
---|
public LcsRowScanRelBase(RelOptCluster cluster, RelNode[] children, LcsTable lcsTable, List<FemLocalIndex> clusteredIndexes, RelOptConnection connection, Integer[] projectedColumns, boolean isFullScan, Integer[] resCols, double inputSelectivity)
cluster
- RelOptCluster for this relchildren
- children inputs into the row scanlcsTable
- table being scannedclusteredIndexes
- list of clusters to use for table access, in
the order in which the clusters are to be scannedconnection
- connectionprojectedColumns
- array of 0-based table-relative column ordinals,
or null to project all columnsisFullScan
- true if doing a full scan of the tableresCols
- residual filter columns (0-length array if none)Method Detail |
---|
public RelOptCost computeSelfCost(RelOptPlanner planner)
RelNode
NOTE 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 RelNode
computeSelfCost
in class AbstractRelNode
public double getRows()
RelNode
NOTE jvs 29-Mar-2006: Don't call this method directly. Instead, use
RelMetadataQuery.getRowCount(org.eigenbase.rel.RelNode)
, which gives plugins a chance to
override the rel's default ideas about row count.
getRows
in interface RelNode
getRows
in class AbstractRelNode
protected RelDataType deriveRowType()
deriveRowType
in class FennelMultipleRel
public void explain(RelOptPlanWriter pw)
explain
in interface RelNode
explain
in class AbstractRelNode
protected void explain(RelOptPlanWriter pw, String[] subclassTerms, Object[] subclassValues)
LcsRowScanRelBase
, appending the additional terms
and values from a subclass.
pw
- RelOptPrintWriter, as in explain(RelOptPlanWriter)
subclassTerms
- additional terms from a subclasssubclassValues
- additional values from a subclasspublic Object implementFennelChild(FennelRelImplementor implementor)
FennelRel
FennelRel.toStreamDef(net.sf.farrago.query.FennelRelImplementor)
.
implementFennelChild
in interface FennelRel
implementFennelChild
in class FennelMultipleRel
public FemExecutionStreamDef toStreamDef(FennelRelImplementor implementor)
FennelRel
FemExecutionStreamDef
form. In the process, the relational expression will almost certainly
call FennelRelImplementor.visitFennelChild(net.sf.farrago.query.FennelRel, int)
on each of its
children.
implementor
- for generating Java code
protected FemLcsRowScanStreamDef createScanStream(FennelRelImplementor implementor)
public LcsIndexGuide getIndexGuide()
public RelOptCost computeCost(RelOptPlanner planner, double dRows)
public FemAbstractColumn getColumnForFieldAccess(int fieldOrdinal)
fieldOrdinal
- 0-based ordinal of an output field of the scan
public int getOriginalColumnOrdinal(int projOrdinal)
projOrdinal
- 0-based ordinal of an output field of the scan
public int getProjectedColumnOrdinal(int origColOrdinal)
origColOrdinal
- original column ordinal (without projection)
public RelOptTable getTable()
RelNode
getTable
in interface RelNode
getTable
in class AbstractRelNode
public RelOptConnection getConnection()
public RelFieldCollation[] getCollations()
FennelRel
TODO: jhyde, 2006/3/28: unify with RelNode.getCollationList()
getCollations
in interface FennelRel
getCollations
in class FennelMultipleRel
public double getInputSelectivity()
public boolean hasResidualFilters()
public List<FemLocalIndex> getClusteredIndexes()
public Integer[] getProjectedColumns()
public boolean isFullScan()
|
|||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | ||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |