Class ExecNodeBase<T>
java.lang.Object
org.apache.flink.table.planner.plan.nodes.exec.ExecNodeBase<T>
- Type Parameters:
T- The type of the elements that result from this node.
- All Implemented Interfaces:
ExecNode<T>,ExecNodeTranslator<T>,FusionCodegenExecNode
- Direct Known Subclasses:
BatchExecAdaptiveJoin,BatchExecBoundedStreamScan,BatchExecDynamicFilteringDataCollector,BatchExecExecutionOrderEnforcer,BatchExecGlobalRuntimeFilterBuilder,BatchExecHashAggregate,BatchExecHashJoin,BatchExecHashWindowAggregate,BatchExecInputAdapter,BatchExecLimit,BatchExecLocalRuntimeFilterBuilder,BatchExecMultipleInput,BatchExecNestedLoopJoin,BatchExecOverAggregateBase,BatchExecPythonGroupAggregate,BatchExecPythonGroupWindowAggregate,BatchExecRank,BatchExecRuntimeFilter,BatchExecScriptTransform,BatchExecSort,BatchExecSortAggregate,BatchExecSortLimit,BatchExecSortMergeJoin,BatchExecSortWindowAggregate,CommonExecAsyncCalc,CommonExecCalc,CommonExecCorrelate,CommonExecExchange,CommonExecExpand,CommonExecLegacySink,CommonExecLegacyTableSourceScan,CommonExecLookupJoin,CommonExecMatch,CommonExecPythonCalc,CommonExecPythonCorrelate,CommonExecSink,CommonExecTableSourceScan,CommonExecUnion,CommonExecValues,CommonExecWindowTableFunction,StreamExecAggregateBase,StreamExecChangelogNormalize,StreamExecDataStreamScan,StreamExecDeduplicate,StreamExecDropUpdateBefore,StreamExecGroupTableAggregate,StreamExecIntervalJoin,StreamExecJoin,StreamExecMiniBatchAssigner,StreamExecMultipleInput,StreamExecOverAggregate,StreamExecPythonGroupTableAggregate,StreamExecPythonOverAggregate,StreamExecRank,StreamExecSort,StreamExecTemporalJoin,StreamExecTemporalSort,StreamExecWatermarkAssigner,StreamExecWindowDeduplicate,StreamExecWindowJoin,StreamExecWindowRank
Base class for
ExecNode.-
Field Summary
Fields inherited from interface org.apache.flink.table.planner.plan.nodes.exec.ExecNode
FIELD_NAME_CONFIGURATION, FIELD_NAME_DESCRIPTION, FIELD_NAME_ID, FIELD_NAME_INPUT_PROPERTIES, FIELD_NAME_OUTPUT_TYPE, FIELD_NAME_STATE, FIELD_NAME_TYPE -
Constructor Summary
ConstructorsModifierConstructorDescriptionprotectedExecNodeBase(int id, ExecNodeContext context, org.apache.flink.configuration.ReadableConfig persistedConfig, List<InputProperty> inputProperties, org.apache.flink.table.types.logical.LogicalType outputType, String description) -
Method Summary
Modifier and TypeMethodDescriptionvoidaccept(ExecNodeVisitor visitor) Accepts a visit from aExecNodeVisitor.protected StringcreateFormattedTransformationDescription(String description, org.apache.flink.configuration.ReadableConfig config) protected StringcreateFormattedTransformationName(String detailName, String simplifiedName, org.apache.flink.configuration.ReadableConfig config) protected StringcreateTransformationDescription(org.apache.flink.configuration.ReadableConfig config) protected TransformationMetadatacreateTransformationMeta(String operatorName, String detailName, String simplifiedName, ExecNodeConfig config) protected TransformationMetadatacreateTransformationMeta(String operatorName, ExecNodeConfig config) protected StringcreateTransformationName(org.apache.flink.configuration.ReadableConfig config) protected StringcreateTransformationUid(String operatorName, ExecNodeConfig config) protected final ExecNodeContextRetrieves the default context from theExecNodeMetadataannotation to be serialized into the JSON plan.Returns a string which describes this node.final intgetId()The unique ID of the node.Returns a list of this node's inputExecEdges.Returns a list of this node's input properties.org.apache.flink.table.types.logical.LogicalTypeReturns the outputLogicalTypeof this node, this type should be consistent with the type parameterExecNode.org.apache.flink.configuration.ReadableConfigprotected Stringorg.apache.flink.api.dag.Transformation<T>protected booleanWhether singleton distribution is required.voidreplaceInputEdge(int index, ExecEdge newInputEdge) Replaces theordinalInParentth input edge.voidsetCompiled(boolean compiled) Declares whether the node has been created as part of a plan compilation.voidsetInputEdges(List<ExecEdge> inputEdges) Sets the inputExecEdges which connect this nodes and its input nodes.booleanWhether this ExecNode supports OFCG or not.translateToFusionCodegenSpec(org.apache.flink.table.delegation.Planner planner, CodeGeneratorContext parentCtx) Translates this node into aOpFusionCodegenSpecGenerator.protected OpFusionCodegenSpecGeneratortranslateToFusionCodegenSpecInternal(PlannerBase planner, ExecNodeConfig config, CodeGeneratorContext parentCtx) Internal method, translates this node into a operator codegen spec generator.final org.apache.flink.api.dag.Transformation<T>translateToPlan(org.apache.flink.table.delegation.Planner planner) Translates this node into aTransformation.protected abstract org.apache.flink.api.dag.Transformation<T>translateToPlanInternal(PlannerBase planner, ExecNodeConfig config) Internal method, translates this node into a Flink operator.
-
Constructor Details
-
ExecNodeBase
protected ExecNodeBase(int id, ExecNodeContext context, org.apache.flink.configuration.ReadableConfig persistedConfig, List<InputProperty> inputProperties, org.apache.flink.table.types.logical.LogicalType outputType, String description)
-
-
Method Details
-
getContextFromAnnotation
Retrieves the default context from theExecNodeMetadataannotation to be serialized into the JSON plan. -
getPersistedConfig
public org.apache.flink.configuration.ReadableConfig getPersistedConfig() -
getId
public final int getId()Description copied from interface:ExecNodeThe unique ID of the node. -
getDescription
Description copied from interface:ExecNodeReturns a string which describes this node.- Specified by:
getDescriptionin interfaceExecNode<T>
-
getOutputType
public org.apache.flink.table.types.logical.LogicalType getOutputType()Description copied from interface:ExecNodeReturns the outputLogicalTypeof this node, this type should be consistent with the type parameterExecNode.Such as, if T is
RowData, the output type should beRowType. please refer to the JavaDoc ofRowDatafor more info about mapping of logical types to internal data structures.- Specified by:
getOutputTypein interfaceExecNode<T>
-
getInputProperties
Description copied from interface:ExecNodeReturns a list of this node's input properties.NOTE: If there are no inputs, returns an empty list, not null.
- Specified by:
getInputPropertiesin interfaceExecNode<T>- Returns:
- List of this node's input properties.
-
getInputEdges
Description copied from interface:ExecNodeReturns a list of this node's inputExecEdges.NOTE: If there are no inputs, returns an empty list, not null.
- Specified by:
getInputEdgesin interfaceExecNode<T>
-
setInputEdges
Description copied from interface:ExecNodeSets the inputExecEdges which connect this nodes and its input nodes.NOTE: If there are no inputs, the given inputEdges should be empty, not null.
- Specified by:
setInputEdgesin interfaceExecNode<T>- Parameters:
inputEdges- the inputExecEdges.
-
replaceInputEdge
Description copied from interface:ExecNodeReplaces theordinalInParentth input edge.- Specified by:
replaceInputEdgein interfaceExecNode<T>- Parameters:
index- Position of the child input edge, 0 is the first.newInputEdge- New edge that should be put at position `index`.
-
translateToPlan
public final org.apache.flink.api.dag.Transformation<T> translateToPlan(org.apache.flink.table.delegation.Planner planner) Description copied from interface:ExecNodeTranslatorTranslates this node into aTransformation.NOTE: This method should return same translate result if called multiple times.
- Specified by:
translateToPlanin interfaceExecNodeTranslator<T>- Parameters:
planner- ThePlannerof the translated graph.
-
accept
Description copied from interface:ExecNodeAccepts a visit from aExecNodeVisitor. -
setCompiled
public void setCompiled(boolean compiled) Description copied from interface:ExecNodeDeclares whether the node has been created as part of a plan compilation. Some translation properties might be impacted by this (e.g. UID generation for transformations).- Specified by:
setCompiledin interfaceExecNode<T>
-
translateToPlanInternal
protected abstract org.apache.flink.api.dag.Transformation<T> translateToPlanInternal(PlannerBase planner, ExecNodeConfig config) Internal method, translates this node into a Flink operator.- Parameters:
planner- The planner.config- per-ExecNodeconfiguration that contains the merged configuration from various layers which all the nodes implementing this method should use, instead of retrieving configuration from theplanner. For more details checkExecNodeConfig.
-
inputsContainSingleton
protected boolean inputsContainSingleton()Whether singleton distribution is required. -
getSimplifiedName
-
createTransformationUid
-
createTransformationName
-
createTransformationDescription
protected String createTransformationDescription(org.apache.flink.configuration.ReadableConfig config) -
createTransformationMeta
protected TransformationMetadata createTransformationMeta(String operatorName, ExecNodeConfig config) -
createTransformationMeta
protected TransformationMetadata createTransformationMeta(String operatorName, String detailName, String simplifiedName, ExecNodeConfig config) -
createFormattedTransformationDescription
-
createFormattedTransformationName
-
getTransformation
-
supportFusionCodegen
public boolean supportFusionCodegen()Description copied from interface:FusionCodegenExecNodeWhether this ExecNode supports OFCG or not.- Specified by:
supportFusionCodegenin interfaceFusionCodegenExecNode
-
translateToFusionCodegenSpec
public OpFusionCodegenSpecGenerator translateToFusionCodegenSpec(org.apache.flink.table.delegation.Planner planner, CodeGeneratorContext parentCtx) Description copied from interface:FusionCodegenExecNodeTranslates this node into aOpFusionCodegenSpecGenerator.NOTE: This method should return same spec generator result if called multiple times.
- Specified by:
translateToFusionCodegenSpecin interfaceFusionCodegenExecNode- Parameters:
planner- ThePlannerof the translated graph.parentCtx- Parent CodeGeneratorContext.
-
translateToFusionCodegenSpecInternal
protected OpFusionCodegenSpecGenerator translateToFusionCodegenSpecInternal(PlannerBase planner, ExecNodeConfig config, CodeGeneratorContext parentCtx) Internal method, translates this node into a operator codegen spec generator.- Parameters:
planner- The planner.config- per-ExecNodeconfiguration that contains the merged configuration from various layers which all the nodes implementing this method should use, instead of retrieving configuration from theplanner. For more details checkExecNodeConfig.
-