summaryrefslogtreecommitdiff
path: root/lib/sqlalchemy/engine/reflection.py
diff options
context:
space:
mode:
authorMike Bayer <mike_mp@zzzcomputing.com>2013-08-28 17:31:40 -0400
committerMike Bayer <mike_mp@zzzcomputing.com>2013-08-28 17:31:40 -0400
commit97168dbf69f8aa21de2e764a4a4993215cb9b726 (patch)
treece6b6f81eb422514877a4b5165e9246c46be9f0c /lib/sqlalchemy/engine/reflection.py
parentfe66951f5de6a2b201dc3ecc2261f4f8b8888e9f (diff)
downloadsqlalchemy-97168dbf69f8aa21de2e764a4a4993215cb9b726.tar.gz
plus some more adjustments for mysql, or in general if an Index refers to
in-python only cols
Diffstat (limited to 'lib/sqlalchemy/engine/reflection.py')
-rw-r--r--lib/sqlalchemy/engine/reflection.py10
1 files changed, 9 insertions, 1 deletions
diff --git a/lib/sqlalchemy/engine/reflection.py b/lib/sqlalchemy/engine/reflection.py
index 28494dc7d..a9ccf5539 100644
--- a/lib/sqlalchemy/engine/reflection.py
+++ b/lib/sqlalchemy/engine/reflection.py
@@ -534,6 +534,8 @@ class Inspector(object):
fkeys = self.get_foreign_keys(table_name, schema, **tblkw)
for fkey_d in fkeys:
conname = fkey_d['name']
+ # look for columns by orig name in cols_by_orig_name,
+ # but support columns that are in-Python only as fallback
constrained_columns = [
cols_by_orig_name[c].key
if c in cols_by_orig_name else c
@@ -578,5 +580,11 @@ class Inspector(object):
"Omitting %s KEY for (%s), key covers omitted columns." %
(flavor, ', '.join(columns)))
continue
- sa_schema.Index(name, *[cols_by_orig_name[c] for c in columns],
+ # look for columns by orig name in cols_by_orig_name,
+ # but support columns that are in-Python only as fallback
+ sa_schema.Index(name, *[
+ cols_by_orig_name[c] if c in cols_by_orig_name
+ else table.c[c]
+ for c in columns
+ ],
**dict(unique=unique))