1 package DBIx::Class::Loader::Pg;
4 use base 'DBIx::Class::Loader::Generic';
10 DBIx::Class::Loader::Pg - DBIx::Class::Loader Postgres Implementation.
14 use DBIx::Class::Loader;
16 # $loader is a DBIx::Class::Loader::Pg
17 my $loader = DBIx::Class::Loader->new(
18 dsn => "dbi:Pg:dbname=dbname",
23 my $class = $loader->find_class('film'); # $class => Data::Film
24 my $obj = $class->retrieve(1);
28 See L<DBIx::Class::Loader>.
33 return qw/DBIx::Class::PK::Auto::Pg/;
38 my $dbh = $self->{_storage}->dbh;
40 # This is split out to avoid version parsing errors...
41 my $is_dbd_pg_gte_131 = ( $DBD::Pg::VERSION >= 1.31 );
42 my @tables = $is_dbd_pg_gte_131 ?
43 $dbh->tables( undef, $self->{_db_schema}, "", "table", { noprefix => 1, pg_noprefix => 1 } )
51 my ( $self, $table ) = @_;
52 my $dbh = $self->{_storage}->dbh;
54 my $sth = $dbh->column_info(undef, $self->{_db_schema}, $table, undef);
55 my @cols = map { $_->[3] } @{ $sth->fetchall_arrayref };
58 my @primary = $dbh->primary_key(undef, $self->{_db_schema}, $table);
62 return ( \@cols, \@primary );
67 L<DBIx::Class::Loader>