В библиотечном файле может содержаться одна или несколько функций. Язык реализации — С или C++. Каждой SQL-функции в этом файле соответствует как минимум одна функция с аналогичным именем. Кроме того, могут быть созданы функции с суффиксами init и deinit. Например, в файле udf example.сс содержатся определения функций metaphon (), metaphon init () и metaphon deinit (). Когда вводится инструкция, содержащая вызов, сначала происходит обращение к функции с суффиксом init. Затем для каждой записи выполняется основная функция. В конце вызывается функция с суффиксом deinit. Все три функции должны быть безопасны для потоков. Это означает, что в них нельзя использовать глобальные переменные, меняющие свои значения. Функция с суффиксом _init предназначена для динамического выделения памяти, а функция с суфиксом - deinitосвобождает выделенную память.
Основная функция может возвращать значение с плавающей запятой, целое число или строку. В первом случае тип результата должен быть double, во втором — long, a в третьем — char *. В листинге 13.7 показано несколько прототипов функций.