summaryrefslogtreecommitdiff
path: root/lib/sqlalchemy/schema.py
diff options
context:
space:
mode:
authorMike Bayer <mike_mp@zzzcomputing.com>2010-11-20 15:35:43 -0500
committerMike Bayer <mike_mp@zzzcomputing.com>2010-11-20 15:35:43 -0500
commite3ca3a773ff8c36126fe584b69e380c67791e2bf (patch)
tree3185519e58037d0da14846f8f3568fdbf8128628 /lib/sqlalchemy/schema.py
parente187cc538d6fa9fe7fff8aa939dd787c07345f33 (diff)
parent00a46457c1154975e17109c9e292e5d5bd6b6468 (diff)
downloadsqlalchemy-e3ca3a773ff8c36126fe584b69e380c67791e2bf.tar.gz
- merge FromObj cleanup, immutable .c attribute patch, [ticket:1917]
Diffstat (limited to 'lib/sqlalchemy/schema.py')
-rw-r--r--lib/sqlalchemy/schema.py19
1 files changed, 9 insertions, 10 deletions
diff --git a/lib/sqlalchemy/schema.py b/lib/sqlalchemy/schema.py
index 50df8b9b6..ff953cef7 100644
--- a/lib/sqlalchemy/schema.py
+++ b/lib/sqlalchemy/schema.py
@@ -229,7 +229,7 @@ class Table(SchemaItem, expression.TableClause):
self.constraints = set()
self._columns = expression.ColumnCollection()
self._set_primary_key(PrimaryKeyConstraint())
- self._foreign_keys = util.OrderedSet()
+ self.foreign_keys = util.OrderedSet()
self._extra_dependencies = set()
self.kwargs = {}
if self.schema is not None:
@@ -284,7 +284,7 @@ class Table(SchemaItem, expression.TableClause):
if include_columns:
for c in self.c:
if c.name not in include_columns:
- self.c.remove(c)
+ self._columns.remove(c)
for key in ('quote', 'quote_schema'):
if key in kwargs:
@@ -308,10 +308,13 @@ class Table(SchemaItem, expression.TableClause):
"Invalid argument(s) for Table: %r" % kwargs.keys())
self.kwargs.update(kwargs)
+ def _init_collections(self):
+ pass
+
def _set_primary_key(self, pk):
- if getattr(self, '_primary_key', None) in self.constraints:
- self.constraints.remove(self._primary_key)
- self._primary_key = pk
+ if self.primary_key in self.constraints:
+ self.constraints.remove(self.primary_key)
+ self.primary_key = pk
self.constraints.add(pk)
for c in pk.columns:
@@ -331,10 +334,6 @@ class Table(SchemaItem, expression.TableClause):
def key(self):
return _get_table_key(self.name, self.schema)
- @property
- def primary_key(self):
- return self._primary_key
-
def __repr__(self):
return "Table(%s)" % ', '.join(
[repr(self.name)] + [repr(self.metadata)] +
@@ -919,7 +918,7 @@ class Column(SchemaItem, expression.ColumnClause):
nullable = self.nullable,
quote=self.quote, _proxies=[self], *fk)
c.table = selectable
- selectable.columns.add(c)
+ selectable._columns.add(c)
if self.primary_key:
selectable.primary_key.add(c)
for fn in c._table_events: