Provided by: libdbix-connector-perl_0.53-1_all bug

Name

       DBIx::Connector::Driver - Database-specific connection interface

Description

       Some of the things that DBIx::Connector does are implemented differently by different
       drivers, or the official interface provided by the DBI may not be implemented for a
       particular driver. The driver-specific code therefore is encapsulated in this separate
       driver class.

       Most of the DBI drivers work uniformly, so in most cases the implementation provided here
       in DBIx::Connector::Driver will work just fine. It's only when something is different that
       a driver subclass needs to be added. In such a case, the subclass's name is the same as
       the DBI driver. For example the driver for DBD::Pg is DBIx::Connector::Driver::Pg and the
       driver for DBD::mysql is DBIx::Connector::Driver::mysql.

       If you're just a user of DBIx::Connector, you can ignore the driver classes.
       DBIx::Connector uses them internally to do its magic, so you needn't worry about them.

Interface

       In case you need to implement a driver, here's the interface you can modify.

   Constructor
       "new"

         my $driver = DBIx::Connector::Driver->new( $driver );

       Constructs and returns a driver object. Each driver class is implemented as a singleton,
       so the same driver object is always returned for the same driver.  The "driver" parameter
       should be a Perl DBI driver name, such as "Pg" for DBD::Pg or "SQLite" for DBD::SQLite. If
       a subclass has been defined for $driver, then the object will be of that class.  Otherwise
       it will be an instance of the driver base class.

   Instance Methods
       "ping"

         $driver->ping($dbh);

       Calls "$dbh->ping". Override if for some reason the DBI driver doesn't do it right.

       "begin_work"

         $driver->begin_work($dbh);

       Calls "$dbh->begin_work". Override if for some reason the DBI driver doesn't do it right.

       "commit"

         $driver->commit($dbh);

       Calls "$dbh->commit". Override if for some reason the DBI driver doesn't do it right.

       "rollback"

         $driver->rollback($dbh);

       Calls "$dbh->rollback". Override if for some reason the DBI driver doesn't do it right.

       "savepoint"

         $driver->savepoint($dbh, $name);

       A no-op. Override if your database does in fact support savepoints. The driver subclass
       should create a savepoint with the given $name. See the implementations in
       DBIx::Connector::Driver::Pg and DBIx::Connector::Driver::Oracle for examples.

       "release"

         $driver->release($dbh, $name);

       A no-op. Override if your database does in fact support savepoints. The driver subclass
       should release the savepoint with the given $name. See the implementations in
       DBIx::Connector::Driver::Pg and DBIx::Connector::Driver::Oracle for examples.

       "rollback_to"

         $driver->rollback_to($dbh, $name);

       A no-op. Override if your database does in fact support savepoints. The driver subclass
       should rollback to the savepoint with the given $name. See the implementations in
       DBIx::Connector::Driver::Pg and DBIx::Connector::Driver::Oracle for examples.

Authors

       This module was written and is maintained by:

       David E. Wheeler <david@kineticode.com>

       It is based on code written by:

       Matt S. Trout <mst@shadowcatsystems.co.uk>
       Peter Rabbitson <rabbit+dbic@rabbit.us>

Copyright and License

       Copyright (c) 2009-2010 David E. Wheeler. Some Rights Reserved.

       This module is free software; you can redistribute it and/or modify it under the same
       terms as Perl itself.