net.sf.farrago.ojrex
Class FarragoOJRexBuiltinImplementor

java.lang.Object
  extended by net.sf.farrago.ojrex.FarragoOJRexImplementor
      extended by net.sf.farrago.ojrex.FarragoOJRexBuiltinImplementor
All Implemented Interfaces:
OJRexImplementor

public class FarragoOJRexBuiltinImplementor
extends FarragoOJRexImplementor

FarragoOJRexBuiltinImplementor implements Farrago specifics of OJRexImplementor for builtin functions

Version:
$Id: //open/dev/farrago/src/net/sf/farrago/ojrex/FarragoOJRexBuiltinImplementor.java#18 $
Author:
Xiaoyang Luo

Nested Class Summary
static class FarragoOJRexBuiltinImplementor.Function
          Enumeration of SQL operators that can be implemented in OJ.
 
Field Summary
protected  FarragoOJRexBuiltinImplementor.Function builtinFunction
           
 
Constructor Summary
FarragoOJRexBuiltinImplementor(FarragoOJRexBuiltinImplementor.Function function)
           
 
Method Summary
private  StatementList getThrowStatementList(FarragoOJRexBuiltinImplementor.Function function)
           
private  void implementAbs(FarragoRexToOJTranslator translator, RexCall call, Expression[] operands, Variable varResult, StatementList stmtList)
           
private  void implementChangeCase(FarragoRexToOJTranslator translator, RexCall call, Expression[] operands, Variable varResult, StatementList stmtList)
           
private  void implementConcat(FarragoRexToOJTranslator translator, RexCall call, Expression[] operands, Variable varResult, StatementList stmtList)
           
private  void implementExp(FarragoRexToOJTranslator translator, RexCall call, Expression[] operands, Variable varResult, StatementList stmtList)
           
 Expression implementFarrago(FarragoRexToOJTranslator translator, RexCall call, Expression[] operands)
          Refined version of OJRexImplementor.implement(org.eigenbase.oj.rex.RexToOJTranslator, org.eigenbase.rex.RexCall, openjava.ptree.Expression[]).
protected  void implementFloorCeil(FarragoRexToOJTranslator translator, RexCall call, Expression[] operands, Variable varResult, StatementList stmtList)
           
private  void implementLog(FarragoRexToOJTranslator translator, RexCall call, Expression[] operands, Variable varResult, StatementList stmtList)
           
private  void implementMod(FarragoRexToOJTranslator translator, RexCall call, Expression[] operands, Variable varResult, StatementList stmtList)
           
private  void implementOverlay(FarragoRexToOJTranslator translator, RexCall call, Expression[] operands, Variable varResult, StatementList stmtList)
           
private  void implementPower(FarragoRexToOJTranslator translator, RexCall call, Expression[] operands, Variable varResult, StatementList stmtList)
           
private  void implementSubstring(FarragoRexToOJTranslator translator, RexCall call, Expression[] operands, Variable varResult, StatementList stmtList)
           
private  void implementTrim(FarragoRexToOJTranslator translator, RexCall call, Expression[] operands, Variable varResult, StatementList stmtList)
           
 
Methods inherited from class net.sf.farrago.ojrex.FarragoOJRexImplementor
canImplement, implement
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Field Detail

builtinFunction

protected final FarragoOJRexBuiltinImplementor.Function builtinFunction
Constructor Detail

FarragoOJRexBuiltinImplementor

public FarragoOJRexBuiltinImplementor(FarragoOJRexBuiltinImplementor.Function function)
Method Detail

implementFarrago

public Expression implementFarrago(FarragoRexToOJTranslator translator,
                                   RexCall call,
                                   Expression[] operands)
Description copied from class: FarragoOJRexImplementor
Refined version of OJRexImplementor.implement(org.eigenbase.oj.rex.RexToOJTranslator, org.eigenbase.rex.RexCall, openjava.ptree.Expression[]).

Specified by:
implementFarrago in class FarragoOJRexImplementor
Parameters:
translator - provides Farrago-specific translation context
call - the call to be translated
operands - call's operands, which have already been translated independently

implementLog

private void implementLog(FarragoRexToOJTranslator translator,
                          RexCall call,
                          Expression[] operands,
                          Variable varResult,
                          StatementList stmtList)

implementFloorCeil

protected void implementFloorCeil(FarragoRexToOJTranslator translator,
                                  RexCall call,
                                  Expression[] operands,
                                  Variable varResult,
                                  StatementList stmtList)

implementAbs

private void implementAbs(FarragoRexToOJTranslator translator,
                          RexCall call,
                          Expression[] operands,
                          Variable varResult,
                          StatementList stmtList)

implementPower

private void implementPower(FarragoRexToOJTranslator translator,
                            RexCall call,
                            Expression[] operands,
                            Variable varResult,
                            StatementList stmtList)
Reference to SQL:2003 standard:
Part 2 Section 6.27 General Rule 12

implementExp

private void implementExp(FarragoRexToOJTranslator translator,
                          RexCall call,
                          Expression[] operands,
                          Variable varResult,
                          StatementList stmtList)

implementMod

private void implementMod(FarragoRexToOJTranslator translator,
                          RexCall call,
                          Expression[] operands,
                          Variable varResult,
                          StatementList stmtList)
Reference to SQL:2003 standard:
Part 2 Section 6.27 General Rule 9

implementSubstring

private void implementSubstring(FarragoRexToOJTranslator translator,
                                RexCall call,
                                Expression[] operands,
                                Variable varResult,
                                StatementList stmtList)

implementOverlay

private void implementOverlay(FarragoRexToOJTranslator translator,
                              RexCall call,
                              Expression[] operands,
                              Variable varResult,
                              StatementList stmtList)

implementConcat

private void implementConcat(FarragoRexToOJTranslator translator,
                             RexCall call,
                             Expression[] operands,
                             Variable varResult,
                             StatementList stmtList)

implementChangeCase

private void implementChangeCase(FarragoRexToOJTranslator translator,
                                 RexCall call,
                                 Expression[] operands,
                                 Variable varResult,
                                 StatementList stmtList)

implementTrim

private void implementTrim(FarragoRexToOJTranslator translator,
                           RexCall call,
                           Expression[] operands,
                           Variable varResult,
                           StatementList stmtList)

getThrowStatementList

private StatementList getThrowStatementList(FarragoOJRexBuiltinImplementor.Function function)