Sequência de Chamadas UDF para Funções Simples


A função principal deve ser declarada como mostrado aqui. Note que o tipo retornado e os parâmetros diferem, dependendo se você irá declarar a função SQL XXX() para retornar STRING, INTEGER, ou REAL na instrução CREATE FUNCTION:

Para funções STRING:

char *xxx(UDF_INIT *initid, UDF_ARGS *args,
 char *result, unsigned long *length,
 char *is_null, char *error);

Para funções INTEGER:

long long xxx(UDF_INIT *initid, UDF_ARGS *args,
 char *is_null, char *error);

Para funções REAL:

double xxx(UDF_INIT *initid, UDF_ARGS *args,
 char *is_null, char *error);

As funções de inicialização e finalização são declaradas desta forma:

my_bool xxx_init(UDF_INIT *initid, UDF_ARGS *args, char *message);
void xxx_deinit(UDF_INIT *initid);

O parâmetro initid é passado para todas as três funções. Ela aponta para uma estrutura UDF_INIT que é usada para passar informações entre as funções. Os membros da estrutura UDF_INIT são listados abaixo. A função de inicialização deve estar em todos os menbros que desejam ser alterados. (Para utilizar o padrão para um membro, deixe-o inalterado.):

Retornar