Argumentos variáveis

Funções e agregados de argumento variável oferecem mais flexibilidade que argumentos de tamanho genérico. Com UDFs, UDAs, e UDTFs com argumentos variáveis você especifica apenas a palavra-chave VARARGS no argument_type_list. Os usuários podem especificar valores de entrada de 0 a 64 de qualquer tipo de dados suportados como argumentos de entrada. Por exemplo, usando a função greatest_value a partir de uma seção anterior:
MYDB.SCHEMA(MYUSER)=> CREATE FUNCTION greatest_value(VARARGS) RETURNS 
INT64...

Dentro do corpo da função, o código deve processar os valores de entrada e gerenciá-los conforme necessário. Por exemplo, o corpo da função deve verificar os tipos de dados dos argumentos de entrada e um cast ou erro de saída conforme aplicável. Você deve projetar seu código UDX para manipular o tipo de dados local dos valores de entrada, como gerenciamento Numeric32Val versus tipos de dados duplo. Se você usar codificação permanente nos valores de entrada, pode declarar a entrada como func(double) e quando chamada com um numérico, o sistema efetua cast para double para você.

Você pode usar assinaturas de argumento variável para criar uma função ou agregado que podem ser usados para combinações diferentes de tipos de entrada. Isto simplifica o desenvolvimento de seus UDFs, UDAs, e UDTFs e reduz a necessidade de criar definições sobrecarregadas que executam a mesma tarefa para diferentes tipos e números de argumentos.