Interface BeamRelNode
- All Superinterfaces:
Cloneable
,org.apache.beam.vendor.calcite.v1_28_0.org.apache.calcite.rel.RelNode
,org.apache.beam.vendor.calcite.v1_28_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
,BeamZetaSqlCalcRel
,BeamZetaSqlUncollectRel
,BeamZetaSqlUnnestRel
public interface BeamRelNode
extends org.apache.beam.vendor.calcite.v1_28_0.org.apache.calcite.rel.RelNode
A
RelNode
that can also give a PTransform
that implements the expression.-
Nested Class Summary
Nested classes/interfaces inherited from interface org.apache.beam.vendor.calcite.v1_28_0.org.apache.calcite.rel.RelNode
org.apache.beam.vendor.calcite.v1_28_0.org.apache.calcite.rel.RelNode.Context
-
Method Summary
Modifier and TypeMethodDescriptionbeamComputeSelfCost
(org.apache.beam.vendor.calcite.v1_28_0.org.apache.calcite.plan.RelOptPlanner planner, BeamRelMetadataQuery mq) This method is called byorg.apache.beam.sdk.extensions.sql.impl.CalciteQueryPlanner.NonCumulativeCostImpl
.default PTransform
<PCollectionList<Row>, PCollection<Row>> buildPTransform
(@Nullable PTransform<PCollection<Row>, ? extends POutput> errorsTransformer) This method is called byorg.apache.beam.sdk.extensions.sql.impl.planner.RelMdNodeStats
.default List
<org.apache.beam.vendor.calcite.v1_28_0.org.apache.calcite.rel.RelNode> Perform a DFS(Depth-First-Search) to find the PipelineOptions config.default PCollection.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).default void
withErrorsTransformer
(@Nullable PTransform<PCollection<Row>, POutput> ptransform) Methods inherited from interface org.apache.beam.vendor.calcite.v1_28_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
Methods inherited from interface org.apache.beam.vendor.calcite.v1_28_0.org.apache.calcite.plan.RelOptNode
getCluster, getDescription, getId, getTraitSet
-
Method Details
-
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
-
getPCollectionInputs
default List<org.apache.beam.vendor.calcite.v1_28_0.org.apache.calcite.rel.RelNode> getPCollectionInputs() -
buildPTransform
PTransform<PCollectionList<Row>,PCollection<Row>> buildPTransform() -
buildPTransform
default PTransform<PCollectionList<Row>,PCollection<Row>> buildPTransform(@Nullable PTransform<PCollection<Row>, ? extends POutput> errorsTransformer) -
getPipelineOptions
Perform a DFS(Depth-First-Search) to find the PipelineOptions config. -
estimateNodeStats
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 callinvalid reference
org.apache.beam.sdk.extensions.sql.impl.rel.BeamSqlRelUtils#getNodeStats(org.apache.beam.vendor.calcite.v1_28_0.org.apache.calcite.rel.RelNode, org.apache.beam.vendor.calcite.v1_28_0.org.apache.calcite.rel.metadata.RelMetadataQuery)
-
beamComputeSelfCost
BeamCostModel beamComputeSelfCost(org.apache.beam.vendor.calcite.v1_28_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)
)
-