XOOPS Brasil

 

14.3. Adicionado Novos Procedimentos ao MySQL

No MySQL, você pode definir um procedimento em C++ que pode acessar e modificar os dados em uma consulta antes que ela seja enviada ao cliente. A modificação pode ser feita linha a linha ou a nivel GROUP BY.

Nós criamos um procedimento exemplo no MySQL Versão 3.23 para mostrar o que pode ser feito.

Adicionalmente recomendamos que você de uma olhada em mylua. Com isto você pode utilizar a linguagem LUA para carregar um procedimento em tempo de execução no mysqld.

14.3.1. Análise de Procedimento

analyse([max elements,[max memory]])

Este procedimento é definido em sql/sql_analyse.cc. Ele examina o resultado de sua consulta e retorna uma análise do resultado:

  • max elements (padrão 256) é o número máximo de valores distintos que analyse notificará por coluna. Isto é utilizado por analyse para verificar se o tipo ótimo da coluna deve ser do tipo ENUM.

  • max memory (padrão 8192) é a memória máxima que analyse deve alocar por coluna enquanto tenta encontrar todos os valores distintos.

SELECT ... FROM ... WHERE ... PROCEDURE ANALYSE([max elements,[max memory]])

14.3.2. Escrevendo um Procedimento

No momento, a única documentação sobre isto é o código fonte.

Você pode encontrar todas as informações sobre procedimentos examinando os seguintes arquivos:

  • sql/sql_analyse.cc

  • sql/procedure.h

  • sql/procedure.cc

  • sql/sql_select.cc