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
my $self = shift;
my $quote_char = $self->dbh->get_info(29)
- || $self->schema->storage->sql_maker->quote_char
- || q{"};
+ || $self->schema->storage->sql_maker->quote_char
+ || q{"};
# For our usage as regex matches, concatenating multiple quote_char
# values works fine (e.g. s/[\Q<>\E]// if quote_char was [ '<', '>' ])
sub _build_name_sep {
my $self = shift;
return $self->dbh->get_info(41)
- || $self->schema->storage->sql_maker->name_sep
- || '.';
+ || $self->schema->storage->sql_maker->name_sep
+ || '.';
}
# Override this in vendor modules to do things at the end of ->new()
}
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
if (ref $system_schema) {
$matches = 1
if $schema_name =~ $system_schema
- && $schema !~ $system_schema;
+ && $schema !~ $system_schema;
}
else {
$matches = 1
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