Haven't looked it over thouroghly yet, but the database code raised my eyebrow a bit. I wonder why you chose to build full sql statements with inline params and their associated quoting problems, rather than use DBI's parameters, which take are of those problems rather nicely?
Part of the point of DBI is to stay independent of the underlying database. It would certainly be a plus if your server would run with, say PostgreSQL, or DB2, as well.
In the 'make it pretty' department, I've taking to using q// to make the sql more readable, i.e.
$statement_handle = $database_handle->prepare (q/
select col1, col2, col
where col6 = ?
The SQL routines were lifted from Bugzilla and used out of laziness. Thanks. I will give your DBI suggestion a try.
I figured if DCVS can work with the simple MySQL database, porting to the others would be pretty easy. My biggest MySQL lesson was that version 3.23 doesn't support mutli-table updates (i.e. a "where" clauses that mentions a
second table). Eventually, I crafted a work around which used a temporary table.