Fix limiting table list to the specified schema for DB2
Dagfinn Ilmari Mannsåker [Thu, 13 Mar 2008 20:22:34 +0000 (20:22 +0000)]
Changes
lib/DBIx/Class/Schema/Loader/DBI/DB2.pm

diff --git a/Changes b/Changes
index e2bca21..b8eae02 100644 (file)
--- a/Changes
+++ b/Changes
@@ -1,5 +1,8 @@
 Revision history for Perl extension DBIx::Class::Schema::Loader
 
+Not yet released
+        - Fix limiting table list to the specified schema for DB2
+
 0.04999_04 Wed Mar 12, 2008
         - Add is_auto_increment detecton for DB2
 
index 75b59b6..01fbd1c 100644 (file)
@@ -59,9 +59,18 @@ sub _table_uniq_info {
     return \@uniqs;
 }
 
-sub _tables_list {
+# DBD::DB2 doesn't follow the DBI API for ->tables
+sub _tables_list { 
     my $self = shift;
-    return map lc, $self->next::method;
+    
+    my $dbh = $self->schema->storage->dbh;
+    my @tables = map { lc } $dbh->tables(
+        $self->db_schema ? { TABLE_SCHEM => $self->db_schema } : undef
+    );
+    s/\Q$self->{_quoter}\E//g for @tables;
+    s/^.*\Q$self->{_namesep}\E// for @tables;
+
+    return @tables;
 }
 
 sub _table_pk_info {