eXtremeSQL allows developers to create their own user-defined functions. The user-defined function (UDF) must be defined as returning type “static String*” and can accept arguments of type “Value*”. The user-defined aggregate functions must be defined as returning type “static Value*” and can accept arguments of type “Value*”. The UDF must be “registered” with the eXtremeSQL runtime by declaring a function of type “static SqlFunctionDeclaration udf ()” with arguments specifying the type returned, the name used to call it, a pointer to the function and the number of arguments required.Then it must be “registered” with the eXtremeSQL runtime by declaring a function of type “static SqlFunctionDeclaration udf()” with arguments specifying the type returned, the name used to call it, a pointer to the function and the number of arguments required.