Scrivere plugin per MariaDB
Panoramica
Generalmente parlando, scrivere plugin per MariaDB è molto simile a scriverli per MySQL.
Plugin di autenticazione
Si veda Pluggable Authentication.
Plugin di tipo Storage Engine
Gli Storage Engine possono estendere la sintassi di CREATE TABLE
con clausole opzionali per i campi, gli indici e le tabelle. Si veda Estendere CREATE TABLE per ulteriori informazioni.
Struttura della dichiarazione dei plugin
In MariaDB 5.2 è stata introdotta una nuova dichiarazione dei plugin. Essa differisce da quella dei plugin di MySQL nei modi seguenti:
- non c'è l'inutile campo 'reserved' (l'ultimo nella dichiarazione dei plugin per MySQL)
- c'è una dichiarazione 'maturity'
- c'è un campo per la rappresentazione testuale vel campo version
MariaDB può caricare i plugin che hanno soltanto le dichiarazioni per MySQL, ma il numero di versione apparirà come '0', mentre maturity e author version appariranno come 'Unknown' nella tabella INFORMATION_SCHEMA.PLUGINS.
Per i plugin compilati (non caricati dinamicamente), la presenza della dichiarazione per MariaDB è obbligatoria.
Dichiarazione di esempio per un plugin
Ecco un esempio di dichiarazione per un plugin di MariaDB:
/* dichiarazione di un plugin per MariaDB */ maria_declare_plugin(example) { MYSQL_STORAGE_ENGINE_PLUGIN, /* il tipo di plugin (vedi include/mysql/plugin.h) */ &example_storage_engine_info, /* puntatore al descrittore del tipo specifico */ "EXAMPLEDB", /* nome del plugin */ "John Smith", /* autore del plugin */ "Example of plugin interface", /* descrizione del plugin */ PLUGIN_LICENSE_GPL, /* licenza del plugin (vedi include/mysql/plugin.h) */ example_init_func, /* puntatore alla funzione di inizializzazione del plugin */ example_deinit_func, /* puntatore alla funzione di deinizializzazione */ 0x0001 /* versione numerica: 0xAABB significa AA.BB */, example_status_variables, /* variabili di stato */ example_system_variables, /* variabili di sistema */ "0.1 example", /* rappresentazione stringa della versione */ MariaDB_PLUGIN_MATURITY_EXPERIMENTAL /* maturità (vedi include/mysql/plugin.h)*/ } maria_declare_plugin_end;