my $database = shift || return;
print STDERR "## connect to $database\n" if $debug;
$dbh = DBI->connect($dsn . $database,$user,$passwd, { RaiseError => 1, AutoCommit => 0 }) || die $DBI::errstr;
- $dbh->do( qq{ set names '$db_encoding'; } ) if $db_encoding && $dsn =~ m{mysql};
+ if ( $db_encoding ) {
+ if ( $dsn =~ m{Pg} ) {
+ $dbh->do( qq{ set client_encoding = '$db_encoding'; } );
+ } elsif ( $dsn =~ m{mysql} ) {
+ $dbh->do( qq{ set names '$db_encoding'; } );
+ } else {
+ warn "Don't know how to set encoding to $db_encoding for $dsn";
+ }
+ }
}
use_database( $database );