Arguments variables

Les fonctions à arguments variables et les agrégats offrent encore plus de flexibilité que les arguments de taille générique. Avec les UDF, UDA et UDTF à argument variable, vous ne spécifiez que le mot-clé VARARGS dans la liste argument_type. Les utilisateurs peuvent spécifier entre 0 et 64 valeurs d'entrée de n'importe quel type de données pris en charge en tant qu'arguments d'entrée. Par exemple, en utilisant la fonction " greatest_value d'une section précédente :
MYDB.SCHEMA(MYUSER)=> CREATE FUNCTION greatest_value(VARARGS) RETURNS 
INT64...

Dans le corps de la fonction, le code doit traiter les valeurs d'entrée et les gérer si nécessaire. Par exemple, le corps de la fonction doit vérifier les types de données des arguments d'entrée et, le cas échéant, les convertir ou les exclure. Vous devez concevoir votre code UDX de manière à gérer le type de données local des valeurs d'entrée, par exemple en gérant les types de données Numeric32Val et double. Si vous codiez en dur les valeurs d'entrée, vous pouvez déclarer l'entrée comme func(double) et lorsqu'elle est invoquée avec un nombre, le système la convertit en double pour vous.

Vous pouvez utiliser des signatures d'arguments variables pour créer une fonction ou un agrégat qui peut être utilisé pour différentes combinaisons de types d'entrées. Cela simplifie le développement de vos UDF, UDA et UDTF et réduit la nécessité de créer des définitions surchargées qui effectuent la même tâche pour différents types et nombres d'arguments.