Category Archives: database
It seems the ApacheLounge folks are powering ahead in developing DBD-enabled versions of standard modules. Specifically, Tom Donovan has written modules for DBD logging and vhost-configuration. The latter could be particularly useful, as database-powered configuration is a semi-FAQ in the support fora.
So the portfolio of DBD applications is gradually growing. We now have authentication/authorization, configuration, logging, mod_rewrite (RewriteMap), embedded queries (mod_sql/mod_sqil) and general-purpose forms processing with mod_form.
I’m not trying to follow adoption amongst the scripting languages.
Nice bit of serendipity here. I’ve been Cc:d on an email discussion in which I have a slight interest, where Tom Donovan just posted a link to http://code.google.com/p/odbc-dbd/. He’s written an APR DBD driver for ODBC, as a third-party project at google code. And it’s under the Apache License, so unlike the MySQL driver before it was relicensed, there are no legal issues in bundling it with APR, the webserver, or any other relevant project.
I haven’t tried it myself, nor am I likely to in the forseeable future. But assuming it works, it’d be good to see it available in the distros.
Today I committed two new DBD drivers to APR: the MySQL driver apr_dbd_mysql, and the FreeTDS driver apr_dbd_freetds. Note that these are in /trunk/, and will not feature in an APR release for a while.
The MySQL driver was formerly available from WebThing, but not committed to apache because of licensing issues. But the subject was discussed again in August, and we finally decided there isn’t a licensing issue that prevents us including it, so all that remained was for me to get a round tuit. That should make life easier for packagers, such as the debian folks.
The FreeTDS driver is new, and brings support for Microsoft SQL Server and Sybase to APR and Apache. Not everything is fully functional, but it’ll suffice for typical web applications.
The FreeTDS driver also adds a new feature to DBD: Perl-like strong taint checking of user inputs to prepared statements. I’d like to think about moving that to the apr_dbd.c level, so it’s available to all drivers.