DBIx-Connector
view release on metacpan - search on metacpan
view release on metacpan or search on metacpan
lib/DBIx/Connector/Driver.pm view on Meta::CPAN
use strict; use warnings;
package DBIx::Connector::Driver;
our $VERSION = '0.59';
DRIVERS: {
my %DRIVERS;
sub new {
my ($class, $driver) = @_;
return $DRIVERS{$driver} ||= do {
my $subclass = __PACKAGE__ . "::$driver";
eval "require $subclass";
$class = $subclass unless $@;
bless { driver => $driver } => $class;
};
}
}
sub _connect {
my ($self, $dbh, $dsn, $username, $password, $attrs) = @_;
$dbh;
}
sub ping {
my ($self, $dbh) = @_;
$dbh->ping;
}
sub begin_work {
my ($self, $dbh) = @_;
$dbh->begin_work;
}
sub commit {
my ($self, $dbh) = @_;
$dbh->commit;
}
sub rollback {
my ($self, $dbh) = @_;
$dbh->rollback;
}
sub _rollback {
my ($self, $dbh, $err) = @_;
local $@;
eval { $dbh->rollback };
return $@ ? DBIx::Connector::TxnRollbackError->new(
error => $err,
rollback_error => $@,
) : $err;
}
sub _rollback_and_release {
my ($self, $dbh, $name, $err) = @_;
local $@;
eval {
$self->rollback_to($dbh, $name);
$self->release($dbh, $name);
};
return $@ ? DBIx::Connector::SvpRollbackError->new(
error => $err,
rollback_error => $@,
) : $err;
}
sub savepoint {
my ($self, $dbh, $name) = @_;
}
sub release {
my ($self, $dbh, $name) = @_;
}
view all matches for this distributionview release on metacpan - search on metacpan
( run in 0.928 second using v1.00-cache-2.02-grep-82fe00e-cpan-1925d2aa809 )