X-Git-Url: http://git.shadowcat.co.uk/gitweb/gitweb.cgi?a=blobdiff_plain;f=lib%2FDBIx%2FClass%2FSchema%2FLoader%2FDBI.pm;h=dce5f272a993a70b714f70a23a8f64320837c054;hb=refs%2Fheads%2Fregex_capture_issues;hp=0f53430c835314ad3a5b7f1ed0735454fbf79026;hpb=12b86f073e34672eacdf72ee462a74c6874e84a4;p=dbsrgits%2FDBIx-Class-Schema-Loader.git diff --git a/lib/DBIx/Class/Schema/Loader/DBI.pm b/lib/DBIx/Class/Schema/Loader/DBI.pm index 0f53430..dce5f27 100644 --- a/lib/DBIx/Class/Schema/Loader/DBI.pm +++ b/lib/DBIx/Class/Schema/Loader/DBI.pm @@ -101,7 +101,7 @@ sub _tables_list { my ($table, $type) = @_ ? @_ : ('%', '%'); my $dbh = $self->schema->storage->dbh; - my @tables = $dbh->tables(undef, $self->db_schema, $table, $type); + my @tables = $dbh->tables(undef, $table->schema, $table, $type); my $qt = qr/[\Q$self->{_quoter}\E"'`\[\]]/; @@ -169,10 +169,10 @@ sub _table_as_sql { my $sql_maker = $self->schema->storage->sql_maker; my $name_sep = $sql_maker->name_sep; - my $db_schema = $self->db_schema; + my $schema = $table->schema; - if($db_schema) { - return $self->_quote($self->{db_schema}) + if ($schema) { + return $self->_quote($schema) . $name_sep . $self->_quote($table); } @@ -212,7 +212,7 @@ sub _table_pk_info { my $dbh = $self->schema->storage->dbh; my @primary = try { - $dbh->primary_key('', $self->db_schema, $table); + $dbh->primary_key('', $table->schema, $table); } catch { warn "Cannot find primary keys for this driver: $_"; @@ -243,7 +243,7 @@ sub _table_uniq_info { } my %indices; - my $sth = $dbh->statistics_info(undef, $self->db_schema, $table, 1, 1); + my $sth = $dbh->statistics_info(undef, $table->schema, $table, 1, 1); while(my $row = $sth->fetchrow_hashref) { # skip table-level stats, conditional indexes, and any index missing # critical fields @@ -274,8 +274,8 @@ sub _table_fk_info { my $dbh = $self->schema->storage->dbh; my $sth = try { - $dbh->foreign_key_info( '', $self->db_schema, '', - '', $self->db_schema, $table ); + $dbh->foreign_key_info( '', $table->schema, '', + '', $table->schema, $table ); } catch { warn "Cannot introspect relationships for this driver: $_"; @@ -323,7 +323,7 @@ sub _columns_info_for { my %result; if ($dbh->can('column_info')) { - my $sth = $self->_dbh_column_info($dbh, undef, $self->db_schema, $table, '%' ); + my $sth = $self->_dbh_column_info($dbh, undef, $table->schema, $table, '%' ); while ( my $info = $sth->fetchrow_hashref() ){ my $column_info = {}; $column_info->{data_type} = lc $info->{TYPE_NAME}; @@ -381,7 +381,7 @@ sub _columns_info_for { $column_info->{size} = $2; } - my $extra_info = $self->_extra_column_info($table, $columns[$i], $column_info) || {}; + my $extra_info = $self->_extra_column_info($table, $columns[$i], $column_info, $sth) || {}; $column_info = { %$column_info, %$extra_info }; $result{ $self->_lc($columns[$i]) } = $column_info;