1 package DBIx::DataSource::Pg;
4 use vars qw($VERSION @ISA);
5 use DBIx::DataSource::Driver;
6 @ISA = qw( DBIx::DataSource::Driver );
12 DBIx::DataSource::Pg - PostgreSQL driver for DBIx::DataSource
18 use DBIx::DataSource qw( create_database drop_database );
20 create_database( "dbi:Pg:dbname=$dbname", $username, $password )
21 or warn $DBIx::DataSource::errstr;
23 create_database( "dbi:Pg:dbname=$dbname;host=$host;port=$port",
24 $username, $password )
25 or warn $DBIx::DataSource::errstr;
27 drop_database( "dbi:Pg:dbname=$dbname", $username, $password )
28 or warn $DBIx::DataSource::errstr;
30 drop_database( "dbi:Pg:dbname=$dbname;host=$host;port=$port",
31 $username, $password )
32 or warn $DBIx::DataSource::errstr;
36 This is the PostgresSQL driver for DBIx::DataSource.
41 my( $class, $action, $dsn ) = @_;
42 $dsn =~ s/^(dbi:(\w*?)(?:\((.*?)\))?:)//i #nicked from DBI->connect
43 or '' =~ /()/; # ensure $1 etc are empty if match fails
44 my $prefix = $1 or die "can't parse data source: $dsn";
47 if ( $dsn =~ s/(^|[;:])dbname=([^=:;]+)([;:]|$)/$1dbname=template1$3/ ) {
49 die "Pg database names must be lowercase\n" if $database ne lc($database);
51 die "can't parse data source: $prefix$dsn";
54 ( "$prefix$dsn", "\U$action\E DATABASE $database" );
59 Ivan Kohler <ivan-dbix-datasource@420.am>
63 Copyright (c) 2000 Ivan Kohler
64 Copyright (c) 2000 Mail Abuse Prevention System LLC
66 This program is free software; you can redistribute it and/or modify it under
67 the same terms as Perl itself.
73 L<DBIx::DataSource::Driver>, L<DBIx::DataSource>, L<DBD::Pg>, L<DBI>