Exemples d'UDF

Exemple d'UDF n° 1

Il s'agit d'un exemple simple d'UDF qui additionne deux nombres et renvoie le résultat.
function evaluate(a,b)
return a + b
end

function getName()
return "adder"
end

function getType()
return "udf"
end

function getArgs()
args={}
args[1] = { "a", double }
args[2] = { "b", double }
return args

end

function getResult()
return double

end

Exemple d'UDF #2

Cet UDF prend une chaîne de caractères et compte le nombre de caractères uniques qu'elle contient, en renvoyant le résultat.
function evaluate( str )
count = 0
chars = {}
for ch in string.gmatch(str, "." ) do
if chars[ch] == null then
chars[ch] = 1
count = count + 1
end

end

return count
end

function getType()
return "UDF"
end

function getName()
return "unique_chars"
end

function getArgs()
args={}
args[1] = { "str", varchar(any) }
return args
end

function getResult()
return integer
end

UDF Example #3 (calculateSize)
Dans certaines situations, il peut être très utile de prendre en charge une taille de sortie dynamique pour un résultat VARCHAR ou NUMERIC. Cet exemple montre comment utiliser la méthode calculateSize pour définir dynamiquement la taille d'une colonne de résultats VARCHAR comme étant la somme de la longueur des deux arguments VARCHAR.
function evaluate(s1, s2 )
return s1 || s2
end

function calculateSize( args )
return args[1].length + args[2].length
end

function getType()
return "UDF"
end

function getName()
return "concat"

end

function getArgs()
return {{ "", varchar("any") },
{ "", varchar("any") }}
end

function getResult()
return varchar(any)
end