Class AssignableOperandTypeChecker

All Implemented Interfaces:

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").
  • Constructor Details

    • AssignableOperandTypeChecker

      public AssignableOperandTypeChecker(List<RelDataType> paramTypes, @Nullable List<String> paramNames)
      Instantiates this strategy with a specific set of parameter types.
      paramTypes - parameter types for operands; index in this array corresponds to operand number
      paramNames - parameter names, or null
  • Method Details

    • getOperandCountRange

      public SqlOperandCountRange getOperandCountRange()
      Description copied from interface: SqlOperandTypeChecker
      Returns the range of operand counts allowed in a call.
      Specified by:
      getOperandCountRange in interface SqlOperandTypeChecker
    • 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
      callBinding - description of the call to be checked
      throwOnFailure - whether to throw an exception if check fails (otherwise returns false in that case)
      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
      op - the operator being checked
      opName - name to use for the operator in case of aliasing
      generated string