2010-07-17 14 views
9

In SQLITE esiste la possibilità di creare relativamente facilmente funzioni e aggregati definiti dall'utente in lingue (di estensione) come C, Perl, Python e altri. C'è anche questa possibilità di usare common-lisp come estensione del linguaggio SQLITE? So che ci sono biblioteche come cl-sqlite e plain-odbc ma non sembrano offrire questa possibilità.Funzioni SQLITE definite dall'utente in Lisp

risposta

6

Quando ho scritto cl-sqlite, non avevo pensato a funzioni definite dall'utente.

Ma in realtà è piuttosto semplice. Serve solo a definire i callback, le funzioni estranee e avvolgerli nell'interfaccia lispy. Immagino che presto aggiungerò questa funzionalità a cl-sqlite.

+1

Grazie. Sono contento che non sarebbe difficile. Nel frattempo ho scritto un codice C che utilizza sqlite3_exec e nel callback ho incorporato alcune funzioni C ECL (implementazione lisp) come ecl_cons (ecl_cstring_to_base_string_or_nil (p_fields [i]), ... e lo chiamiamo in ECL usando ffi: c-inline e ffi: clines Quindi, ovviamente, potrei usare sqlite3_create_function nel file C sulla funzione definita dall'utente codificata C. Ma nel cl-sqlite aggiornato credo che sarà più facile perché l'utente definirà la funzione definita dall'utente in CL senza essere troppo coinvolto con il codice C (forse solo attraverso il CFFI). – francogrex

Problemi correlati