hybrids since 1.1 use InstrumentedAttribute at the expression
level, so this doc needed to illustrate how to get at the
SQL expression. Also added a docstring for
QueryableAttribute.expression.
Fixes: #5773
Change-Id: I4941d245ec947999abfa8e13f047e06a0bd47e5b
When dealing with the ``Interval`` class itself, the :class:`.hybrid_property`
descriptor evaluates the function body given the ``Interval`` class as
the argument, which when evaluated with SQLAlchemy expression mechanics
+(here using the :attr:`.QueryableAttribute.expression` accessor)
returns a new SQL expression::
- >>> print(Interval.length)
+ >>> print(Interval.length.expression)
interval."end" - interval.start
>>> print(Session().query(Interval).filter(Interval.length > 10))
@util.memoized_property
def expression(self):
+ """The SQL expression object represented by this
+ :class:`.QueryableAttribute`.
+
+ This will typically be an instance of a :class:`_sql.ColumnElement`
+ subclass representing a column expression.
+
+ """
+
return self.comparator.__clause_element__()._annotate(
{"orm_key": self.key, "entity_namespace": self._entity_namespace}
)