org.eigenbase.sql.type
Class ComparableOperandTypeChecker

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

public class ComparableOperandTypeChecker
extends SameOperandTypeChecker

Type checking strategy which verifies that types have the required attributes to be used as arguments to comparison operators.

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

Field Summary
private  RelDataTypeComparability requiredComparability
           
 
Fields inherited from class org.eigenbase.sql.type.SameOperandTypeChecker
nOperands
 
Constructor Summary
ComparableOperandTypeChecker(int nOperands, RelDataTypeComparability requiredComparability)
           
 
Method Summary
 boolean checkOperandTypes(SqlCallBinding callBinding, boolean throwOnFailure)
          Checks the types of all operands to an operator call.
 boolean checkOperandTypes(SqlOperatorBinding callBinding)
          Similar functionality to checkOperandTypes(SqlCallBinding, boolean), but not part of the interface, and cannot throw an error.
private  boolean checkType(SqlCallBinding callBinding, boolean throwOnFailure, RelDataType type)
           
 String getAllowedSignatures(SqlOperator op, String opName)
          Returns a string describing the allowed formal signatures of a call, e.g.
 
Methods inherited from class org.eigenbase.sql.type.SameOperandTypeChecker
getOperandCountRange
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Field Detail

requiredComparability

private final RelDataTypeComparability requiredComparability
Constructor Detail

ComparableOperandTypeChecker

public ComparableOperandTypeChecker(int nOperands,
                                    RelDataTypeComparability requiredComparability)
Method Detail

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
Overrides:
checkOperandTypes in class SameOperandTypeChecker
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

checkType

private boolean checkType(SqlCallBinding callBinding,
                          boolean throwOnFailure,
                          RelDataType type)

checkOperandTypes

public boolean checkOperandTypes(SqlOperatorBinding callBinding)
Similar functionality to checkOperandTypes(SqlCallBinding, boolean), but not part of the interface, and cannot throw an error.

Overrides:
checkOperandTypes in class SameOperandTypeChecker

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
Overrides:
getAllowedSignatures in class SameOperandTypeChecker
Parameters:
op - the operator being checked
opName - name to use for the operator in case of aliasing
Returns:
generated string