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 Type
    Method
    Description
    beamComputeSelfCost(org.apache.beam.vendor.calcite.v1_28_0.org.apache.calcite.plan.RelOptPlanner planner, BeamRelMetadataQuery mq)
    This method is called by org.apache.beam.sdk.extensions.sql.impl.CalciteQueryPlanner.NonCumulativeCostImpl.
     
    buildPTransform(@Nullable PTransform<PCollection<Row>,? extends POutput> errorsTransformer)
     
    This method is called by org.apache.beam.sdk.extensions.sql.impl.planner.RelMdNodeStats.
    default List<org.apache.beam.vendor.calcite.v1_28_0.org.apache.calcite.rel.RelNode>
     
    default Map<String,String>
    Perform a DFS(Depth-First-Search) to find the PipelineOptions config.
    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
     

    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

      default 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 PTransform<PCollection<Row>,POutput> ptransform)
    • getPCollectionInputs

      default List<org.apache.beam.vendor.calcite.v1_28_0.org.apache.calcite.rel.RelNode> getPCollectionInputs()
    • buildPTransform

    • buildPTransform

      default PTransform<PCollectionList<Row>,PCollection<Row>> buildPTransform(@Nullable PTransform<PCollection<Row>,? extends POutput> errorsTransformer)
    • getPipelineOptions

      default Map<String,String> getPipelineOptions()
      Perform a DFS(Depth-First-Search) to find the PipelineOptions config.
    • estimateNodeStats

      NodeStats estimateNodeStats(BeamRelMetadataQuery mq)
      This method is called by org.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 call
      invalid 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)
      instead.
    • beamComputeSelfCost

      BeamCostModel beamComputeSelfCost(org.apache.beam.vendor.calcite.v1_28_0.org.apache.calcite.plan.RelOptPlanner planner, BeamRelMetadataQuery mq)
      This method is called by org.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 (see org.apache.beam.sdk.extensions.sql.impl.CalciteQueryPlanner#convertToBeamRel(String))