net.sf.farrago.namespace.ftrs
Class FtrsTableModificationRel
java.lang.Object
org.eigenbase.rel.AbstractRelNode
org.eigenbase.rel.SingleRel
org.eigenbase.rel.TableModificationRelBase
net.sf.farrago.namespace.impl.MedAbstractFennelTableModRel
net.sf.farrago.namespace.ftrs.FtrsTableModificationRel
- All Implemented Interfaces:
- Cloneable, FennelRel, RelNode
class FtrsTableModificationRel
- extends MedAbstractFennelTableModRel
FtrsTableModificationRel is the relational expression corresponding to
modification of a FTRS table.
- Version:
- $Id: //open/dev/farrago/src/net/sf/farrago/namespace/ftrs/FtrsTableModificationRel.java#31 $
- Author:
- John V. Sichi
|
Field Summary |
(package private) FtrsTable |
ftrsTable
Refinement for TableModificationRel.table. |
| Methods inherited from class org.eigenbase.rel.TableModificationRelBase |
deriveRowType, explain, getExpectedInputRowType, getOperation, getTable, getUpdateColumnList, isDelete, isFlattened, isInsert, isMerge, isUpdate |
| Methods inherited from class org.eigenbase.rel.AbstractRelNode |
cloneTraits, collectVariablesSet, collectVariablesUsed, computeDigest, getChildExps, getCluster, getCollationList, getConvention, getCorrelVariable, getDescription, getDigest, getId, getInput, getOrCreateCorrelVariable, getQuery, getRelTypeName, getRowType, getTraits, getVariablesStopped, inheritTraitsFrom, isAccessTo, isDistinct, isValid, onRegister, recomputeDigest, register, registerCorrelVariable, setCorrelVariable, toString |
| Methods inherited from interface org.eigenbase.rel.RelNode |
childrenAccept, collectVariablesSet, collectVariablesUsed, explain, 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 |
ftrsTable
final FtrsTable ftrsTable
- Refinement for TableModificationRel.table.
FtrsTableModificationRel
public FtrsTableModificationRel(RelOptCluster cluster,
FtrsTable ftrsTable,
RelOptConnection connection,
RelNode child,
TableModificationRelBase.Operation operation,
List<String> updateColumnList)
- Creates a new FtrsTableModificationRel object.
- Parameters:
cluster - RelOptCluster for this relftrsTable - target tableconnection - connection expressionchild - child producing rows to be insertedoperation - modification operation to performupdateColumnList - list of column names to be updated
clone
public FtrsTableModificationRel clone()
- Description copied from interface:
RelNode
- Clones this RelNode.
Traits 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.
- Specified by:
clone in interface RelNode- Specified by:
clone in class AbstractRelNode
- Returns:
- a clone of this RelNode
computeSelfCost
public RelOptCost computeSelfCost(RelOptPlanner planner)
- Description copied from interface:
RelNode
- Returns the cost of this plan (not including children). The base
implementation throws an error; derived classes should override.
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.
- Specified by:
computeSelfCost in interface RelNode- Overrides:
computeSelfCost in class TableModificationRelBase
getUpdateColumnList
private <E extends CwmColumn> List<E> getUpdateColumnList(Class<E> clazz)
toStreamDef
public FemExecutionStreamDef toStreamDef(FennelRelImplementor implementor)
- Description copied from interface:
FennelRel
- Converts this relational expression to
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.
- Parameters:
implementor - for generating Java code
- Returns:
- generated FemExecutionStreamDef