Interface BeamRelNode

    • Nested Class Summary

      • Nested classes/interfaces inherited from interface 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.RelNode.Context
    • Method Summary

      All Methods Instance Methods Abstract Methods Default Methods 
      Modifier and Type Method Description
      BeamCostModel beamComputeSelfCost​(org.apache.beam.vendor.calcite.v1_40_0.org.apache.calcite.plan.RelOptPlanner planner, BeamRelMetadataQuery mq)
      This method is called by org.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)  
      NodeStats estimateNodeStats​(BeamRelMetadataQuery mq)
      This method is called by org.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.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).
      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)  
      • 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
      • Methods inherited from interface org.apache.beam.vendor.calcite.v1_40_0.org.apache.calcite.plan.RelOptNode

        getCluster, getDescription, getId, getTraitSet
    • 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 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 org.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 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))