Fix DB2 foreign-key introspection
Dagfinn Ilmari Mannsåker [Tue, 27 Jan 2015 13:24:56 +0000 (13:24 +0000)]
The join to the referenced key columns was only using the constraint
name, which is not necessarily unique.  Also use the referenced table
schema and name.

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

diff --git a/Changes b/Changes
index 7893b35..fe6a442 100644 (file)
--- a/Changes
+++ b/Changes
@@ -2,6 +2,7 @@ Revision history for Perl extension DBIx::Class::Schema::Loader
 
         - Fix many_to_many bridges with overlapping foreign keys
         - Document how to add perltidy markers via filter_generated_code
+        - Fix DB2 foreign-key introspection
 
 0.07042  2014-08-20
         - Fix unescaped left braces in regexes in tests
index 5c1296a..45dabd3 100644 (file)
@@ -104,6 +104,8 @@ JOIN syscat.references sr
         AND tc.tabname = sr.tabname
 JOIN syscat.keycoluse rkcu
     ON sr.refkeyname = rkcu.constname
+        AND sr.reftabschema = rkcu.tabschema
+        AND sr.reftabname = rkcu.tabname
         AND kcu.colseq = rkcu.colseq
 WHERE tc.tabschema = ?
     AND tc.tabname = ?