use base qw/DBIx::Class::Schema::Loader::Base/;
use mro 'c3';
use Try::Tiny;
-use List::MoreUtils 'any';
+use List::Util 'any';
use Carp::Clan qw/^DBIx::Class/;
use namespace::clean;
use DBIx::Class::Schema::Loader::Table ();
-our $VERSION = '0.07039';
+our $VERSION = '0.07043';
__PACKAGE__->mk_group_accessors('simple', qw/
_disable_pk_detection
}
sub _dbh_tables {
- my ($self, $schema) = (shift, shift);
-
- my ($table_pattern, $table_type_pattern) = @_ ? @_ : ('%', '%');
+ my $self = shift;
- return $self->dbh->tables(undef, $schema, $table_pattern, $table_type_pattern);
+ return $self->dbh->tables(undef, @_);
}
# default to be overridden in subclasses if necessary
local $self->dbh->{PrintError} = 0;
$self->next::method(@_);
-
- $self->schema->storage->disconnect unless $self->dynamic;
}
sub _sth_for {
next if $row->{TYPE} eq 'table'
|| defined $row->{FILTER_CONDITION}
|| !$row->{INDEX_NAME}
- || !defined $row->{ORDINAL_POSITION}
- || !$row->{COLUMN_NAME};
+ || !defined $row->{ORDINAL_POSITION};
- $indices{$row->{INDEX_NAME}}[$row->{ORDINAL_POSITION}] = $self->_lc($row->{COLUMN_NAME});
+ $indices{$row->{INDEX_NAME}}[$row->{ORDINAL_POSITION}] = $self->_lc($row->{COLUMN_NAME} || '');
}
$sth->finish;
my @retval;
- foreach my $index_name (keys %indices) {
- my $index = $indices{$index_name};
- push(@retval, [ $index_name => [ @$index[1..$#$index] ] ]);
+ foreach my $index_name (sort keys %indices) {
+ my (undef, @cols) = @{$indices{$index_name}};
+ # skip indexes with missing column names (e.g. expression indexes)
+ next unless @cols == grep $_, @cols;
+ push(@retval, [ $index_name => \@cols ]);
}
return \@retval;
L<DBIx::Class::Schema::Loader>
-=head1 AUTHOR
+=head1 AUTHORS
-See L<DBIx::Class::Schema::Loader/AUTHOR> and L<DBIx::Class::Schema::Loader/CONTRIBUTORS>.
+See L<DBIx::Class::Schema::Loader/AUTHORS>.
=head1 LICENSE