org.eigenbase.sql.type
Class AssignableOperandTypeChecker

java.lang.Object
  extended by org.eigenbase.sql.type.AssignableOperandTypeChecker
All Implemented Interfaces:
SqlOperandTypeChecker

public class AssignableOperandTypeChecker
extends Object
implements SqlOperandTypeChecker

AssignableOperandTypeChecker implements SqlOperandTypeChecker by verifying that the type of each argument is assignable to a predefined set of parameter types (under the SQL definition of "assignable").

Version:
$Id: //open/dev/farrago/src/org/eigenbase/sql/type/AssignableOperandTypeChecker.java#7 $
Author:
John V. Sichi

Field Summary
private  RelDataType[] paramTypes
           
 
Constructor Summary
AssignableOperandTypeChecker(RelDataType[] paramTypes)
          Instantiates this strategy with a specific set of parameter types.
 
Method Summary
 boolean checkOperandTypes(SqlCallBinding callBinding, boolean throwOnFailure)
          Checks the types of all operands to an operator call.
 String getAllowedSignatures(SqlOperator op, String opName)
          Returns a string describing the allowed formal signatures of a call, e.g.
 SqlOperandCountRange getOperandCountRange()
           
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Field Detail

paramTypes

private final RelDataType[] paramTypes
Constructor Detail

AssignableOperandTypeChecker

public AssignableOperandTypeChecker(RelDataType[] paramTypes)
Instantiates this strategy with a specific set of parameter types.

Parameters:
paramTypes - parameter types for operands; index in this array corresponds to operand number
Method Detail

getOperandCountRange

public SqlOperandCountRange getOperandCountRange()
Specified by:
getOperandCountRange in interface SqlOperandTypeChecker
Returns:
range of operand counts allowed in a call

checkOperandTypes

public boolean checkOperandTypes(SqlCallBinding callBinding,
                                 boolean throwOnFailure)
Description copied from interface: SqlOperandTypeChecker
Checks the types of all operands to an operator call.

Specified by:
checkOperandTypes in interface SqlOperandTypeChecker
Parameters:
callBinding - description of the call to be checked
throwOnFailure - whether to throw an exception if check fails (otherwise returns false in that case)
Returns:
whether check succeeded

getAllowedSignatures

public String getAllowedSignatures(SqlOperator op,
                                   String opName)
Description copied from interface: SqlOperandTypeChecker
Returns a string describing the allowed formal signatures of a call, e.g. "SUBSTR(VARCHAR, INTEGER, INTEGER)".

Specified by:
getAllowedSignatures in interface SqlOperandTypeChecker
Parameters:
op - the operator being checked
opName - name to use for the operator in case of aliasing
Returns:
generated string