From 63dbed1fd7421fd4f5cbf0bb2773f7faa8359651 Mon Sep 17 00:00:00 2001 From: Mike Bayer Date: Mon, 27 Jun 2011 18:54:02 -0400 Subject: - Fixed a subtle bug involving column correspondence in a selectable with the same column repeated. Affects [ticket:2188]. --- lib/sqlalchemy/sql/expression.py | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) (limited to 'lib/sqlalchemy/sql') 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 -- cgit v1.2.1