had only been implemented for foreign-key nulling behavior
in 0.4.2 and not actual cascading deletes [ticket:895]
+ - fixed order_by calculation in Query to properly alias
+ mapper-config'ed order_by when using select_from()
+
- sql
- 'name' is no longer a required constructor argument for
Column(). It (and .key) may now be deferred until the column
if order_by is False:
order_by = self.select_mapper.order_by
if order_by is False:
- order_by = []
- if self.table.default_order_by() is not None:
+ order_by = from_obj.default_order_by()
+ if order_by is None:
order_by = self.table.default_order_by()
- if from_obj.default_order_by() is not None:
- order_by = from_obj.default_order_by()
-
+
if self._lockmode:
try:
for_update = {'read':'read','update':True,'update_nowait':'nowait',None:False}[self._lockmode]
statement.append_order_by(*context.eager_order_by)
else:
+ order_by = [expression._literal_as_text(o) for o in util.to_list(order_by) or []]
+
if adapter:
# TODO: make usage of the ClauseAdapter here to create row adapter, list
# of primary columns ?
context.primary_columns = [from_obj.corresponding_column(c) or c for c in context.primary_columns]
context.row_adapter = mapperutil.create_row_adapter(from_obj, self.table)
-
+ order_by = adapter.copy_and_process(order_by)
+
if self._distinct:
- if order_by:
- order_by = [expression._literal_as_text(o) for o in util.to_list(order_by) or []]
if self._distinct and order_by:
cf = util.Set()
User(name='jack', addresses=[Address(id=1)])
)
+ def test_join_mapper_order_by(self):
+ mapper(User, users, order_by=users.c.id)
+
+ sel = users.select(users.c.id.in_([7, 8]))
+ sess = create_session()
+
+ self.assertEquals(sess.query(User).select_from(sel).all(),
+ [
+ User(name='jack',id=7), User(name='ed',id=8)
+ ]
+ )
+
+ def test_join_no_order_by(self):
+ mapper(User, users)
+
+ sel = users.select(users.c.id.in_([7, 8]))
+ sess = create_session()
+
+ self.assertEquals(sess.query(User).select_from(sel).all(),
+ [
+ User(name='jack',id=7), User(name='ed',id=8)
+ ]
+ )
+
def test_join(self):
mapper(User, users, properties = {
'addresses':relation(Address)
(User(name='ed',id=8), Address(user_id=8,email_address='ed@lala.com',id=4))
]
)
+
def test_more_joins(self):
mapper(User, users, properties={