Class LeadLagInputTypeStrategy

java.lang.Object
org.apache.flink.table.types.inference.strategies.LeadLagInputTypeStrategy
All Implemented Interfaces:
InputTypeStrategy

@Internal public final class LeadLagInputTypeStrategy extends Object implements InputTypeStrategy
Type strategy for BuiltInFunctionDefinitions.LAG and { @link BuiltInFunctionDefinitions#LEAD}.

The second argument needs to be NUMERIC if provided. Third argument must have a common type with the first.

  • Constructor Details

    • LeadLagInputTypeStrategy

      public LeadLagInputTypeStrategy()
  • Method Details

    • getArgumentCount

      public ArgumentCount getArgumentCount()
      Description copied from interface: InputTypeStrategy
      Initial input validation based on the number of arguments.
      Specified by:
      getArgumentCount in interface InputTypeStrategy
    • inferInputTypes

      public Optional<List<DataType>> inferInputTypes(CallContext callContext, boolean throwOnFailure)
      Description copied from interface: InputTypeStrategy
      Main logic for inferring and validating the input arguments. Returns a list of argument data types that are valid for the given call. If the returned types differ from CallContext.getArgumentDataTypes(), a casting operation can be inserted. An empty result means that the given input is invalid.
      Specified by:
      inferInputTypes in interface InputTypeStrategy
      Parameters:
      callContext - provides details about the function call
      throwOnFailure - whether this function is allowed to throw an ValidationException with a meaningful exception in case the inference is not successful or if this function should simply return an empty result.
      Returns:
      three-state result for either "true, same data types as arguments", "true, but arguments must be casted to returned data types", or "false, no inferred data types could be found"
      See Also:
    • getExpectedSignatures

      public List<Signature> getExpectedSignatures(FunctionDefinition definition)
      Description copied from interface: InputTypeStrategy
      Returns a summary of the function's expected signatures.
      Specified by:
      getExpectedSignatures in interface InputTypeStrategy
      Parameters:
      definition - the function definition that defines the function currently being called.