Class LogicalTableFunctionScan

All Implemented Interfaces:
Cloneable, RelOptNode, Hintable, RelNode

public class LogicalTableFunctionScan extends TableFunctionScan
Sub-class of TableFunctionScan not targeted at any particular engine or calling convention.
  • Constructor Details

    • LogicalTableFunctionScan

      public LogicalTableFunctionScan(RelOptCluster cluster, RelTraitSet traitSet, List<RelHint> hints, List<RelNode> inputs, RexNode rexCall, @Nullable Type elementType, RelDataType rowType, @Nullable Set<RelColumnMapping> columnMappings)
      Creates a LogicalTableFunctionScan.
      Parameters:
      cluster - Cluster that this relational expression belongs to
      traitSet - Trait set
      hints - The hints of this node.
      inputs - 0 or more relational inputs
      rexCall - Function invocation expression
      elementType - Element type of the collection that will implement this table
      rowType - Row type produced by function
      columnMappings - Column mappings associated with this function
    • LogicalTableFunctionScan

      public LogicalTableFunctionScan(RelOptCluster cluster, RelTraitSet traitSet, List<RelNode> inputs, RexNode rexCall, @Nullable Type elementType, RelDataType rowType, @Nullable Set<RelColumnMapping> columnMappings)
      Creates a LogicalTableFunctionScan.
      Parameters:
      cluster - Cluster that this relational expression belongs to
      traitSet - Trait set
      inputs - 0 or more relational inputs
      rexCall - Function invocation expression
      elementType - Element type of the collection that will implement this table
      rowType - Row type produced by function
      columnMappings - Column mappings associated with this function
    • LogicalTableFunctionScan

      @Deprecated public LogicalTableFunctionScan(RelOptCluster cluster, List<RelNode> inputs, RexNode rexCall, @Nullable Type elementType, RelDataType rowType, @Nullable Set<RelColumnMapping> columnMappings)
      Deprecated.
    • LogicalTableFunctionScan

      public LogicalTableFunctionScan(RelInput input)
      Creates a LogicalTableFunctionScan by parsing serialized output.
  • Method Details

    • create

      public static LogicalTableFunctionScan create(RelOptCluster cluster, List<RelNode> inputs, RexNode rexCall, @Nullable Type elementType, RelDataType rowType, @Nullable Set<RelColumnMapping> columnMappings)
      Creates a LogicalTableFunctionScan.
    • copy

      public LogicalTableFunctionScan copy(RelTraitSet traitSet, List<RelNode> inputs, RexNode rexCall, @Nullable Type elementType, RelDataType rowType, @Nullable Set<RelColumnMapping> columnMappings)
      Description copied from class: TableFunctionScan
      Copies this relational expression, substituting traits and inputs.
      Specified by:
      copy in class TableFunctionScan
      Parameters:
      traitSet - Traits
      inputs - 0 or more relational inputs
      rexCall - Function invocation expression
      elementType - Element type of the collection that will implement this table
      rowType - Row type produced by function
      columnMappings - Column mappings associated with this function
      Returns:
      Copy of this relational expression, substituting traits and inputs
    • computeSelfCost

      public @Nullable RelOptCost computeSelfCost(RelOptPlanner planner, RelMetadataQuery mq)
      Description copied from interface: RelNode
      Returns the cost of this plan (not including children). The base implementation throws an error; derived classes should override.

      NOTE jvs 29-Mar-2006: Don't call this method directly. Instead, use RelMetadataQuery.getNonCumulativeCost(org.apache.calcite.rel.RelNode), which gives plugins a chance to override the rel's default ideas about cost.

      Specified by:
      computeSelfCost in interface RelNode
      Overrides:
      computeSelfCost in class AbstractRelNode
      Parameters:
      planner - Planner for cost calculation
      mq - Metadata query
      Returns:
      Cost of this plan (not including children)
    • withHints

      public RelNode withHints(List<RelHint> hintList)
      Description copied from interface: Hintable
      Returns a new relational expression with the specified hints hintList.

      This method should be overridden by every logical node that supports hint. It is only for internal use during decorrelation.

      Sub-class should return a new copy of the relational expression.

      The default implementation returns the relational expression directly only because not every kind of relational expression supports hints.

      Returns:
      Relational expression with set up hints