Amon2-DBI

 view release on metacpan or  search on metacpan

Changes  view on Meta::CPAN

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 )