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.SelfPopulatingList| Modifier and Type | Field and Description |
|---|---|
private RexTableInputRef.RelTableRef |
tableRef |
name, type| Modifier | Constructor and Description |
|---|---|
private |
RexTableInputRef(RexTableInputRef.RelTableRef tableRef,
int index,
RelDataType 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(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, toStringprivate final RexTableInputRef.RelTableRef tableRef
private RexTableInputRef(RexTableInputRef.RelTableRef tableRef, int index, RelDataType type)
public boolean equals(Object obj)
equals in class RexInputRefpublic int hashCode()
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–2018 The Apache Software Foundation. All rights reserved.