Package org.apache.calcite.sql.type
Interface SqlOperandTypeChecker
- All Known Subinterfaces:
SqlOperandMetadata
,SqlSingleOperandTypeChecker
- All Known Implementing Classes:
ArrayElementOperandTypeChecker
,ArrayInsertOperandTypeChecker
,AssignableOperandTypeChecker
,ComparableOperandTypeChecker
,CompositeOperandTypeChecker
,CompositeSingleOperandTypeChecker
,ExplicitOperandTypeChecker
,FamilyOperandTypeChecker
,IntervalOperandTypeChecker
,LiteralOperandTypeChecker
,MultisetOperandTypeChecker
,NotNullOperandTypeChecker
,OperandMetadataImpl
,SameOperandTypeChecker
,SameOperandTypeExceptLastOperandChecker
,SetopOperandTypeChecker
,SqlWindowTableFunction.AbstractOperandMetadata
public interface SqlOperandTypeChecker
Strategy interface to check for allowed operand types of an operator call.
This interface is an example of the
strategy pattern
.
- See Also:
-
Nested Class Summary
Modifier and TypeInterfaceDescriptionstatic enum
Strategy used to make arguments consistent. -
Method Summary
Modifier and TypeMethodDescriptiondefault SqlOperandTypeChecker
and
(SqlOperandTypeChecker checker) Composes this with another checker using AND.boolean
checkOperandTypes
(SqlCallBinding callBinding, boolean throwOnFailure) Checks the types of all operands to an operator call.getAllowedSignatures
(SqlOperator op, String opName) Returns a string describing the allowed formal signatures of a call, e.g.Returns the strategy for making the arguments have consistency types.Returns the range of operand counts allowed in a call.default boolean
Returns whether the list of parameters is fixed-length.default boolean
isOptional
(int i) Returns whether thei
th operand is optional.default SqlOperandTypeChecker
or
(SqlOperandTypeChecker checker) Composes this with another checker using OR.default @Nullable SqlOperandTypeInference
Converts this type checker to a type inference; returns null if not possible.default CompositeOperandTypeChecker
withGenerator
(BiFunction<SqlOperator, String, String> signatureGenerator) Returns a copy of this checker with the given signature generator.
-
Method Details
-
checkOperandTypes
Checks the types of all operands to an operator call.- Parameters:
callBinding
- description of the call to be checkedthrowOnFailure
- whether to throw an exception if check fails (otherwise returns false in that case)- Returns:
- whether check succeeded
-
getOperandCountRange
SqlOperandCountRange getOperandCountRange()Returns the range of operand counts allowed in a call. -
getAllowedSignatures
Returns a string describing the allowed formal signatures of a call, e.g. "SUBSTR(VARCHAR, INTEGER, INTEGER)".- Parameters:
op
- the operator being checkedopName
- name to use for the operator in case of aliasing- Returns:
- generated string
-
getConsistency
Returns the strategy for making the arguments have consistency types. -
withGenerator
default CompositeOperandTypeChecker withGenerator(BiFunction<SqlOperator, String, String> signatureGenerator) Returns a copy of this checker with the given signature generator. -
isOptional
default boolean isOptional(int i) Returns whether thei
th operand is optional. -
isFixedParameters
default boolean isFixedParameters()Returns whether the list of parameters is fixed-length. In standard SQL, user-defined functions are fixed-length.If true, the validator should expand calls, supplying a
DEFAULT
value for each parameter for which an argument is not supplied. -
typeInference
Converts this type checker to a type inference; returns null if not possible. -
and
Composes this with another checker using AND. -
or
Composes this with another checker using OR.
-