diff options
author | Mike Bayer <mike_mp@zzzcomputing.com> | 2011-06-27 18:54:02 -0400 |
---|---|---|
committer | Mike Bayer <mike_mp@zzzcomputing.com> | 2011-06-27 18:54:02 -0400 |
commit | 63dbed1fd7421fd4f5cbf0bb2773f7faa8359651 (patch) | |
tree | d1a800dba12d888dac2fbb063193131f06d9e684 /lib/sqlalchemy/sql/expression.py | |
parent | 1006f1705169310477db073c2b66af1d20615c38 (diff) | |
download | sqlalchemy-63dbed1fd7421fd4f5cbf0bb2773f7faa8359651.tar.gz |
- Fixed a subtle bug involving column
correspondence in a selectable with the
same column repeated. Affects [ticket:2188].
Diffstat (limited to 'lib/sqlalchemy/sql/expression.py')
-rw-r--r-- | lib/sqlalchemy/sql/expression.py | 6 |
1 files changed, 5 insertions, 1 deletions
diff --git a/lib/sqlalchemy/sql/expression.py b/lib/sqlalchemy/sql/expression.py index f78015ac2..9dd7bd335 100644 --- a/lib/sqlalchemy/sql/expression.py +++ b/lib/sqlalchemy/sql/expression.py @@ -2144,6 +2144,10 @@ class ColumnCollection(util.OrderedProperties): 'use_labels for select() statements.' % (key, getattr(existing, 'table', None))) self._all_cols.remove(existing) + # pop out memoized proxy_set as this + # operation may very well be occurring + # in a _make_proxy operation + value.__dict__.pop('proxy_set', None) self._all_cols.add(value) self._data[key] = value @@ -2328,7 +2332,6 @@ class FromClause(Selectable): """ # dont dig around if the column is locally present - if self.c.contains_column(column): return column col, intersect = None, None @@ -3873,6 +3876,7 @@ class ColumnClause(_Immutable, ColumnElement): is_literal=is_literal ) c.proxies = [self] + if attach: selectable._columns[c.name] = c return c |