Class BeamIOSourceRel

java.lang.Object
org.apache.beam.vendor.calcite.v1_28_0.org.apache.calcite.rel.AbstractRelNode
org.apache.beam.vendor.calcite.v1_28_0.org.apache.calcite.rel.core.TableScan
org.apache.beam.sdk.extensions.sql.impl.rel.BeamIOSourceRel
All Implemented Interfaces:
Cloneable, BeamRelNode, org.apache.beam.vendor.calcite.v1_28_0.org.apache.calcite.plan.RelOptNode, org.apache.beam.vendor.calcite.v1_28_0.org.apache.calcite.rel.hint.Hintable, org.apache.beam.vendor.calcite.v1_28_0.org.apache.calcite.rel.RelNode
Direct Known Subclasses:
BeamPushDownIOSourceRel

public class BeamIOSourceRel extends org.apache.beam.vendor.calcite.v1_28_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_28_0.org.apache.calcite.rel.RelNode

    org.apache.beam.vendor.calcite.v1_28_0.org.apache.calcite.rel.RelNode.Context
  • Field Summary

    Fields
    Modifier and Type
    Field
    Description
    static final double
     

    Fields inherited from class org.apache.beam.vendor.calcite.v1_28_0.org.apache.calcite.rel.core.TableScan

    hints, table

    Fields inherited from class org.apache.beam.vendor.calcite.v1_28_0.org.apache.calcite.rel.AbstractRelNode

    digest, id, rowType, traitSet
  • Constructor Summary

    Constructors
    Constructor
    Description
    BeamIOSourceRel(org.apache.beam.vendor.calcite.v1_28_0.org.apache.calcite.plan.RelOptCluster cluster, org.apache.beam.vendor.calcite.v1_28_0.org.apache.calcite.plan.RelTraitSet traitSet, org.apache.beam.vendor.calcite.v1_28_0.org.apache.calcite.plan.RelOptTable table, BeamSqlTable beamTable, Map<String,String> pipelineOptions, BeamCalciteTable calciteTable)
     
  • 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.
     
    org.apache.beam.vendor.calcite.v1_28_0.org.apache.calcite.plan.RelOptCost
    computeSelfCost(org.apache.beam.vendor.calcite.v1_28_0.org.apache.calcite.plan.RelOptPlanner planner, org.apache.beam.vendor.calcite.v1_28_0.org.apache.calcite.rel.metadata.RelMetadataQuery mq)
     
    createPushDownRel(org.apache.beam.vendor.calcite.v1_28_0.org.apache.calcite.rel.type.RelDataType newType, List<String> usedFields, BeamSqlTableFilter tableFilters)
     
    This method is called by org.apache.beam.sdk.extensions.sql.impl.planner.RelMdNodeStats.
    double
    estimateRowCount(org.apache.beam.vendor.calcite.v1_28_0.org.apache.calcite.rel.metadata.RelMetadataQuery mq)
     
     
    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).

    Methods inherited from class org.apache.beam.vendor.calcite.v1_28_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_28_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.sdk.extensions.sql.impl.rel.BeamRelNode

    buildPTransform, getPCollectionInputs, withErrorsTransformer

    Methods inherited from interface org.apache.beam.vendor.calcite.v1_28_0.org.apache.calcite.rel.hint.Hintable

    attachHints, withHints

    Methods inherited from interface org.apache.beam.vendor.calcite.v1_28_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

    Methods inherited from interface org.apache.beam.vendor.calcite.v1_28_0.org.apache.calcite.plan.RelOptNode

    getCluster, getDescription, getId, getTraitSet
  • Field Details

  • Constructor Details

    • BeamIOSourceRel

      public BeamIOSourceRel(org.apache.beam.vendor.calcite.v1_28_0.org.apache.calcite.plan.RelOptCluster cluster, org.apache.beam.vendor.calcite.v1_28_0.org.apache.calcite.plan.RelTraitSet traitSet, org.apache.beam.vendor.calcite.v1_28_0.org.apache.calcite.plan.RelOptTable table, BeamSqlTable beamTable, Map<String,String> pipelineOptions, BeamCalciteTable calciteTable)
  • Method Details

    • createPushDownRel

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

      public double estimateRowCount(org.apache.beam.vendor.calcite.v1_28_0.org.apache.calcite.rel.metadata.RelMetadataQuery mq)
      Specified by:
      estimateRowCount in interface org.apache.beam.vendor.calcite.v1_28_0.org.apache.calcite.rel.RelNode
      Overrides:
      estimateRowCount in class org.apache.beam.vendor.calcite.v1_28_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
      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.
      Specified by:
      estimateNodeStats in interface BeamRelNode
    • isBounded

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

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

      public BeamCostModel beamComputeSelfCost(org.apache.beam.vendor.calcite.v1_28_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
    • getBeamSqlTable

      public BeamSqlTable getBeamSqlTable()
    • getPipelineOptions

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