Package org.apache.calcite.plan
Class RelOptCostImpl
java.lang.Object
org.apache.calcite.plan.RelOptCostImpl
- All Implemented Interfaces:
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 Summary
Fields -
Constructor Summary
Constructors -
Method Summary
Modifier and TypeMethodDescriptiondoubledivideBy(RelOptCost cost) Computes the ratio between this cost and another cost.booleanbooleanequals(RelOptCost other) Compares this to another cost.doublegetCpu()Returns usage of CPU resources.doublegetIo()Returns usage of I/O resources.doublegetRows()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)).inthashCode()booleanisEqWithEpsilon(RelOptCost other) Compares this to another cost, allowing for slight roundoff errors.booleanReturns whether this cost represents an expression that hasn't actually been implemented (e.g.booleanisLe(RelOptCost other) Compares this to another cost.booleanisLt(RelOptCost other) Compares this to another cost.minus(RelOptCost other) Subtracts another cost from this.multiplyBy(double factor) Multiplies this cost by a scalar factor.plus(RelOptCost other) Adds another cost to this.toString()Forces implementations to overrideObject.toString()and provide a good cost rendering to use during tracing.
-
Field Details
-
FACTORY
-
-
Constructor Details
-
RelOptCostImpl
public RelOptCostImpl(double value)
-
-
Method Details
-
getRows
public double getRows()Description copied from interface:RelOptCostReturns 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:
getRowsin interfaceRelOptCost
-
getIo
public double getIo()Description copied from interface:RelOptCostReturns usage of I/O resources.- Specified by:
getIoin interfaceRelOptCost
-
getCpu
public double getCpu()Description copied from interface:RelOptCostReturns usage of CPU resources.- Specified by:
getCpuin interfaceRelOptCost
-
isInfinite
public boolean isInfinite()Description copied from interface:RelOptCostReturns 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:
isInfinitein interfaceRelOptCost
-
isLe
Description copied from interface:RelOptCostCompares this to another cost.- Specified by:
isLein interfaceRelOptCost- Parameters:
other- another cost- Returns:
- true iff this is less than or equal to other cost
-
isLt
Description copied from interface:RelOptCostCompares this to another cost.- Specified by:
isLtin interfaceRelOptCost- Parameters:
other- another cost- Returns:
- true iff this is strictly less than other cost
-
hashCode
public int hashCode() -
equals
Description copied from interface:RelOptCostCompares this to another cost.- Specified by:
equalsin interfaceRelOptCost- Parameters:
other- another cost- Returns:
- true iff this is exactly equal to other cost
-
equals
-
isEqWithEpsilon
Description copied from interface:RelOptCostCompares this to another cost, allowing for slight roundoff errors.- Specified by:
isEqWithEpsilonin interfaceRelOptCost- Parameters:
other- another cost- Returns:
- true iff this is the same as the other cost within a roundoff margin of error
-
minus
Description copied from interface:RelOptCostSubtracts another cost from this.- Specified by:
minusin interfaceRelOptCost- Parameters:
other- another cost- Returns:
- difference between this and other cost
-
plus
Description copied from interface:RelOptCostAdds another cost to this.- Specified by:
plusin interfaceRelOptCost- Parameters:
other- another cost- Returns:
- sum of this and other cost
-
multiplyBy
Description copied from interface:RelOptCostMultiplies this cost by a scalar factor.- Specified by:
multiplyByin interfaceRelOptCost- Parameters:
factor- scalar factor- Returns:
- scalar product of this and factor
-
divideBy
Description copied from interface:RelOptCostComputes 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))yields1 / f.- Specified by:
divideByin interfaceRelOptCost- Parameters:
cost- Other cost- Returns:
- Ratio between costs
-
toString
Description copied from interface:RelOptCostForces implementations to overrideObject.toString()and provide a good cost rendering to use during tracing.- Specified by:
toStringin interfaceRelOptCost- Overrides:
toStringin classObject
-