La función de inicialización debe retornar
          0 si no hay errores y 1
          en cualquier otro caso. Si ocurre un error,
          xxx_init() debe almacenar un mensaje de
          error terminado en null en el parámetro
          message . El mensaje se retorna al cliente.
          El búffer de mensajes es de longitud
          MYSQL_ERRMSG_SIZE, pero debe tratar que el
          mensaje ea inferior a 80 caracteres para que coincida con la
          anchura de una pantalla de terminal estándar.
        
          El valor retornado por una función principal
          xxx() es el valor de la función, para
          funciones long long y
          double . Una función de cadenas de
          caracteres debe retornar un puntero al resultado y asignar
          *result y *length con
          los contenidos y longitud del valor de retorno. Por ejemplo:
        
memcpy(result, "result string", 13); *length = 13;
          El búffer result que se pasa a la función
          xxx() tiene longitud de 255 bytes. Si su
          resultado coincide con esto, no tiene que preocuparse acerca
          de reservar memoria para los resultados.
        
          Si su función de cadenas de caracteres necesita retornar una
          cadena de caracteres mayor a 255 bytes, debe reservar el
          espacio para ello con malloc() en su
          función xxx_init() o su función
          xxx() y liberarla en su función
          xxx_deinit() . Puede almacenar la memoria
          reservada en la entrada ptr en la
          estructura UDF_INIT para reusar para
          llamadas futuras xxx() . Consulte
          Sección 27.2.3.1, “Secuencias de llamada UDF para funciones simples”.
        
          Para indicar un valor de retorno de NULL en
          la función principal, asigne a *is_null
          1:
        
*is_null = 1;
          Para indicar un retorno de error en la función principal,
          inicialice *error con 1:
        
*error = 1;
          Si xxx() asigna a *error
          1 para cualquier registro, el valor de la
          función es NULL para el registro actual y
          para cualquier subsecuente registro procesado por el comando
          en que se invoca XXX() .
          (xxx() no se llama ni por registros
          subsecuentes.) Nota: Antes de
          MySQL 3.22.10, debe asignar tanto *error
          como *is_null:
        
*error = 1; *is_null = 1;
Ésta es una traducción del manual de referencia de MySQL, que puede encontrarse en dev.mysql.com. El manual de referencia original de MySQL está escrito en inglés, y esta traducción no necesariamente está tan actualizada como la versión original. Para cualquier sugerencia sobre la traducción y para señalar errores de cualquier tipo, no dude en dirigirse a mysql-es@vespito.com.

