Package org.apache.calcite.rel.metadata
Class RelMdInputFieldsUsed
java.lang.Object
org.apache.calcite.rel.metadata.RelMdInputFieldsUsed
- All Implemented Interfaces:
MetadataHandler<BuiltInMetadata.InputFieldsUsed>
public class RelMdInputFieldsUsed
extends Object
implements MetadataHandler<BuiltInMetadata.InputFieldsUsed>
Metadata provider to determine which input fields are used by a RelNode.
A field is considered "used" if it is referenced by the relational
expression. The result is an ImmutableBitSet where bits correspond to
input column ordinals.
Examples:
- For an
Aggregate, "used" fields are those in the group set or referenced in aggregate functions. seeRelOptUtil.getAllFields(org.apache.calcite.rel.core.Aggregate) - For a
Join, it is the union of "used" fields from both inputs (shifted appropriately for the right input). For SEMI and ANTI joins, fields from the right input are not considered "used" as they are not projected to the output
-
Field Summary
Fields -
Constructor Summary
Constructors -
Method Summary
Modifier and TypeMethodDescriptiongetDef()getInputFieldsUsed(Aggregate agg, RelMetadataQuery mq) getInputFieldsUsed(Calc calc, RelMetadataQuery mq) getInputFieldsUsed(Correlate correlate, RelMetadataQuery mq) getInputFieldsUsed(Filter filter, RelMetadataQuery mq) getInputFieldsUsed(Join join, RelMetadataQuery mq) getInputFieldsUsed(Project project, RelMetadataQuery mq) getInputFieldsUsed(SetOp setOp, RelMetadataQuery mq) getInputFieldsUsed(Sort sort, RelMetadataQuery mq) getInputFieldsUsed(TableScan scan, RelMetadataQuery mq) getInputFieldsUsed(Window window, RelMetadataQuery mq) getInputFieldsUsed(RelNode rel, RelMetadataQuery mq) Catch-all implementation forBuiltInMetadata.InputFieldsUsed.getInputFieldsUsed(), invoked using reflection.
-
Field Details
-
SOURCE
-
-
Constructor Details
-
RelMdInputFieldsUsed
public RelMdInputFieldsUsed()
-
-
Method Details
-
getDef
- Specified by:
getDefin interfaceMetadataHandler<BuiltInMetadata.InputFieldsUsed>
-
getInputFieldsUsed
Catch-all implementation forBuiltInMetadata.InputFieldsUsed.getInputFieldsUsed(), invoked using reflection. -
getInputFieldsUsed
-
getInputFieldsUsed
-
getInputFieldsUsed
-
getInputFieldsUsed
-
getInputFieldsUsed
-
getInputFieldsUsed
-
getInputFieldsUsed
-
getInputFieldsUsed
-
getInputFieldsUsed
-
getInputFieldsUsed
-