DBIx::HA is a High Availability module for DBI. It is implemented by
overloading the DBI connect, prepare and execute methods and can be
seamlessly used without code modification except for initialization.
DBIx::HA also works seamlessly with Apache::DBI when available, and
ensures that cached database handles in the Apache::DBI module are
properly updated when failing over.
DBIx::QueryLog is logs each execution time and the actual query.
Currently, works on DBD::mysql and DBD::sqlite.
DBIx::Recordset is a perl module for abstraction and simplification of
database access.
The goal is to make standard database access
(select/insert/update/delete) easier to handle and independend of the
underlying DBMS. Special attention is made on web applications to make
it possible to handle the state-less access and to process the posted
data of formfields, but DBIx::Recordset is not limited to web
applications.
The DBIx::SQLEngine class provides an extended interface for the DBI
database framework. Each SQLEngine object is a wrapper around a DBI
database handle, adding methods that support ad-hoc SQL generation and
query execution in a single call. Dynamic subclassing based on database
server type enables cross-platform portability.
The purpose of DBIx::Safe is to give controlled, limited access to an
application, rather than simply passing it a raw database handle through DBI.
DBIx::Safe acts as a wrapper to the database, by only allowing through the
commands you tell it to. It filters all things related to the database handle -
methods and attributes.
The typical usage is for your application to create a database handle via a
normal DBI call to new(), then pass that to DBIx::Safe->new(), which will return
you a DBIx::Safe object. After specifying exactly what is and what is not
allowed, you can pass the object to the untrusted application. The object will
act very similar to a DBI database handle, and in most cases can be used
interchangeably.
By default, nothing is allowed to run at all. There are many things you can
control. You can specify which SQL commands are allowed, by indicating the first
word in the SQL statement (e.g. 'SELECT'). You can specify which database
methods are allowed to run (e.g. 'ping'). You can specify a regular expression
that allows matching SQL statements to run (e.g. 'qr{SET TIMEZONE}'). You can
specify a regular expression that is NOT allowed to run (e.g. qr(UPDATE xxx}).
Finally, you can indicate which database attributes are allowed to be read and
changed (e.g. 'PrintError'). For all of the above, there are matching methods to
remove them as well.
Perl extension for easy SQL SELECT Statement generation.
DBIx::Sequence - A simple SQL92 ID generator
his module is intended to give easier portability to Perl database
application by providing a database independant unique ID generator.
This way, an application developer is not bound to use his database's
SEQUENCE or auto_increment thus making his application portable on
multiple database environnements.
This module implements a simple Spin Locker mechanism and is garanteed
to return a unique value every time it is called, even with concurrent
processes. It uses your database for its state storage with ANSI SQL92
compliant SQL. All SQL queries inside DBIx::Sequence are pre cached and
very efficient especially under mod_perl.
DBIx::Simple module aims to be a simplified object oriented interface to Perl
DBI. From its description ...
Query preparation and execution are combined in a single method, the result
object (which is a wrapper around the statement handle) provides easy
row-by-row and slurping methods.
The "query" method returns either a result object, or a dummy object. The
dummy object returns undef (or an empty list) for all methods and when used in
boolean context, is false. The dummy object lets you postpone (or skip) error
checking, but it also makes immediate error check simply " $db->query(...) or
die $db->error".
DBIx::Skinny::InflateColumn::DateTime provides inflate/deflate
settings for *_at/*_on columns.
If you want to set created_XX and updated_XX automatically, you can
use DBIx::Class::InflateColumn::DateTime::Auto.
DBIx::DBHResolver mixin for DBIx::Skinny.