- Direct Known Subclasses:
public abstract class Snapshot extends SingleRel
For example, if
Products is a temporal table, and
TableScan(Products) is a relational operator that returns all
versions of the contents of the table, then
Snapshot(TableScan(Products)) is a relational operator that only
returns the contents whose versions that overlap with the given specific
period (i.e. those that started before given period and ended after it).
Nested Class Summary
Modifier and Type Method Description
accept(RexShuttle shuttle)Accepts a visit from a shuttle.
copy(RelTraitSet traitSet, List<RelNode> inputs)Creates a copy of this relational expression, perhaps changing traits and inputs.
copy(RelTraitSet traitSet, RelNode input, RexNode period)
explainTerms(RelWriter pw)Describes the inputs and attributes of this relational expression.
isValid(Litmus litmus, RelNode.Context context)Returns whether this relational expression is valid.
Methods inherited from class org.apache.calcite.rel.SingleRel
childrenAccept, deriveRowType, estimateRowCount, getInput, getInputs, replaceInput
Methods inherited from class org.apache.calcite.rel.AbstractRelNode
accept, collectVariablesSet, collectVariablesUsed, computeSelfCost, deepEquals, deepHashCode, equals, explain, getCluster, getConvention, getCorrelVariable, getDescription, getDigest, getExpectedInputRowType, getId, getInput, getRelDigest, getRelTypeName, getRowType, getTable, getTraitSet, getVariablesSet, hashCode, isEnforcer, metadata, onRegister, recomputeDigest, register, sole, toString
Methods inherited from class java.lang.Object
clone, finalize, getClass, notify, notifyAll, wait, wait, wait
Creates a Snapshot.
cluster- Cluster that this relational expression belongs to
traitSet- The traits of this relational expression
input- Input relational expression
period- Timestamp expression which as the table was at the given time in the past
Creates a copy of this relational expression, perhaps changing traits and inputs.
Sub-classes with other important attributes are encouraged to create variants of this method with more parameters.
Accepts a visit from a shuttle. If the shuttle updates expression, then a copy of the relation should be created. This new relation might have a different row-type.
Description copied from class:
AbstractRelNodeDescribes the inputs and attributes of this relational expression. Each node should call
super.explainTerms, then call the
RelWriterImpl.item(String, Object)methods for each input and attribute.
public RexNode getPeriod()
Returns whether this relational expression is valid.
If assertions are enabled, this method is typically called with
THROW, as follows:
This signals that the method can throw an
AssertionErrorif it is not valid.