CREATE FUNCTION (UDF)

Sintassi

CREATE [OR REPLACE] [AGGREGATE] FUNCTION [IF NOT EXISTS] nome_funzione
  RETURNS {STRING|INTEGER|REAL|DECIMAL}
    SONAME nome_shared_library

Spiegazione

Le user-defined function (UDF) sono modi per estendere MariaDB con una nuova funzione simile a qualle native (built-in), come ABS() e CONCAT().

nome_funzione è il nome che dovrà essere usato nelle istruzioni SQL per invocarla. La clausola RETURNS indica il tipo di valore restituito dalla funzione. E' possibile specificare DECIMAL dopo RETURNS, ma attualmente le funzioni DECIMAL restituiscono valori stringa, e dovrebbero essere dichiarate come STRING.

nome_shared_library è il nome del file che contiene l'implementazione della funzione. Il file deve essere posizionato nella directory dei plugin. Questa directory è specificata dalla variabile di sistema plugin_dir.

Nota: Questa è una novità di MariaDB/MySQL 5.1. Nelle versioni precedenti di MySQL, lo shared object può trovarsi in qualsiasi directory alla quale il linker dinamico possa accedere.

Per creare una funzione, occorre disporre del privilegio INSERT per il database mysql. Ciò è necessario perché CREATE FUNCTION aggiunge una riga nella tabella di sistema mysql.func, contenente il nome della funzione, il suo tipo e il nome della libreria condivisa. Se questa tabella non è presente, occorre eseguire il comando mysql_upgrade per crearla.

Commenti

Sto caricando i commenti......
Content reproduced on this site is the property of its respective owners, and this content is not reviewed in advance by MariaDB. The views, information and opinions expressed by this content do not necessarily represent those of MariaDB or any other party.