Class RelOptCostImpl

  • All Implemented Interfaces:
    RelOptCost

    public class RelOptCostImpl
    extends java.lang.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 Detail

      • value

        private final double value
    • Constructor Detail

      • RelOptCostImpl

        public RelOptCostImpl​(double value)
    • Method Detail

      • getIo

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

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

        public boolean isInfinite()
        Specified by:
        isInfinite in interface RelOptCost
        Returns:
        true iff 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
      • 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 java.lang.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​(java.lang.Object obj)
        Overrides:
        equals in class java.lang.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 java.lang.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 java.lang.Object