|
|||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | ||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |
java.lang.Object net.sf.farrago.fennel.calc.CalcRexImplementorTableImpl.AbstractCalcRexAggImplementor net.sf.farrago.fennel.calc.CalcRexImplementorTableImpl.SumCalcRexImplementor
private static class CalcRexImplementorTableImpl.SumCalcRexImplementor
Implementation of the SUM
aggregate function, SqlStdOperatorTable.sumOperator
.
Constructor Summary | |
---|---|
private |
CalcRexImplementorTableImpl.SumCalcRexImplementor()
|
Method Summary | |
---|---|
void |
implementAdd(RexCall call,
CalcReg accumulatorRegister,
RexToCalcTranslator translator)
Generates instructions to add a new value to an aggregation. |
void |
implementDrop(RexCall call,
CalcReg accumulatorRegister,
RexToCalcTranslator translator)
Generates instructions to implement this call, and returns the register which holds the result. |
void |
implementInitAdd(RexCall call,
CalcReg accumulatorRegister,
RexToCalcTranslator translator)
Generates instructions to initialize and add a new value to an aggregation. |
void |
implementInitialize(RexCall call,
CalcReg accumulatorRegister,
RexToCalcTranslator translator)
Generates instructions to initialize an accumulator for a call to this aggregate function, and returns the register which holds the accumulator. |
Methods inherited from class net.sf.farrago.fennel.calc.CalcRexImplementorTableImpl.AbstractCalcRexAggImplementor |
---|
canImplement |
Methods inherited from class java.lang.Object |
---|
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait |
Constructor Detail |
---|
private CalcRexImplementorTableImpl.SumCalcRexImplementor()
Method Detail |
---|
public void implementInitialize(RexCall call, CalcReg accumulatorRegister, RexToCalcTranslator translator)
CalcRexAggImplementor
For example, for SUM(x)
, this method generates O
s8; V 0; T; MOVE O0, C0;
and returns the O0
register.
call
- The call to the aggregate function to be implementedaccumulatorRegister
- The accumulator register to be populatedtranslator
- Calculator code generatorpublic void implementInitAdd(RexCall call, CalcReg accumulatorRegister, RexToCalcTranslator translator)
CalcRexAggImplementor
implementInitAdd
in interface CalcRexAggImplementor
implementInitAdd
in class CalcRexImplementorTableImpl.AbstractCalcRexAggImplementor
call
- The call to the aggregate function to be implementedaccumulatorRegister
- The accumulator registertranslator
- Calculator code generatorpublic void implementAdd(RexCall call, CalcReg accumulatorRegister, RexToCalcTranslator translator)
CalcRexAggImplementor
For example, for SUM(x)
, this method generates I
s8; O s8; T; ADD O0, I0;
.
call
- The call to the aggregate function to be implementedaccumulatorRegister
- The accumulator registertranslator
- Calculator code generatorpublic void implementDrop(RexCall call, CalcReg accumulatorRegister, RexToCalcTranslator translator)
CalcRexAggImplementor
For example, for SUM(x)
, this method generates I
s8; O s8; T; SUB O0, I0;
call
- The call to the aggregate function to be implemented.accumulatorRegister
- The accumulator registertranslator
- Calculator code generator
|
|||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | ||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |