org.eigenbase.rel
Class TableModificationRel
java.lang.Object
org.eigenbase.rel.AbstractRelNode
org.eigenbase.rel.SingleRel
org.eigenbase.rel.TableModificationRelBase
org.eigenbase.rel.TableModificationRel
- All Implemented Interfaces:
- Cloneable, RelNode
public final class TableModificationRel
- extends TableModificationRelBase
TableModificationRel is like TableAccessRel, but represents a request to
modify a table rather than read from it. It takes one child which produces
the modified rows. (For INSERT, the new values; for DELETE, the old values;
for UPDATE, all old values plus updated new values.)
- Version:
- $Id: //open/dev/farrago/src/org/eigenbase/rel/TableModificationRel.java#15 $
Methods inherited from class org.eigenbase.rel.TableModificationRelBase |
computeSelfCost, deriveRowType, explain, getConnection, 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 |
TableModificationRel
public TableModificationRel(RelOptCluster cluster,
RelOptTable table,
RelOptConnection connection,
RelNode child,
TableModificationRelBase.Operation operation,
List<String> updateColumnList,
boolean flattened)
clone
public TableModificationRel 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