2010-07-17 22 views
9

En SQLITE existe la posibilidad de crear funciones y agregados definidos por el usuario con relativa facilidad en lenguajes (de extensión) como C, Perl, Python y otros. ¿Existe también la posibilidad de usar common-lisp como extensión de lenguaje SQLITE? Sé que hay bibliotecas como cl-sqlite y plain-odbc, pero no parecen ofrecer esta posibilidad.Funciones definidas por el usuario de SQLITE en Lisp

Respuesta

6

Cuando escribí cl-sqlite, no había pensado en las funciones definidas por el usuario.

Pero en realidad es bastante fácil. Solo se necesita definir devoluciones de llamadas, funciones externas y envolverlas en una interfaz lispy. Creo que agregaré esta característica a cl-sqlite pronto.

+1

Gracias. Me alegra que no sea difícil. Mientras tanto escribí un código C que usa sqlite3_exec y en la devolución de llamada incorporé algunas funciones C de ECL (implementación de lisp) como ecl_cons (ecl_cstring_to_base_string_or_nil (p_fields [i]), ... y llamo eso en ECL usando ffi: c-inline y ffi: clines. Entonces, por supuesto, podría usar la función sqlite3_create_free en el archivo C en la función definida por el usuario codificada en C. Pero en el cl-sqlite actualizado creo que será más fácil porque el usuario definirá la función definida por el usuario en CL sin involucrarse demasiado con el código C (tal vez solo a través del CFFI). – francogrex

Cuestiones relacionadas