Fonctions utilisateur : appeler des fonctions simples
<<<
Appeler des fonctions utilisateurs pour les groupements Traitement des arguments
>>>

23.2.2 Ajouter une nouvelle fonction définie par l'utilisateur ( UDF )
23.2 Ajouter des fonctions à MySQL
23 Etendre MySQL
 Manuel de Référence MySQL 4.1 : Version Française

Fonctions utilisateur : appeler des fonctions simples
->Appeler des fonctions utilisateurs pour les groupements
Traitement des arguments
Valeurs de retour et gestion d'erreurs.
Compiler et installer des fonctions utilisateurs

23.2.2.2 Appeler des fonctions utilisateurs pour les groupements

Voici une description des différentes fonctions que vous devez définir pour réaliser des calculs sur des regroupements, avec une fonction utilisateur :

Notez que ce qui suit n'est pas demandé ou utilisé par MySQL 4.1.1. Vous pouvez conserver cette définition pour assurer la compatibilité entre MySQL 4.0 et MySQL 4.1.1.

char *xxx_reset(UDF_INIT *initid, UDF_ARGS *args,
                char *is_null, char *error);
Cette fonction est appelée lorsque MySQL trouve la première ligne dans un nouveau groupe. Dans cette fonction, vous devez remettre à zéro des variables internes de sommaire, puis indique le nouvel argument comme premier membre du nouveau groupe.Dans de nombreuses situations, cela se fait en interne en remettant à zéro toutes les variables, et en appelant xxx_add() .

Cette fonction n'est demandée que par MySQL 4.1.1 et plus récent :


char *xxx_clear(UDF_INIT *initid, char *is_null, char *error);
Cette fonction est appelée à chaque fois qu'une ligne qui appartient à un groupe est trouvée, hormis la première ligne. Durant cette fonction, vous devez ajouter les données dans votre variable interne de sommaire.

Vous pouvez utiliser le pointeur error pour stocker un octet si quelque chose n'a pas fonctionné.


char *xxx_add(UDF_INIT *initid, UDF_ARGS *args,
              char *is_null, char *error);
Cette fonction est appelée pour toutes les lignes du même groupe, hormis pour la première ligne. Dans cette dernière, vous devez ajouter la valeur dans UDF_ARGS pour vos variables internes.

La fonction xxx() doit être déclarée de manière identique à celle d'un fonction utilisateur simple. Appel des UDF .

Cette fonction est appelée lorsque toutes les lignes d'un groupe ont été traitées. Vous ne devez normalement pas accéder à la variable args ici, mais retourner votre valeur, à partir des valeurs du sommaire interne.

Tous les traitements des arguments de xxx_reset() et xxx_add() doivent être fait d'une manière similaire à celle des fonctions UDF normales. Récupération des arguments .

La gestion de la valeur retournée par xxx() doit être identique à celle d'une fonction utilisateur classique. Valeurs retournées et gestion d'erreurs .

Le pointeur argument de is_null et error sont les mêmes pour tous les appels de xxx_reset() , xxx_add() et xxx() . Vous pouvez utiliser ces valeur pour vous rappeler si vous avez rencontré une erreur, ou si la fonction xxx() doit retourner NULL . Notez que vous ne devez pas stocker de chaîne dans *error ! C'est un conteneur d'un seul octet!

is_null est remis à zéro pour chaque (avant d'appeler xxx_reset() . error n'est jamais remis à zéro.

Si isnull ou error sont modifiés après xxx() , alors MySQL va retourner NULL comme résultat de la fonction de groupement.

<< Appeler des fonctions utilisateurs pour les groupements >>
Fonctions utilisateur : appeler des fonctions simples Ajouter une nouvelle fonction définie par l'utilisateur ( UDF ) Traitement des arguments