Package org.apache.calcite.rel.metadata
Class RelMdTableReferences
- java.lang.Object
-
- org.apache.calcite.rel.metadata.RelMdTableReferences
-
- All Implemented Interfaces:
MetadataHandler<BuiltInMetadata.TableReferences>
public class RelMdTableReferences extends java.lang.Object implements MetadataHandler<BuiltInMetadata.TableReferences>
Default implementation ofRelMetadataQuery.getTableReferences(org.apache.calcite.rel.RelNode)
for the standard logical algebra.The goal of this provider is to return all tables used by a given expression identified uniquely by a
RexTableInputRef.RelTableRef
.Each unique identifier
RexTableInputRef.RelTableRef
of a table will equal to the identifier obtained runningRelMdExpressionLineage
over the same plan node for an expression that refers to the same table.If tables cannot be obtained, we return null.
-
-
Field Summary
Fields Modifier and Type Field Description static RelMetadataProvider
SOURCE
-
Constructor Summary
Constructors Modifier Constructor Description protected
RelMdTableReferences()
-
Method Summary
-
-
-
Field Detail
-
SOURCE
public static final RelMetadataProvider SOURCE
-
-
Method Detail
-
getDef
public MetadataDef<BuiltInMetadata.TableReferences> getDef()
- Specified by:
getDef
in interfaceMetadataHandler<BuiltInMetadata.TableReferences>
-
getTableReferences
public java.util.Set<RexTableInputRef.RelTableRef> getTableReferences(RelNode rel, RelMetadataQuery mq)
-
getTableReferences
public java.util.Set<RexTableInputRef.RelTableRef> getTableReferences(HepRelVertex rel, RelMetadataQuery mq)
-
getTableReferences
public java.util.Set<RexTableInputRef.RelTableRef> getTableReferences(RelSubset rel, RelMetadataQuery mq)
-
getTableReferences
public java.util.Set<RexTableInputRef.RelTableRef> getTableReferences(TableScan rel, RelMetadataQuery mq)
TableScan table reference.
-
getTableReferences
public java.util.Set<RexTableInputRef.RelTableRef> getTableReferences(Aggregate rel, RelMetadataQuery mq)
Table references from Aggregate.
-
getTableReferences
public java.util.Set<RexTableInputRef.RelTableRef> getTableReferences(Join rel, RelMetadataQuery mq)
Table references from Join.
-
getTableReferences
public java.util.Set<RexTableInputRef.RelTableRef> getTableReferences(Union rel, RelMetadataQuery mq)
Table references fromUnion
.For Union operator, we might be able to extract multiple table references.
-
getTableReferences
public java.util.Set<RexTableInputRef.RelTableRef> getTableReferences(Project rel, RelMetadataQuery mq)
Table references from Project.
-
getTableReferences
public java.util.Set<RexTableInputRef.RelTableRef> getTableReferences(Filter rel, RelMetadataQuery mq)
Table references from Filter.
-
getTableReferences
public java.util.Set<RexTableInputRef.RelTableRef> getTableReferences(Sort rel, RelMetadataQuery mq)
Table references from Sort.
-
getTableReferences
public java.util.Set<RexTableInputRef.RelTableRef> getTableReferences(Exchange rel, RelMetadataQuery mq)
Table references from Exchange.
-
-