Class BeamIOSourceRel

  • All Implemented Interfaces:
    java.lang.Cloneable, BeamRelNode, org.apache.beam.vendor.calcite.v1_40_0.org.apache.calcite.plan.RelOptNode, org.apache.beam.vendor.calcite.v1_40_0.org.apache.calcite.rel.hint.Hintable, org.apache.beam.vendor.calcite.v1_40_0.org.apache.calcite.rel.RelNode
    Direct Known Subclasses:
    BeamPushDownIOSourceRel

    public class BeamIOSourceRel
    extends org.apache.beam.vendor.calcite.v1_40_0.org.apache.calcite.rel.core.TableScan
    implements BeamRelNode
    BeamRelNode to replace a TableScan node.
    • 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
    • Field Summary

      Fields 
      Modifier and Type Field Description
      static double CONSTANT_WINDOW_SIZE  
      • Fields inherited from class org.apache.beam.vendor.calcite.v1_40_0.org.apache.calcite.rel.core.TableScan

        hints, table
      • Fields inherited from class org.apache.beam.vendor.calcite.v1_40_0.org.apache.calcite.rel.AbstractRelNode

        digest, id, rowType, traitSet
    • Constructor Summary

      Constructors 
      Constructor Description
      BeamIOSourceRel​(org.apache.beam.vendor.calcite.v1_40_0.org.apache.calcite.plan.RelOptCluster cluster, org.apache.beam.vendor.calcite.v1_40_0.org.apache.calcite.plan.RelTraitSet traitSet, org.apache.beam.vendor.calcite.v1_40_0.org.apache.calcite.plan.RelOptTable table, BeamSqlTable beamTable, java.util.Map<java.lang.String,​java.lang.String> pipelineOptions, BeamCalciteTable calciteTable)  
    • Method Summary

      All Methods Instance Methods Concrete 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()  
      org.apache.beam.vendor.calcite.v1_40_0.org.apache.calcite.plan.RelOptCost computeSelfCost​(org.apache.beam.vendor.calcite.v1_40_0.org.apache.calcite.plan.RelOptPlanner planner, org.apache.beam.vendor.calcite.v1_40_0.org.apache.calcite.rel.metadata.RelMetadataQuery mq)  
      BeamPushDownIOSourceRel createPushDownRel​(org.apache.beam.vendor.calcite.v1_40_0.org.apache.calcite.rel.type.RelDataType newType, java.util.List<java.lang.String> usedFields, BeamSqlTableFilter tableFilters)  
      NodeStats estimateNodeStats​(BeamRelMetadataQuery mq)
      This method is called by org.apache.beam.sdk.extensions.sql.impl.planner.RelMdNodeStats.
      double estimateRowCount​(org.apache.beam.vendor.calcite.v1_40_0.org.apache.calcite.rel.metadata.RelMetadataQuery mq)  
      BeamSqlTable getBeamSqlTable()  
      java.util.Map<java.lang.String,​java.lang.String> getPipelineOptions()
      Perform a DFS(Depth-First-Search) to find the PipelineOptions config.
      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).
      • Methods inherited from class org.apache.beam.vendor.calcite.v1_40_0.org.apache.calcite.rel.core.TableScan

        accept, deriveRowType, explainTerms, getHints, getTable, identity, identity, project
      • Methods inherited from class org.apache.beam.vendor.calcite.v1_40_0.org.apache.calcite.rel.AbstractRelNode

        accept, childrenAccept, collectVariablesSet, collectVariablesUsed, copy, deepEquals, deepHashCode, equals, explain, getCluster, getConvention, getCorrelVariable, getDescription, getDigest, getExpectedInputRowType, getId, getInput, getInputs, getRelDigest, getRelTypeName, getRowType, getTraitSet, getVariablesSet, hashCode, isEnforcer, isValid, metadata, onRegister, recomputeDigest, register, replaceInput, sole, toString
      • Methods inherited from class java.lang.Object

        clone, finalize, getClass, notify, notifyAll, wait, wait, wait
      • Methods inherited from interface org.apache.beam.vendor.calcite.v1_40_0.org.apache.calcite.rel.hint.Hintable

        attachHints, withHints
      • Methods inherited from interface org.apache.beam.vendor.calcite.v1_40_0.org.apache.calcite.rel.RelNode

        accept, accept, childrenAccept, collectVariablesSet, collectVariablesUsed, copy, deepEquals, deepHashCode, 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
    • Field Detail

    • Constructor Detail

      • BeamIOSourceRel

        public BeamIOSourceRel​(org.apache.beam.vendor.calcite.v1_40_0.org.apache.calcite.plan.RelOptCluster cluster,
                               org.apache.beam.vendor.calcite.v1_40_0.org.apache.calcite.plan.RelTraitSet traitSet,
                               org.apache.beam.vendor.calcite.v1_40_0.org.apache.calcite.plan.RelOptTable table,
                               BeamSqlTable beamTable,
                               java.util.Map<java.lang.String,​java.lang.String> pipelineOptions,
                               BeamCalciteTable calciteTable)
    • Method Detail

      • createPushDownRel

        public BeamPushDownIOSourceRel createPushDownRel​(org.apache.beam.vendor.calcite.v1_40_0.org.apache.calcite.rel.type.RelDataType newType,
                                                         java.util.List<java.lang.String> usedFields,
                                                         BeamSqlTableFilter tableFilters)
      • estimateRowCount

        public double estimateRowCount​(org.apache.beam.vendor.calcite.v1_40_0.org.apache.calcite.rel.metadata.RelMetadataQuery mq)
        Specified by:
        estimateRowCount in interface org.apache.beam.vendor.calcite.v1_40_0.org.apache.calcite.rel.RelNode
        Overrides:
        estimateRowCount in class org.apache.beam.vendor.calcite.v1_40_0.org.apache.calcite.rel.core.TableScan
      • estimateNodeStats

        public NodeStats estimateNodeStats​(BeamRelMetadataQuery mq)
        Description copied from interface: BeamRelNode
        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.
        Specified by:
        estimateNodeStats in interface BeamRelNode
      • isBounded

        public org.apache.beam.sdk.values.PCollection.IsBounded isBounded()
        Description copied from interface: BeamRelNode
        Whether the collection of rows represented by this relational expression is bounded (known to be finite) or unbounded (may or may not be finite).
        Specified by:
        isBounded in interface BeamRelNode
        Returns:
        bounded if and only if all PCollection inputs are bounded
      • buildPTransform

        public 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()
        Specified by:
        buildPTransform in interface BeamRelNode
      • computeSelfCost

        public org.apache.beam.vendor.calcite.v1_40_0.org.apache.calcite.plan.RelOptCost computeSelfCost​(org.apache.beam.vendor.calcite.v1_40_0.org.apache.calcite.plan.RelOptPlanner planner,
                                                                                                         org.apache.beam.vendor.calcite.v1_40_0.org.apache.calcite.rel.metadata.RelMetadataQuery mq)
        Specified by:
        computeSelfCost in interface org.apache.beam.vendor.calcite.v1_40_0.org.apache.calcite.rel.RelNode
        Overrides:
        computeSelfCost in class org.apache.beam.vendor.calcite.v1_40_0.org.apache.calcite.rel.core.TableScan
      • beamComputeSelfCost

        public BeamCostModel beamComputeSelfCost​(org.apache.beam.vendor.calcite.v1_40_0.org.apache.calcite.plan.RelOptPlanner planner,
                                                 BeamRelMetadataQuery mq)
        Description copied from interface: BeamRelNode
        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))
        Specified by:
        beamComputeSelfCost in interface BeamRelNode
      • getPipelineOptions

        public java.util.Map<java.lang.String,​java.lang.String> getPipelineOptions()
        Description copied from interface: BeamRelNode
        Perform a DFS(Depth-First-Search) to find the PipelineOptions config.
        Specified by:
        getPipelineOptions in interface BeamRelNode