org.eigenbase.sql.type
Class SqlTypeTransformCascade

java.lang.Object
  extended by org.eigenbase.sql.type.SqlTypeTransformCascade
All Implemented Interfaces:
SqlReturnTypeInference

public class SqlTypeTransformCascade
extends Object
implements SqlReturnTypeInference

Strategy to infer the type of an operator call from the type of the operands by using one SqlReturnTypeInference rule and a combination of SqlTypeTransforms

Version:
$Id: //open/dev/farrago/src/org/eigenbase/sql/type/SqlTypeTransformCascade.java#6 $
Author:
Wael Chatila

Field Summary
private  SqlReturnTypeInference rule
           
private  SqlTypeTransform[] transforms
           
 
Constructor Summary
SqlTypeTransformCascade(SqlReturnTypeInference rule, SqlTypeTransform transform)
          Creates a SqlTypeTransformCascade from a rule and a single transform.
SqlTypeTransformCascade(SqlReturnTypeInference rule, SqlTypeTransform[] transforms)
          Creates a SqlTypeTransformCascade from a rule and an array of one or more transforms.
SqlTypeTransformCascade(SqlReturnTypeInference rule, SqlTypeTransform transform0, SqlTypeTransform transform1)
          Creates a SqlTypeTransformCascade from a rule and two transforms.
 
Method Summary
 RelDataType inferReturnType(SqlOperatorBinding opBinding)
          Infers the return type of a call to an SqlOperator.
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Field Detail

rule

private final SqlReturnTypeInference rule

transforms

private final SqlTypeTransform[] transforms
Constructor Detail

SqlTypeTransformCascade

public SqlTypeTransformCascade(SqlReturnTypeInference rule,
                               SqlTypeTransform[] transforms)
Creates a SqlTypeTransformCascade from a rule and an array of one or more transforms.

"Precondition:"
null!=rule, null!=transforms, transforms.length > 0, transforms[i] != null

SqlTypeTransformCascade

public SqlTypeTransformCascade(SqlReturnTypeInference rule,
                               SqlTypeTransform transform)
Creates a SqlTypeTransformCascade from a rule and a single transform.

"Precondition:"
null!=rule, null!=transform

SqlTypeTransformCascade

public SqlTypeTransformCascade(SqlReturnTypeInference rule,
                               SqlTypeTransform transform0,
                               SqlTypeTransform transform1)
Creates a SqlTypeTransformCascade from a rule and two transforms.

"Precondition:"
null!=rule, null!=transform0, null!=transform1
Method Detail

inferReturnType

public RelDataType inferReturnType(SqlOperatorBinding opBinding)
Description copied from interface: SqlReturnTypeInference
Infers the return type of a call to an SqlOperator.

Specified by:
inferReturnType in interface SqlReturnTypeInference
Parameters:
opBinding - description of operator binding
Returns:
inferred type