2010-07-17 89 views
9

在SQLITE中,可以使用(扩展)语言(如C,Perl,Python等)轻松创建用户定义的函数和聚合。使用common-lisp作为SQLITE语言扩展还有这种可能吗?我知道有像cl-sqlite和plain-odbc这样的库,但它们似乎不提供这种可能性。Lisp中的SQLITE用户定义函数

回答

6

当我写cl-sqlite时,我没有想过用户定义的函数。

但它其实很简单。它只需要定义回调,外部函数并将它们包装在lispy界面中。我想我会很快将这个功能添加到cl-sqlite中。

+1

谢谢。我很高兴这不会有困难。其实同时我写了一个使用sqlite3_exec的C代码,并在回调函数中嵌入了一些ECL(lisp实现)C函数,如ecl_cons(ecl_cstring_to_base_string_or_nil(p_fields [i])... 并在ECL中使用ffi:c-inline然后当然我可以在C编码的用户自定义函数的C文件中使用sqlite3_create_function,但是在更新后的cl-sqlite中,我相信它会更容易一些,因为用户将定义用户定义的函数CL没有太过参与C代码(也许只能通过CFFI)。 – francogrex 2010-07-20 20:42:27