Bugfixes
- libdbi now supports using custom driver functions correctly
(none of the drivers had implemented this feature before
libdbi-drivers 0.9.0, so this was not really a problem).
- a variety of other bug fixes too numerous to list here, see
ChangeLog
Improvements
- libdbi now supports several independent "instances" per
process. This makes the library safe to use in programs that
dlopen() plugins at runtime which in turn are linked against
libdbi. The new function dbi_initialize_r() creates a handle
which the functions dbi_shutdown_r(), dbi_set_verbosity_r(),
dbi_driver_list_r(), dbi_driver_open_r(), and dbi_conn_new_r()
use to operate on a particular instance. A new function
dbi_driver_get_instance() helps to determine the instance at
runtime.
The old interface (with just one instance per process which is
managed internally) is still around but deprecated. See the file
UPGRADING for detailed instructions.
- libdbi now provides functions for managing transactions and
savepoints
- libdbi now provides a hint to drivers indicating the current
position in a result set. This allows drivers to implement
additional optimizations
- the libtool library versioning numbers were now set
appropriately (they had fallen out of maintenance somehow in
the past), and starting with this release the release number
will match the libtool numbering scheme. libtool manages shared
objects in a way to allow the loader to detect whether an
application was linked against a compatible version of
a library. This will avoid runtime errors in future releases
if backwards-incompatible changes are necessary.
- pgk-config (http://pkg-config.freedesktop.org/wiki/) is now
supported
- if CFLAGS is set in the environment, it is now used
appropriately in ./configure
(2 versions); packaged for wip by Aleksey Cheusov.
libdbi implements a database-independent abstraction layer in C, similar to
the DBI/DBD layer in Perl. Writing one generic set of code, programmers can
leverage the power of multiple databases and multiple simultaneous database
connections by using this framework.