Amon2-DBI
view release on metacpan or search on metacpan
0.06 2011-10-01
- [BUG FIX] fixed error handler on mysql
0.05 2011-05-14
- specify the version number of depended moduels
0.04 2011-04-05
- call $dbh->SUPER::connected(). (kazeburo)
0.03 2011-02-28
- do not use '//' on 5.8 modules! orz.
0.02 2011-02-26
- make DBD::SQLite as optional deps
0.01 2011-02-26
lib/Amon2/DBI.pm view on Meta::CPAN
}
elsif ($dsn =~ /^dbi:mysql:/i) {
$attr->{mysql_enable_utf8} = 1 unless exists $attr->{mysql_enable_utf8};
}
elsif ($dsn =~ /^dbi:Pg:/i) {
my $dbd_pg_version = eval { require DBD::Pg; (DBD::Pg->VERSION =~ /^([.0-9]+)\./)[0] };
if ( !$@ and $dbd_pg_version < 2.99 ) { # less than DBD::Pg 2.99, pg_enable_utf8 must be set for utf8.
$attr->{pg_enable_utf8} = 1 unless exists $attr->{pg_enable_utf8};
}
}
my $self = $class->SUPER::connect($dsn, $user, $pass, $attr) or die "Cannot connect to server: $DBI::errstr";
return $self;
}
package Amon2::DBI::dr;
our @ISA = qw(DBI::dr);
package Amon2::DBI::db; # database handler
our @ISA = qw(DBI::db);
use DBIx::TransactionManager;
use SQL::Interp ();
use Carp ();
use Scalar::Util ();
sub connected {
my $dbh = shift;
$dbh->{private_connect_info} = [@_];
$dbh->SUPER::connected(@_);
}
sub connect_info { $_[0]->{private_connect_info} }
sub _txn_manager {
my $self = shift;
if (not defined $self->{private_txn_manager}) {
$self->{private_txn_manager} = DBIx::TransactionManager->new($self);
Scalar::Util::weaken($self->{private_txn_manager}->{dbh});
}
( run in 1.230 second using v1.01-cache-2.11-cpan-49f99fa48dc )