org.eigenbase.rel.rules
Class ReduceDecimalsRule.PassThroughExpander
java.lang.Object
org.eigenbase.rel.rules.ReduceDecimalsRule.RexExpander
org.eigenbase.rel.rules.ReduceDecimalsRule.PassThroughExpander
- Enclosing class:
- ReduceDecimalsRule
private class ReduceDecimalsRule.PassThroughExpander
- extends ReduceDecimalsRule.RexExpander
An expander that substitutes decimals with their integer representations.
If the output is decimal, the output is reinterpreted from the integer
representation into a decimal.
Methods inherited from class org.eigenbase.rel.rules.ReduceDecimalsRule.RexExpander |
accessValue, decodeValue, encodeValue, encodeValue, ensureScale, ensureType, ensureType, makeApproxLiteral, makeApproxScaleFactor, makeCase, makeCase, makeDivide, makeExactLiteral, makeIsNegative, makeIsPositive, makeMinus, makeMultiply, makePlus, makeRoundFactor, makeScaleFactor, matchNullability, powerOfTen, scaleDown, scaleDownDouble, scaleUp |
Methods inherited from class java.lang.Object |
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait |
ReduceDecimalsRule.PassThroughExpander
private ReduceDecimalsRule.PassThroughExpander(RexBuilder builder)
canExpand
public boolean canExpand(RexCall call)
- Description copied from class:
ReduceDecimalsRule.RexExpander
- This defaults to the utility method,
RexUtil.requiresDecimalExpansion(RexNode, boolean)
which checks
general guidelines on whether a rewrite should be considered at all.
In general, it is helpful to update the utility method since that
method is often used to filter the somewhat expensive rewrite
process.
However, this method provides another place for implementations of
RexExpander to make a more detailed analysis before deciding on
whether to perform a rewrite.
- Overrides:
canExpand
in class ReduceDecimalsRule.RexExpander
expand
public RexNode expand(RexCall call)
- Description copied from class:
ReduceDecimalsRule.RexExpander
- Rewrites an expression containing decimals. Normally, this method
always performs a rewrite, but implementations may choose to return
the original expression if no change was required.
- Specified by:
expand
in class ReduceDecimalsRule.RexExpander