release 0.07010
[dbsrgits/DBIx-Class-Schema-Loader.git] / lib / DBIx / Class / Schema / Loader / DBI / Sybase.pm
index 865cb92..ba6f7be 100644 (file)
@@ -4,9 +4,9 @@ use strict;
 use warnings;
 use base 'DBIx::Class::Schema::Loader::DBI::Sybase::Common';
 use Carp::Clan qw/^DBIx::Class/;
-use Class::C3;
+use mro 'c3';
 
-our $VERSION = '0.05003';
+our $VERSION = '0.07010';
 
 =head1 NAME
 
@@ -19,7 +19,15 @@ See L<DBIx::Class::Schema::Loader> and L<DBIx::Class::Schema::Loader::Base>.
 
 =cut
 
-sub _is_case_sensitive { 1 }
+sub _setup {
+    my $self = shift;
+
+    $self->next::method(@_);
+
+    if (not defined $self->preserve_case) {
+        $self->preserve_case(1);
+    }
+}
 
 sub _rebless {
     my $self = shift;
@@ -36,6 +44,19 @@ sub _rebless {
     }
 }
 
+sub _tables_list {
+    my ($self, $opts) = @_;
+
+    my $dbh = $self->schema->storage->dbh;
+
+    my $sth = $dbh->table_info(undef, $self->db_schema, undef, "'TABLE','VIEW'");
+
+    my @tables = grep $_ ne 'sysquerymetrics',
+              map $_->{table_name}, @{ $sth->fetchall_arrayref({ table_name => 1 }) };
+
+    return $self->_filter_tables(\@tables, $opts);
+}
+
 sub _table_columns {
     my ($self, $table) = @_;
 
@@ -179,9 +200,11 @@ sub _table_fk_info_builder {
 }
 
 sub _table_uniq_info {
+    no warnings 'uninitialized'; # for presumably XS weirdness with null operations
     my ($self, $table) = @_;
 
-    local $SIG{__WARN__} = sub {};
+    local $SIG{__WARN__} = sub { warn @_
+        unless $_[0] =~ /^Formula for Calculation:|^(?:--?|\+|=) Number of (?:self )?references|^Total Number of Referential Constraints|^Details:|^\s*$/ };
 
     my $dbh = $self->schema->storage->dbh;
     local $dbh->{FetchHashKeyName} = 'NAME_lc';
@@ -326,3 +349,4 @@ the same terms as Perl itself.
 =cut
 
 1;
+# vim:et sts=4 sw=4 tw=0: