Arquivos implementando UDFs devem ser compilados e instalados
          na máquina onde o servidor está sendo executado. Este
          processo é descrito abaixo pelo arquivo UDF exemplo
          udf_example.cc que é incluído na
          distribuição fonte do MySQL. Este arquivo contém as
          seguintes funções:
        
              metaphon() retorna uma string
              metafonica do argumento string. Ela é algo como uma
              string soundex, mas é mais voltada para o inglês.
            
              myfunc_double() retorna a soma de
              valores ASCII de caracteres e seus argumentos, dividido
              pela soma de tamanho de seus argumentos.
            
              myfunc_int() retorna a soma do tamanho
              de seus argumentos.
            
              sequence([const int]) retorna uma
              sequência iniciando a partir de um número dado ou 1 se
              nenhum número for fornecido.
            
              lookup() retorna o IP de um nome de
              máquina.
            
              reverse_lookup() retorna o nome de
              mauina para um número IP. A função pode ser chamada com
              uma string "xxx.xxx.xxx.xxx" ou quatro
              números.
            
A arquivo carregável dinamicamente deve ser compilado como um arquivo objeto compartilhável usando um comando como este:
shell> gcc -shared -o udf_example.so myfunc.cc
          Você pode encontrar facilmente as opções de compilador
          corretas para seu sistema executando este comando no
          diretório sql da sua árvore de fonte
          MySQL:
        
shell> make udf_example.o
          Você deve executar comando de compilador similar àquele que
          o make mostra, exceto que você deve
          remover a opção -c próxima ao fim da
          linha e adicionar -o udf_example.so. (Em
          alguns sistemas você pode precisar deixar o comando
          -c.)
        
          Uma vez que você tenha compilado um objeto compartilhado
          contendo UDFs, você deve instalá-lo e avisar o MySQL sobre
          ele. Compilar um objeto compartilhado de
          udf_example.cc produz um arquivo com nome
          parecido com udf_example.so (o nome exato
          pode variar de plataforma para plataforma). Copie este arquivo
          para algum diretório procurado com o ligador dinâmico
          ld, tal como /usr/lib
          ou adicione o diretório no qual você colocou o objeto
          compartilhado ao arquivo de configuração do ligador (e.g.
          /etc/ld.so.conf).
        
          Em muitos sistemas você pode as variáveis de ambiente
          LD_LIBRARY ou
          LD_LIBRARY_PATH para apontar para o
          diretório onde se encontra os seus arquivos de funções UDF.
          A página dlopen do manual diz a você
          quais variáveis você deve utilizar em seu sistema. Você
          deve configurar isto nos scripts de inicialização
          mysql.server ou
          mysqld_safe e reiniciar o
          mysqld.
        
          Depois da biblioteca ser instalada, notifique
          mysqld sobre as novas funções com estes
          comandos:
        
mysql>CREATE FUNCTION metaphon RETURNS STRING SONAME "udf_example.so";mysql>CREATE FUNCTION myfunc_double RETURNS REAL SONAME "udf_example.so";mysql>CREATE FUNCTION myfunc_int RETURNS INTEGER SONAME "udf_example.so";mysql>CREATE FUNCTION lookup RETURNS STRING SONAME "udf_example.so";mysql>CREATE FUNCTION reverse_lookup->RETURNS STRING SONAME "udf_example.so";mysql>CREATE AGGREGATE FUNCTION avgcost->RETURNS REAL SONAME "udf_example.so";
          Funções podem ser deletadas utilizando-se DROP
          FUNCTION:
        
mysql>DROP FUNCTION metaphon;mysql>DROP FUNCTION myfunc_double;mysql>DROP FUNCTION myfunc_int;mysql>DROP FUNCTION lookup;mysql>DROP FUNCTION reverse_lookup;mysql>DROP FUNCTION avgcost;
          As instruções CREATE FUNCTION e
          DROP FUNCTION atualizam a tabela de sistema
          func no banco de dados
          mysql. O nome da função, tipo e
          biblioteca compartilhada são salvas na tabela. Você deve ter
          os privilégios INSERT e
          DELETE para o banco de dados
          mysql para criar e deletar funções.
        
          Você não deve usar CREATE FUNCTION para
          adicionar uma função que já tenha sido criada. Se você
          precisar reinstalar uma função, você deve removê-la com
          DROP FUNCTION e então reinstalá-la com
          CREATE FUNCTION. Você precisaria fazer
          isto, por exemplo, se você recompilar uma nova versão da sua
          função, assim o mysqld obtem a nova
          versão. Por outro lado, o servidor continuará a utilizar a
          versão antiga.
        
          Funções ativas são recarregadas a cada vez que o servidor
          inicia, a menos que você inicie mysqld com
          a opção --skip-grant-tables. Neste caso, a
          a inicialização de UDF é ignorada e as UDFs ficam
          indisponíveis. Uma função ativa é aquela que carregada com
          CREATE FUNCTION e não removida com
          DROP FUNCTION.)
        
This is a translation of the MySQL Reference Manual that can be found at dev.mysql.com. The original Reference Manual is in English, and this translation is not necessarily as up to date as the English version.

