As the second day of MySQL Camp II comes to an end, all my hacking on a new MySQL pluggable storage engine using C-Store meets a dead-end.
Chad Miller and I worked together to try and make this happen, but the C-Store C++ is just not written to be usable as a library within a larger application codebase. The C-Store 0.2 reference implementation’s C++ doesn’t come with even command-line programs to execute queries. It comes with a pretty comprehensive collection of automated unit tests, which is fantastic, but that’s the only executable it currently builds.
The bigger concern is whether the code is thread-safe, and the fact that the C-Store code requires C++ exceptions, I’m doubtful. If it isn’t thread-safe, it’ll make the C-Store reference implementation a non-starter for any serious work, which is unfortunate.
If I get more ambitious, maybe I’ll take a stab at a fresh implementation in fully thread-safe C, as a library to be embedded in other applications. I’m just sad right now because I was hoping to have this working to show off to the other campers, today.
Perhaps I’ll work on using Tcl as a User-Defined Function (UDF) inside MySQL–which I’m betting nobody would ever take seriously–just for laughs. I imagine making something like this possible:
CREATE FUNCTION TCL RETURNS STRING SONAME 'libtcl-mysql-udf.so';
SELECT TCL('expr {2 + 2}');
Whether there are actually interesting non-trivial uses of this remains to be seen, but at least it’ll allow folks to start playing with it, once it’s ready.
Speak Your Mind