summaryrefslogtreecommitdiff
path: root/lib/sqlalchemy/orm
diff options
context:
space:
mode:
authorMike Bayer <mike_mp@zzzcomputing.com>2008-06-22 19:02:19 +0000
committerMike Bayer <mike_mp@zzzcomputing.com>2008-06-22 19:02:19 +0000
commit3e8b0951780d96bdf59dd7aceddf028be62eaa0b (patch)
tree553f77e7ad37d5330b000e45ff8d73bb48822bb2 /lib/sqlalchemy/orm
parentf2af07217f81588e50cb5889603d5858472d9b3d (diff)
downloadsqlalchemy-3e8b0951780d96bdf59dd7aceddf028be62eaa0b.tar.gz
- Fixed explicit, self-referential joins between two
joined-table inheritance mappers when using query.join(cls, aliased=True). [ticket:1082]
Diffstat (limited to 'lib/sqlalchemy/orm')
-rw-r--r--lib/sqlalchemy/orm/query.py12
1 files changed, 6 insertions, 6 deletions
diff --git a/lib/sqlalchemy/orm/query.py b/lib/sqlalchemy/orm/query.py
index 51c57ca30..37463ef10 100644
--- a/lib/sqlalchemy/orm/query.py
+++ b/lib/sqlalchemy/orm/query.py
@@ -842,14 +842,14 @@ class Query(object):
right_entity = aliased(right_mapper, right_selectable)
alias_criterion = True
- elif right_mapper.with_polymorphic or isinstance(right_mapper.mapped_table, expression.Join):
- aliased_entity = True
+ elif create_aliases:
right_entity = aliased(right_mapper)
alias_criterion = True
-
- elif create_aliases:
+
+ elif right_mapper.with_polymorphic or isinstance(right_mapper.mapped_table, expression.Join):
right_entity = aliased(right_mapper)
alias_criterion = True
+ aliased_entity = True
elif prop:
if prop.table in self.__currenttables:
@@ -873,7 +873,7 @@ class Query(object):
if alias_criterion:
self._filter_aliases = ORMAdapter(right_entity,
equivalents=right_mapper._equivalent_columns, chain_to=self._filter_aliases)
-
+
if aliased_entity:
self.__mapper_loads_polymorphically_with(right_mapper, ORMAdapter(right_entity, equivalents=right_mapper._equivalent_columns))
@@ -1567,7 +1567,7 @@ class _MapperEntity(_QueryEntity):
def setup_context(self, query, context):
adapter = self._get_entity_clauses(query, context)
-
+
context.froms.append(self.selectable)
if context.order_by is False and self.mapper.order_by: