summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authormike bayer <mike_mp@zzzcomputing.com>2017-08-30 12:30:44 -0400
committerGerrit Code Review <gerrit@awstats.zzzcomputing.com>2017-08-30 12:30:44 -0400
commit22396493b26f18780eb51fce874dd2435a83a0e5 (patch)
tree89fed6452c9f40868609f46bc5296b7accff220a
parent28e6c79cf3665fce42b12ccdfa138bf5ca967cb5 (diff)
parent43447c4254f0d1a9778911bc2d6b794760d83fa7 (diff)
downloadsqlalchemy-22396493b26f18780eb51fce874dd2435a83a0e5.tar.gz
Merge "Join key_constraints on schema as well for SQL server get_fks"
-rw-r--r--doc/build/changelog/unreleased_12/4060.rst9
-rw-r--r--lib/sqlalchemy/dialects/mssql/base.py1
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 d526c685c..a4b9fe0cc 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,