Interface FunctionReturnTypeResolver

All Known Implementing Classes:
ArrayViaArgumentReturnTypeResolver, ArrayViaElementArgumentReturnTypeResolver, AvgFunction.ReturnTypeResolver, CastTargetReturnTypeResolver, ElementViaArrayArgumentReturnTypeResolver, JsonArrayViaElementArgumentReturnTypeResolver, SumReturnTypeResolver

public interface FunctionReturnTypeResolver
Pluggable strategy for resolving a function return type for a specific call.
  • Method Details

    • resolveFunctionReturnType

      @Deprecated(forRemoval=true) default @Nullable ReturnableType<?> resolveFunctionReturnType(ReturnableType<?> impliedType, Supplier<MappingModelExpressible<?>> inferredTypeSupplier, List<? extends SqmTypedNode<?>> arguments, TypeConfiguration typeConfiguration)
      Deprecated, for removal: This API element is subject to removal in a future version.
      Resolve the return type for a function given its context-implied type and the arguments to this call.

      The context-implied type is the type implied by where the function occurs in the query. E.g., for an equality predicate (`something = some_function`) the implied type of the return from `some_function` would be defined by the type of `some_function`.

      Returns:
      The resolved type.
    • resolveFunctionReturnType

      default @Nullable ReturnableType<?> resolveFunctionReturnType(ReturnableType<?> impliedType, @Nullable SqmToSqlAstConverter converter, List<? extends SqmTypedNode<?>> arguments, TypeConfiguration typeConfiguration)
      Resolve the return type for a function given its context-implied type and the arguments to this call.

      The context-implied type is the type implied by where the function occurs in the query. E.g., for an equality predicate (`something = some_function`) the implied type of the return from `some_function` would be defined by the type of `some_function`.

      Returns:
      The resolved type.
    • resolveFunctionReturnType

      BasicValuedMapping resolveFunctionReturnType(Supplier<BasicValuedMapping> impliedTypeAccess, List<? extends SqlAstNode> arguments)
      Resolve the return type for a function given its context-implied type and the arguments to this call.

      The context-implied type is the type implied by where the function occurs in the query. E.g., for an equality predicate (`something = some_function`) the implied type of the return from `some_function` would be defined by the type of `some_function`.

      Returns:
      The resolved type.
    • getReturnType

      default String getReturnType()
      The return type in a format suitable for display to the user.