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