Interface BeamRelNode
-
- All Superinterfaces:
java.lang.Cloneable,org.apache.beam.vendor.calcite.v1_40_0.org.apache.calcite.rel.RelNode,org.apache.beam.vendor.calcite.v1_40_0.org.apache.calcite.plan.RelOptNode
- All Known Implementing Classes:
AbstractBeamCalcRel,BeamAggregationRel,BeamCalcRel,BeamCoGBKJoinRel,BeamIntersectRel,BeamIOSinkRel,BeamIOSourceRel,BeamJoinRel,BeamMatchRel,BeamMinusRel,BeamPushDownIOSourceRel,BeamSideInputJoinRel,BeamSideInputLookupJoinRel,BeamSortRel,BeamTableFunctionScanRel,BeamUncollectRel,BeamUnionRel,BeamUnnestRel,BeamValuesRel,BeamWindowRel
public interface BeamRelNode extends org.apache.beam.vendor.calcite.v1_40_0.org.apache.calcite.rel.RelNodeARelNodethat can also give aPTransformthat implements the expression.
-
-
Method Summary
All Methods Instance Methods Abstract Methods Default Methods Modifier and Type Method Description BeamCostModelbeamComputeSelfCost(org.apache.beam.vendor.calcite.v1_40_0.org.apache.calcite.plan.RelOptPlanner planner, BeamRelMetadataQuery mq)This method is called byorg.apache.beam.sdk.extensions.sql.impl.CalciteQueryPlanner.NonCumulativeCostImpl.org.apache.beam.sdk.transforms.PTransform<org.apache.beam.sdk.values.PCollectionList<org.apache.beam.sdk.values.Row>,org.apache.beam.sdk.values.PCollection<org.apache.beam.sdk.values.Row>>buildPTransform()default org.apache.beam.sdk.transforms.PTransform<org.apache.beam.sdk.values.PCollectionList<org.apache.beam.sdk.values.Row>,org.apache.beam.sdk.values.PCollection<org.apache.beam.sdk.values.Row>>buildPTransform(@Nullable org.apache.beam.sdk.transforms.PTransform<org.apache.beam.sdk.values.PCollection<org.apache.beam.sdk.values.Row>,? extends org.apache.beam.sdk.values.POutput> errorsTransformer)NodeStatsestimateNodeStats(BeamRelMetadataQuery mq)This method is called byorg.apache.beam.sdk.extensions.sql.impl.planner.RelMdNodeStats.default java.util.List<org.apache.beam.vendor.calcite.v1_40_0.org.apache.calcite.rel.RelNode>getPCollectionInputs()default java.util.Map<java.lang.String,java.lang.String>getPipelineOptions()Perform a DFS(Depth-First-Search) to find the PipelineOptions config.default org.apache.beam.sdk.values.PCollection.IsBoundedisBounded()Whether the collection of rows represented by this relational expression is bounded (known to be finite) or unbounded (may or may not be finite).default voidwithErrorsTransformer(@Nullable org.apache.beam.sdk.transforms.PTransform<org.apache.beam.sdk.values.PCollection<org.apache.beam.sdk.values.Row>,org.apache.beam.sdk.values.POutput> ptransform)-
Methods inherited from interface org.apache.beam.vendor.calcite.v1_40_0.org.apache.calcite.rel.RelNode
accept, accept, childrenAccept, collectVariablesSet, collectVariablesUsed, computeSelfCost, copy, deepEquals, deepHashCode, estimateRowCount, explain, explain, fieldIsNullable, getConvention, getCorrelVariable, getDigest, getExpectedInputRowType, getInput, getInputs, getRelDigest, getRelTypeName, getRowType, getTable, getVariablesSet, isEnforcer, isValid, metadata, onRegister, recomputeDigest, register, replaceInput, stripped
-
-
-
-
Method Detail
-
isBounded
default org.apache.beam.sdk.values.PCollection.IsBounded isBounded()
Whether the collection of rows represented by this relational expression is bounded (known to be finite) or unbounded (may or may not be finite).- Returns:
- bounded if and only if all PCollection inputs are bounded
-
withErrorsTransformer
default void withErrorsTransformer(@Nullable org.apache.beam.sdk.transforms.PTransform<org.apache.beam.sdk.values.PCollection<org.apache.beam.sdk.values.Row>,org.apache.beam.sdk.values.POutput> ptransform)
-
getPCollectionInputs
default java.util.List<org.apache.beam.vendor.calcite.v1_40_0.org.apache.calcite.rel.RelNode> getPCollectionInputs()
-
buildPTransform
org.apache.beam.sdk.transforms.PTransform<org.apache.beam.sdk.values.PCollectionList<org.apache.beam.sdk.values.Row>,org.apache.beam.sdk.values.PCollection<org.apache.beam.sdk.values.Row>> buildPTransform()
-
buildPTransform
default org.apache.beam.sdk.transforms.PTransform<org.apache.beam.sdk.values.PCollectionList<org.apache.beam.sdk.values.Row>,org.apache.beam.sdk.values.PCollection<org.apache.beam.sdk.values.Row>> buildPTransform(@Nullable org.apache.beam.sdk.transforms.PTransform<org.apache.beam.sdk.values.PCollection<org.apache.beam.sdk.values.Row>,? extends org.apache.beam.sdk.values.POutput> errorsTransformer)
-
getPipelineOptions
default java.util.Map<java.lang.String,java.lang.String> getPipelineOptions()
Perform a DFS(Depth-First-Search) to find the PipelineOptions config.
-
estimateNodeStats
NodeStats estimateNodeStats(BeamRelMetadataQuery mq)
This method is called byorg.apache.beam.sdk.extensions.sql.impl.planner.RelMdNodeStats. This is currently only used in SQLTransform Path (and not JDBC path). When a RelNode wants to calculate its BeamCost or estimate its NodeStats, it may need NodeStat of its inputs. However, it should not call this directly (because maybe its inputs are not physical yet). It should callorg.apache.beam.sdk.extensions.sql.impl.rel.BeamSqlRelUtils#getNodeStats( org.apache.beam.vendor.calcite.v1_40_0.org.apache.calcite.rel.RelNode, org.apache.beam.vendor.calcite.v1_40_0.org.apache.calcite.rel.metadata.RelMetadataQuery)instead.
-
beamComputeSelfCost
BeamCostModel beamComputeSelfCost(org.apache.beam.vendor.calcite.v1_40_0.org.apache.calcite.plan.RelOptPlanner planner, BeamRelMetadataQuery mq)
This method is called byorg.apache.beam.sdk.extensions.sql.impl.CalciteQueryPlanner.NonCumulativeCostImpl. This is currently only used in SQLTransform Path (and not JDBC path). This is needed when Calcite Query Planner wants to get the cost of a plan. Instead of calling this directly for a node, if we needed that it should be obtained by calling mq.getNonCumulativeCost. This way RelMetadataQuery will call this method instead of ComputeSelfCost if the handler is set correctly (seeorg.apache.beam.sdk.extensions.sql.impl.CalciteQueryPlanner#convertToBeamRel(String))
-
-