diff options
Diffstat (limited to 'lib/sqlalchemy/orm/attributes.py')
-rw-r--r-- | lib/sqlalchemy/orm/attributes.py | 20 |
1 files changed, 10 insertions, 10 deletions
diff --git a/lib/sqlalchemy/orm/attributes.py b/lib/sqlalchemy/orm/attributes.py index 9d404e00d..117dd4cea 100644 --- a/lib/sqlalchemy/orm/attributes.py +++ b/lib/sqlalchemy/orm/attributes.py @@ -168,18 +168,18 @@ class QueryableAttribute( """ return inspection.inspect(self._parententity) - @property + @util.memoized_property def expression(self): - return self.comparator.__clause_element__() - - def __clause_element__(self): - return self.comparator.__clause_element__() + return self.comparator.__clause_element__()._annotate( + {"orm_key": self.key} + ) - def _query_clause_element(self): - """like __clause_element__(), but called specifically - by :class:`.Query` to allow special behavior.""" + @property + def _annotations(self): + return self.__clause_element__()._annotations - return self.comparator._query_clause_element() + def __clause_element__(self): + return self.expression def _bulk_update_tuples(self, value): """Return setter tuples for a bulk UPDATE.""" @@ -207,7 +207,7 @@ class QueryableAttribute( ) def label(self, name): - return self._query_clause_element().label(name) + return self.__clause_element__().label(name) def operate(self, op, *other, **kwargs): return op(self.comparator, *other, **kwargs) |