- Fixed the call to get_committed_value() on CompositeProperty.
[ticket:1504]
+
+ - Fixed bug where Query would crash if a join() with no clear
+ "left" side were called when a non-mapped column entity
+ appeared in the columns list. [ticket:1602]
- sql
- Fixed the "numeric" paramstyle, which apparently is the
self.froms.add(from_obj)
def corresponds_to(self, entity):
- if _is_aliased_class(entity):
+ if self.entity_zero is None:
+ return False
+ elif _is_aliased_class(entity):
return entity is self.entity_zero
else:
- return not _is_aliased_class(self.entity_zero) and entity.base_mapper.common_parent(self.entity_zero)
+ return not _is_aliased_class(self.entity_zero) and \
+ entity.base_mapper.common_parent(self.entity_zero)
def _resolve_expr_against_query_aliases(self, query, expr, context):
return query._adapt_clause(expr, False, True)
[]
)
+ def test_join_nonmapped_column(self):
+ """test that the search for a 'left' doesn't trip on non-mapped cols"""
+ sess = create_session()
+
+ # intentionally join() with a non-existent "left" side
+ q = sess.query(User.id, literal_column('foo')).join(Order.user)
+ eq_(
+ str(q.statement.apply_labels().compile(dialect=default.DefaultDialect())),
+ "SELECT users.id AS users_id, foo \nFROM orders JOIN users ON users.id = orders.user_id"
+ )
+
def test_backwards_join(self):
# a more controversial feature. join from
# User->Address, but the onclause is Address.user.