diff options
author | Mike Bayer <mike_mp@zzzcomputing.com> | 2017-08-30 12:25:57 -0400 |
---|---|---|
committer | Mike Bayer <mike_mp@zzzcomputing.com> | 2017-08-30 12:25:57 -0400 |
commit | 43447c4254f0d1a9778911bc2d6b794760d83fa7 (patch) | |
tree | e8014920d07df22c2c038ca7a7976563ff6c010b | |
parent | 812c08efb41ff0a8bdafb876fe49079da5074916 (diff) | |
download | sqlalchemy-43447c4254f0d1a9778911bc2d6b794760d83fa7.tar.gz |
Join key_constraints on schema as well for SQL server get_fks
Fixed bug where the SQL Server dialect could pull columns from multiple
schemas when reflecting a self-referential foreign key constraint, if
multiple schemas contained a constraint of the same name against a
table of the same name.
Tests are part of standard suite already (CI has been disabled)
Change-Id: I04ff4a5dea9b82c8e517b3700a28fe994b5550f3
Fixes: #4060
-rw-r--r-- | doc/build/changelog/unreleased_12/4060.rst | 9 | ||||
-rw-r--r-- | lib/sqlalchemy/dialects/mssql/base.py | 1 |
2 files changed, 10 insertions, 0 deletions
diff --git a/doc/build/changelog/unreleased_12/4060.rst b/doc/build/changelog/unreleased_12/4060.rst new file mode 100644 index 000000000..f83443005 --- /dev/null +++ b/doc/build/changelog/unreleased_12/4060.rst @@ -0,0 +1,9 @@ +.. change:: + :tags: bug, mssql + :tickets: 4060 + + Fixed bug where the SQL Server dialect could pull columns from multiple + schemas when reflecting a self-referential foreign key constraint, if + multiple schemas contained a constraint of the same name against a + table of the same name. + diff --git a/lib/sqlalchemy/dialects/mssql/base.py b/lib/sqlalchemy/dialects/mssql/base.py index 05381d671..08405e040 100644 --- a/lib/sqlalchemy/dialects/mssql/base.py +++ b/lib/sqlalchemy/dialects/mssql/base.py @@ -2151,6 +2151,7 @@ class MSDialect(default.DefaultDialect): RR.c.delete_rule], sql.and_(C.c.table_name == tablename, C.c.table_schema == owner, + R.c.table_schema == C.c.table_schema, C.c.constraint_name == RR.c.constraint_name, R.c.constraint_name == RR.c.unique_constraint_name, |