Support for DBD::DB2 1.85 as well as < 1.85
Matt Phillips [Tue, 3 Sep 2013 16:21:45 +0000 (12:21 -0400)]
IBM attempted to become compatible with the DBI spec with their latest release,
but seem to have failed. This tweak fixes support for all versions of the DBD.

Changes
lib/DBIx/Class/Schema/Loader/DBI/DB2.pm

diff --git a/Changes b/Changes
index cc2dc0d..8c05f85 100644 (file)
--- a/Changes
+++ b/Changes
@@ -1,5 +1,7 @@
 Revision history for Perl extension DBIx::Class::Schema::Loader
 
+        - Fix table listing with DBD::DB2 >= 1.85 (RT#91764)
+
 0.07038  2013-11-20
         - Allow coderef maps to call back into the hashref mapping code
         - Fix MySQL column info detection with multiple schemas (RT#82358)
index 328a348..6d2c9ad 100644 (file)
@@ -152,11 +152,14 @@ EOF
 }
 
 
-# DBD::DB2 doesn't follow the DBI API for ->tables
+# DBD::DB2 doesn't follow the DBI API for ->tables (pre 1.85), but since its
+# backwards compatible we don't change it.
+# DBD::DB2 1.85 and beyond default TABLE_NAME to '', previously defaulted to
+# '%'. so we supply it.
 sub _dbh_tables {
     my ($self, $schema) = @_;
 
-    return $self->dbh->tables($schema ? { TABLE_SCHEM => $schema } : undef);
+    return $self->dbh->tables($schema ? { TABLE_SCHEM => $schema, TABLE_NAME => '%' } : undef);
 }
 
 sub _columns_info_for {