public class RexTableInputRef extends RexInputRef
This object is used by
BuiltInMetadata.ExpressionLineage
and BuiltInMetadata.AllPredicates.
Given a relational expression, its purpose is to be able to reference uniquely
the provenance of a given expression. For that, it uses a unique table reference
(contained in a RexTableInputRef.RelTableRef) and an column index within the table.
For example, A.#0.$3 + 2 column $3 in the 0
occurrence of table A in the plan.
Note that this kind of RexNode is an auxiliary data structure with
a very specific purpose and should not be used in relational expressions.
| Modifier and Type | Class and Description |
|---|---|
static class |
RexTableInputRef.RelTableRef
Identifies uniquely a table by its qualified name and its entity number
(occurrence).
|
RexSlot.SelfPopulatingListname, type| Modifier and Type | Method and Description |
|---|---|
<R,P> R |
accept(RexBiVisitor<R,P> visitor,
P arg)
Accepts a visitor with a payload, dispatching to the right overloaded
RexBiVisitor.visitInputRef(RexInputRef, Object) visitXxx} method. |
<R> R |
accept(RexVisitor<R> visitor)
Accepts a visitor, dispatching to the right overloaded
visitXxx method. |
boolean |
equals(@Nullable Object obj) |
int |
getIdentifier() |
SqlKind |
getKind()
Returns the kind of node this is.
|
List<String> |
getQualifiedName() |
RexTableInputRef.RelTableRef |
getTableRef() |
int |
hashCode() |
static RexTableInputRef |
of(RexTableInputRef.RelTableRef tableRef,
int index,
RelDataType type) |
static RexTableInputRef |
of(RexTableInputRef.RelTableRef tableRef,
RexInputRef ref) |
createName, of, of, of2getName, getTypeisA, isA, isAlwaysFalse, isAlwaysTrue, nodeCount, toStringpublic boolean equals(@Nullable Object obj)
RexNodeEvery node must implement RexNode.equals(java.lang.Object) based on its content
equals in class RexInputRefpublic int hashCode()
RexNodeEvery node must implement RexNode.hashCode() consistent with
RexNode.equals(java.lang.Object)
hashCode in class RexInputRefpublic RexTableInputRef.RelTableRef getTableRef()
public int getIdentifier()
public static RexTableInputRef of(RexTableInputRef.RelTableRef tableRef, int index, RelDataType type)
public static RexTableInputRef of(RexTableInputRef.RelTableRef tableRef, RexInputRef ref)
public <R> R accept(RexVisitor<R> visitor)
RexNodevisitXxx method.
Also see RexUtil.apply(RexVisitor, java.util.List, RexNode),
which applies a visitor to several expressions simultaneously.
accept in class RexInputRefpublic <R,P> R accept(RexBiVisitor<R,P> visitor, P arg)
RexNodeRexBiVisitor.visitInputRef(RexInputRef, Object) visitXxx} method.accept in class RexInputRefpublic SqlKind getKind()
RexNodegetKind in class RexInputRefCopyright © 2012-2022 Apache Software Foundation. All Rights Reserved.