public static interface BuiltInMetadata.ExpressionLineage extends Metadata
| Modifier and Type | Interface and Description |
|---|---|
static interface |
BuiltInMetadata.ExpressionLineage.Handler
Handler API.
|
| Modifier and Type | Field and Description |
|---|---|
static MetadataDef<BuiltInMetadata.ExpressionLineage> |
DEF |
| Modifier and Type | Method and Description |
|---|---|
@Nullable Set<RexNode> |
getExpressionLineage(RexNode expression)
Given the input expression applied on the given
RelNode, this
provider returns the expression with its lineage resolved. |
static final MetadataDef<BuiltInMetadata.ExpressionLineage> DEF
@Nullable Set<RexNode> getExpressionLineage(RexNode expression)
RelNode, this
provider returns the expression with its lineage resolved.
In particular, the result will be a set of nodes which might contain
references to columns in TableScan operators (RexTableInputRef).
An expression can have more than one lineage expression due to Union
operators. However, we do not check column equality in Filter predicates.
Each TableScan operator below the node is identified uniquely by its
qualified name and its entity number.
For example, if the expression is $0 + 2 and $0 originated
from column $3 in the 0 occurrence of table A in the
plan, result will be: A.#0.$3 + 2. Occurrences are generated in no
particular order, but it is guaranteed that if two expressions referred to the
same table, the qualified name + occurrence will be the same.
expression - expression whose lineage we want to resolveAggregate operator)Copyright © 2012-2022 Apache Software Foundation. All Rights Reserved.