diff options
Diffstat (limited to 'lib/sqlalchemy/sql/expression.py')
-rw-r--r-- | lib/sqlalchemy/sql/expression.py | 14 |
1 files changed, 14 insertions, 0 deletions
diff --git a/lib/sqlalchemy/sql/expression.py b/lib/sqlalchemy/sql/expression.py index 9f2a16195..bff086e4b 100644 --- a/lib/sqlalchemy/sql/expression.py +++ b/lib/sqlalchemy/sql/expression.py @@ -2087,6 +2087,13 @@ class ColumnElement(ClauseElement, _CompareMixin): return bool(self.proxy_set.intersection(othercolumn.proxy_set)) + def _compare_name_for_result(self, other): + """Return True if the given column element compares to this one + when targeting within a result row.""" + + return hasattr(other, 'name') and hasattr(self, 'name') and \ + other.name == self.name + def _make_proxy(self, selectable, name=None): """Create a new :class:`.ColumnElement` representing this :class:`.ColumnElement` as it appears in the select list of a @@ -3919,6 +3926,13 @@ class ColumnClause(_Immutable, ColumnElement): self.type = sqltypes.to_instance(type_) self.is_literal = is_literal + def _compare_name_for_result(self, other): + if self.table is not None and hasattr(other, 'proxy_set'): + return other.proxy_set.intersection(self.proxy_set) + else: + return super(ColumnClause, self).\ + _compare_name_for_result(other) + def _get_table(self): return self.__dict__['table'] def _set_table(self, table): |