summaryrefslogtreecommitdiff
path: root/lib/sqlalchemy/schema.py
diff options
context:
space:
mode:
Diffstat (limited to 'lib/sqlalchemy/schema.py')
-rw-r--r--lib/sqlalchemy/schema.py5
1 files changed, 4 insertions, 1 deletions
diff --git a/lib/sqlalchemy/schema.py b/lib/sqlalchemy/schema.py
index 12b3c7707..857fc3cf7 100644
--- a/lib/sqlalchemy/schema.py
+++ b/lib/sqlalchemy/schema.py
@@ -248,10 +248,12 @@ class Column(SchemaItem):
self.default = kwargs.pop('default', None)
self.foreign_key = None
self._orig = None
+ self._parent = None
if len(kwargs):
raise ArgumentError("Unknown arguments passed to Column: " + repr(kwargs.keys()))
original = property(lambda s: s._orig or s)
+ parent = property(lambda s:s._parent or s)
engine = property(lambda s: s.table.engine)
def __repr__(self):
@@ -307,6 +309,7 @@ class Column(SchemaItem):
c = Column(name or self.name, self.type, fk, self.default, key = name or self.key, primary_key = self.primary_key, nullable = self.nullable, hidden = self.hidden)
c.table = selectable
c._orig = self.original
+ c._parent = self
if not c.hidden:
selectable.columns[c.key] = c
if self.primary_key:
@@ -369,7 +372,7 @@ class ForeignKey(SchemaItem):
def references(self, table):
"""returns True if the given table is referenced by this ForeignKey."""
- return table._get_col_by_original(self.column) is not None
+ return table._get_col_by_original(self.column, False) is not None
def _init_column(self):
# ForeignKey inits its remote column as late as possible, so tables can