Class TypeInference.Builder

  • Enclosing class:
    TypeInference

    @PublicEvolving
    public static class TypeInference.Builder
    extends Object
    Builder for configuring and creating instances of TypeInference.
    • Constructor Detail

      • Builder

        public Builder()
    • Method Detail

      • namedArguments

        public TypeInference.Builder namedArguments​(List<String> argumentNames)
        Sets the list of argument names for specifying a fixed, not overloaded, not vararg input signature explicitly.

        This information is useful for SQL's concept of named arguments using the assignment operator (e.g. FUNC(max => 42)). The names are used for reordering the call's arguments to the formal argument order of the function.

      • optionalArguments

        public TypeInference.Builder optionalArguments​(List<Boolean> optionalArguments)
        Sets the list of argument optionals for specifying optional arguments in the input signature explicitly.

        This information is useful for SQL's concept of named arguments using the assignment operator. The optionals are used to determine whether an argument is optional or required in the function call.

      • typedArguments

        public TypeInference.Builder typedArguments​(List<DataType> argumentTypes)
        Sets the list of argument types for specifying a fixed, not overloaded, not vararg input signature explicitly.

        This information is useful for optional arguments with default value. In particular, the number of arguments that need to be filled with a default value and their types is important.

      • accumulatorTypeStrategy

        public TypeInference.Builder accumulatorTypeStrategy​(TypeStrategy accumulatorTypeStrategy)
        Sets the strategy for inferring the intermediate accumulator data type of a function call.
      • outputTypeStrategy

        public TypeInference.Builder outputTypeStrategy​(TypeStrategy outputTypeStrategy)
        Sets the strategy for inferring the final output data type of a function call.

        Required.