DBIx-Connector-Pool
view release on metacpan or search on metacpan
lib/DBIx/Connector/Pool.pm view on Meta::CPAN
our $VERSION = "0.02";
sub new {
my ($class, %args) = @_;
$args{initial} //= 1;
$args{tid_func} //= sub {1};
$args{wait_func} //= sub {croak "real waiting function must be supplied"};
$args{max_size} ||= -1;
$args{keep_alive} //= -1;
$args{user} //= ((getpwuid $>)[0]);
$args{password} //= '';
$args{attrs} //= {};
$args{dsn} //= 'dbi:Pg:dbname=' . $args{user};
$args{connector_mode} //= 'fixup';
if ($args{max_size} > 0 && $args{initial} != 0 && $args{initial} > $args{max_size}) {
$args{initial} = $args{max_size};
}
$args{pool} = [];
my $self = bless \%args, $class;
if ($args{connector_base}) {
my $COM = qq{$binDir/pg_ctl $option -l $testdir/dbdpg_test.logfile -D $testdir/data start};
$output = `$COM 2>&1`;
die "pg_ctl failed: $output" if $?;
sleep 2;
$testdsn = "dbi:Pg:dbname=postgres;client_encoding=utf8;port=$testport";
if ($^O =~ /Win32/) {
$testdsn .= ';host=localhost';
} else {
$testdsn .= ";host=$testdir/data/socket";
}
$testuser = ((getpwuid $>)[0]);
die "not connected $testdsn/$testuser: " . DBI::errstr()
unless DBI->connect($testdsn, $testuser, '', {RaiseError => 0, PrintError => 0, AutoCommit => 1});
1;
}
1;
( run in 0.257 second using v1.01-cache-2.11-cpan-8d75d55dd25 )