org.eigenbase.rel
Class TableModificationRelBase
java.lang.Object
  
org.eigenbase.rel.AbstractRelNode
      
org.eigenbase.rel.SingleRel
          
org.eigenbase.rel.TableModificationRelBase
- All Implemented Interfaces: 
 - Cloneable, RelNode
 
- Direct Known Subclasses: 
 - MedAbstractFennelTableModRel, TableModificationRel
 
public abstract class TableModificationRelBase
- extends SingleRel
 
TableModificationRelBase is an abstract base class for
 implementations of TableModificationRel.
- Version:
 
  - $Id: //open/dev/farrago/src/org/eigenbase/rel/TableModificationRelBase.java#13 $
 
- Author:
 
  - John V. Sichi
 
 
 
 
 
 
 
 
| Methods inherited from class org.eigenbase.rel.AbstractRelNode | 
clone, 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 | 
 
 
connection
protected RelOptConnection connection
- The connection to the optimizing session.
 
table
protected final RelOptTable table
- The table definition.
 
operation
private final TableModificationRelBase.Operation operation
updateColumnList
private final List<String> updateColumnList
inputRowType
private RelDataType inputRowType
flattened
private final boolean flattened
TableModificationRelBase
protected TableModificationRelBase(RelOptCluster cluster,
                                   RelTraitSet traits,
                                   RelOptTable table,
                                   RelOptConnection connection,
                                   RelNode child,
                                   TableModificationRelBase.Operation operation,
                                   List<String> updateColumnList,
                                   boolean flattened)
getConnection
public RelOptConnection getConnection()
 
getTable
public RelOptTable getTable()
- Description copied from interface: 
RelNode 
- If this relational expression represents an access to a table, returns
 that table, otherwise returns null.
- Specified by:
 getTable in interface RelNode- Overrides:
 getTable in class AbstractRelNode
 
 
 
getUpdateColumnList
public List<String> getUpdateColumnList()
 
isFlattened
public boolean isFlattened()
 
getOperation
public TableModificationRelBase.Operation getOperation()
 
isInsert
public boolean isInsert()
 
isUpdate
public boolean isUpdate()
 
isDelete
public boolean isDelete()
 
isMerge
public boolean isMerge()
 
deriveRowType
public RelDataType deriveRowType()
- Overrides:
 deriveRowType in class SingleRel
 
 
getExpectedInputRowType
public RelDataType getExpectedInputRowType(int ordinalInParent)
- Description copied from interface: 
RelNode 
- Returns the type of the rows expected for an input. Defaults to 
RelNode.getRowType().
- Specified by:
 getExpectedInputRowType in interface RelNode- Overrides:
 getExpectedInputRowType in class AbstractRelNode
 
- Parameters:
 ordinalInParent - input's 0-based ordinal with respect to this
 parent rel
- Returns:
 - expected row type
 
 
 
explain
public void explain(RelOptPlanWriter pw)
- Specified by:
 explain in interface RelNode- Overrides:
 explain in class SingleRel
 
 
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 AbstractRelNode