summaryrefslogtreecommitdiff
path: root/lib/sqlalchemy
diff options
context:
space:
mode:
authorMike Bayer <mike_mp@zzzcomputing.com>2012-11-10 15:37:51 -0500
committerMike Bayer <mike_mp@zzzcomputing.com>2012-11-10 15:37:51 -0500
commit607af882c35d0e37dbc2548e8cfb5b9b30df3032 (patch)
tree6b542288ae218633e4369476e0f2a717eee4ee88 /lib/sqlalchemy
parentd30ab8495c9e16f7cf599da02ac8e333cc620b54 (diff)
downloadsqlalchemy-607af882c35d0e37dbc2548e8cfb5b9b30df3032.tar.gz
Support for reflection of the "name" of primary key
constraints added, courtesy Dave Moore. mssql [ticket:2600]
Diffstat (limited to 'lib/sqlalchemy')
-rw-r--r--lib/sqlalchemy/dialects/mssql/base.py7
1 files changed, 5 insertions, 2 deletions
diff --git a/lib/sqlalchemy/dialects/mssql/base.py b/lib/sqlalchemy/dialects/mssql/base.py
index 51884247f..f9b7b944c 100644
--- a/lib/sqlalchemy/dialects/mssql/base.py
+++ b/lib/sqlalchemy/dialects/mssql/base.py
@@ -1415,17 +1415,20 @@ class MSDialect(default.DefaultDialect):
C = ischema.key_constraints.alias('C')
# Primary key constraints
- s = sql.select([C.c.column_name, TC.c.constraint_type],
+ s = sql.select([C.c.column_name, TC.c.constraint_type, C.c.constraint_name],
sql.and_(TC.c.constraint_name == C.c.constraint_name,
TC.c.table_schema == C.c.table_schema,
C.c.table_name == tablename,
C.c.table_schema == owner)
)
c = connection.execute(s)
+ constraint_name = None
for row in c:
if 'PRIMARY' in row[TC.c.constraint_type.name]:
pkeys.append(row[0])
- return {'constrained_columns': pkeys, 'name': None}
+ if constraint_name is None:
+ constraint_name = row[C.c.constraint_name.name]
+ return {'constrained_columns': pkeys, 'name': constraint_name}
@reflection.cache
@_db_plus_owner