Interface DbGroupScan

All Superinterfaces:
FragmentLeaf, GraphValue<PhysicalOperator>, GroupScan, HasAffinity, Iterable<PhysicalOperator>, Leaf, PhysicalOperator, Scan
All Known Implementing Classes:
AbstractDbGroupScan

public interface DbGroupScan extends GroupScan
A DbGroupScan operator represents the scan associated with a database. The underlying database may support secondary indexes, so there are interface methods for indexes.
  • Method Details

    • supportsSecondaryIndex

      boolean supportsSecondaryIndex()
    • getSecondaryIndexCollection

      IndexCollection getSecondaryIndexCollection(org.apache.calcite.rel.RelNode scan)
      Get the index collection associated with this table if any
    • setRowCount

      void setRowCount(org.apache.calcite.rex.RexNode condition, double count, double capRowCount)
      Set the artificial row count after applying the RexNode condition
      Parameters:
      condition - row expression
      count - right index row count
      capRowCount - row count limit
    • getRowCount

      double getRowCount(org.apache.calcite.rex.RexNode condition, org.apache.calcite.rel.RelNode scanRel)
      Get the row count after applying the RexNode condition
      Parameters:
      condition - filter to apply
      scanRel - the current scan rel
      Returns:
      row count post filtering
    • getStatistics

      Statistics getStatistics()
      Get the statistics for this DbGroupScan
      Returns:
      the Statistics for this Scan
    • getColumns

      List<SchemaPath> getColumns()
      Description copied from interface: GroupScan
      Returns a list of columns scanned by this group scan
      Specified by:
      getColumns in interface GroupScan
    • setCostFactor

      void setCostFactor(double sel)
    • isIndexScan

      boolean isIndexScan()
    • supportsRestrictedScan

      boolean supportsRestrictedScan()
      Whether this DbGroupScan supports creating a restricted (skip) scan
      Returns:
      true if restricted scan is supported, false otherwise
    • isRestrictedScan

      boolean isRestrictedScan()
      Whether this DbGroupScan is itself a restricted scan
      Returns:
      true if this DbGroupScan is itself a restricted scan, false otherwise
    • getRestrictedScan

      DbGroupScan getRestrictedScan(List<SchemaPath> columns)
      If this DbGroupScan supports restricted scan, create a restricted scan from this DbGroupScan.
      Parameters:
      columns - list of column paths
      Returns:
      a non-null DbGroupScan if restricted scan is supported, null otherwise
    • getRowKeyName

      String getRowKeyName()
    • getIndexHint

      String getIndexHint()
    • getRowKeyPath

      SchemaPath getRowKeyPath()
    • getRangePartitionFunction

      PartitionFunction getRangePartitionFunction(List<FieldReference> refList)
      Get a partition function instance for range based partitioning
      Parameters:
      refList - a list of FieldReference exprs that are participating in the range partitioning
      Returns:
      instance of a partitioning function
    • getPluginCostModel

      PluginCost getPluginCostModel()
      Get the format plugin cost model. The cost model will provide cost factors such as seq. scan cost, random scan cost, block size
      Returns:
      a PluginCost cost model
    • isFilterPushedDown

      boolean isFilterPushedDown()