if self.secondaryjoin is not None:
context.eager_joins = sql.outerjoin(towrap, clauses.secondary, clauses.primaryjoin).outerjoin(clauses.alias, clauses.secondaryjoin)
if self.order_by is False and self.secondary.default_order_by() is not None:
- context.eager_order_by.append(*clauses.secondary.default_order_by())
+ context.eager_order_by += clauses.secondary.default_order_by()
else:
context.eager_joins = towrap.outerjoin(clauses.alias, clauses.primaryjoin)
if self.order_by is False and clauses.alias.default_order_by() is not None:
- context.eager_order_by.append(*clauses.alias.default_order_by())
+ context.eager_order_by += clauses.alias.default_order_by()
if clauses.order_by:
- context.eager_order_by.append(*util.to_list(clauses.order_by))
+ context.eager_order_by += util.to_list(clauses.order_by)
for value in self.select_mapper.iterate_properties:
context.exec_with_path(self.select_mapper, value.key, value.setup, context, parentclauses=clauses, parentmapper=self.select_mapper)
User(id=10, addresses=[])
] == q.all()
+ def test_orderby_multi(self):
+ mapper(User, users, properties = {
+ 'addresses':relation(mapper(Address, addresses), lazy=False, order_by=[addresses.c.email_address, addresses.c.id]),
+ })
+ q = create_session().query(User)
+ assert [
+ User(id=7, addresses=[
+ Address(id=1)
+ ]),
+ User(id=8, addresses=[
+ Address(id=3, email_address='ed@bettyboop.com'),
+ Address(id=4, email_address='ed@lala.com'),
+ Address(id=2, email_address='ed@wood.com')
+ ]),
+ User(id=9, addresses=[
+ Address(id=5)
+ ]),
+ User(id=10, addresses=[])
+ ] == q.all()
+
def test_orderby_secondary(self):
"""tests that a regular mapper select on a single table can order by a relation to a second table"""