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
(cherry picked from commit
688b4ca6a7f2e32c580d616c6dea1e68b7398fd2)
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))
@property
def expression(self):
+ """The SQL expression object represented by this
+ :class:`.QueryableAttribute`.
+
+ This will typically be an instance of a :class:`.ColumnElement`
+ subclass representing a column expression.
+
+ """
return self.comparator.__clause_element__()
def __clause_element__(self):