Class RelOptCostImpl

java.lang.Object
org.apache.calcite.plan.RelOptCostImpl
All Implemented Interfaces:
RelOptCost

public class RelOptCostImpl extends Object implements RelOptCost
RelOptCostImpl provides a default implementation for the RelOptCost interface. It it defined in terms of a single scalar quantity; somewhat arbitrarily, it returns this scalar for rows processed and zero for both CPU and I/O.
  • Field Details

  • Constructor Details

    • RelOptCostImpl

      public RelOptCostImpl(double value)
  • Method Details

    • getRows

      public double getRows()
      Description copied from interface: RelOptCost
      Returns the number of rows processed; this should not be confused with the row count produced by a relational expression (RelNode.estimateRowCount(org.apache.calcite.rel.metadata.RelMetadataQuery)).
      Specified by:
      getRows in interface RelOptCost
    • getIo

      public double getIo()
      Description copied from interface: RelOptCost
      Returns usage of I/O resources.
      Specified by:
      getIo in interface RelOptCost
    • getCpu

      public double getCpu()
      Description copied from interface: RelOptCost
      Returns usage of CPU resources.
      Specified by:
      getCpu in interface RelOptCost
    • isInfinite

      public boolean isInfinite()
      Description copied from interface: RelOptCost
      Returns whether this cost represents an expression that hasn't actually been implemented (e.g. a pure relational algebra expression) or can't actually be implemented, e.g. a transfer of data between two disconnected sites.
      Specified by:
      isInfinite in interface RelOptCost
    • isLe

      public boolean isLe(RelOptCost other)
      Description copied from interface: RelOptCost
      Compares this to another cost.
      Specified by:
      isLe in interface RelOptCost
      Parameters:
      other - another cost
      Returns:
      true iff this is less than or equal to other cost
    • isLt

      public boolean isLt(RelOptCost other)
      Description copied from interface: RelOptCost
      Compares this to another cost.
      Specified by:
      isLt in interface RelOptCost
      Parameters:
      other - another cost
      Returns:
      true iff this is strictly less than other cost
    • hashCode

      public int hashCode()
      Overrides:
      hashCode in class Object
    • equals

      public boolean equals(RelOptCost other)
      Description copied from interface: RelOptCost
      Compares this to another cost.
      Specified by:
      equals in interface RelOptCost
      Parameters:
      other - another cost
      Returns:
      true iff this is exactly equal to other cost
    • equals

      public boolean equals(@Nullable Object obj)
      Overrides:
      equals in class Object
    • isEqWithEpsilon

      public boolean isEqWithEpsilon(RelOptCost other)
      Description copied from interface: RelOptCost
      Compares this to another cost, allowing for slight roundoff errors.
      Specified by:
      isEqWithEpsilon in interface RelOptCost
      Parameters:
      other - another cost
      Returns:
      true iff this is the same as the other cost within a roundoff margin of error
    • minus

      public RelOptCost minus(RelOptCost other)
      Description copied from interface: RelOptCost
      Subtracts another cost from this.
      Specified by:
      minus in interface RelOptCost
      Parameters:
      other - another cost
      Returns:
      difference between this and other cost
    • plus

      public RelOptCost plus(RelOptCost other)
      Description copied from interface: RelOptCost
      Adds another cost to this.
      Specified by:
      plus in interface RelOptCost
      Parameters:
      other - another cost
      Returns:
      sum of this and other cost
    • multiplyBy

      public RelOptCost multiplyBy(double factor)
      Description copied from interface: RelOptCost
      Multiplies this cost by a scalar factor.
      Specified by:
      multiplyBy in interface RelOptCost
      Parameters:
      factor - scalar factor
      Returns:
      scalar product of this and factor
    • divideBy

      public double divideBy(RelOptCost cost)
      Description copied from interface: RelOptCost
      Computes the ratio between this cost and another cost.

      divideBy is the inverse of RelOptCost.multiplyBy(double). For any finite, non-zero cost and factor f, cost.divideBy(cost.multiplyBy(f)) yields 1 / f.

      Specified by:
      divideBy in interface RelOptCost
      Parameters:
      cost - Other cost
      Returns:
      Ratio between costs
    • toString

      public String toString()
      Description copied from interface: RelOptCost
      Forces implementations to override Object.toString() and provide a good cost rendering to use during tracing.
      Specified by:
      toString in interface RelOptCost
      Overrides:
      toString in class Object