to query.options(), passed by name
to query.with_parent().
+ - Fixed bug whereby mapper.order_by attribute would
+ be ignored in the "inner" query within a
+ subquery eager load. [ticket:2287].
+ Also in 0.6.9.
+
- Identity map .discard() uses dict.pop(,None)
internally instead of "del" to avoid KeyError/warning
during a non-determinate gc teardown [ticket:2267]
# with polymorphic loading ?
q._set_entities(q._adapt_col_list(leftmost_attr))
+ if q._order_by is False:
+ q._order_by = leftmost_mapper.order_by
+
# don't need ORDER BY if no limit/offset
if q._limit is None and q._offset is None:
q._order_by = None
getattr(parent_alias, self.parent._columntoproperty[c].key)
for c in local_cols
]
+
q = q.order_by(*local_attr)
q = q.add_columns(*local_attr)
l = q.order_by(sa.desc(User.id)).limit(2).offset(2).all()
eq_(list(reversed(self.static.user_all_result[0:2])), l)
+ def test_mapper_order_by(self):
+ users, User, Address, addresses = (self.tables.users,
+ self.classes.User,
+ self.classes.Address,
+ self.tables.addresses)
+
+ mapper(Address, addresses)
+ mapper(User, users, properties={
+ 'addresses':relationship(Address,
+ lazy='subquery',
+ order_by=addresses.c.id),
+ },order_by=users.c.id.desc())
+
+ sess = create_session()
+ q = sess.query(User)
+
+ l = q.limit(2).all()
+ eq_(l, list(reversed(self.static.user_address_result[2:4])))
+
+
def test_one_to_many_scalar(self):
Address, addresses, users, User = (self.classes.Address,
self.tables.addresses,