more specific check for recursion in joinedload w no joined_depth
Issue #2481
resolved
--- a/lib/sqlalchemy/orm/strategies.py Fri May 04 23:18:52 2012 -0400
+++ b/lib/sqlalchemy/orm/strategies.py Tue May 08 13:49:50 2012 -0400
@@ -951,7 +951,7 @@
if len(path) / 2 > self.join_depth:
return
else:
- if self.mapper.base_mapper in reduced_path:
+ if self.mapper in path:
return
clauses, adapter, add_to_collection, \
Comments (5)
-
reporter -
reporter - changed status to resolved
-
reporter - changed status to open
- removed status
failure:
from sqlalchemy import * from sqlalchemy.ext.declarative import declarative_base from sqlalchemy.orm import Session, relationship, backref e = create_engine('sqlite:///', echo=True) Base = declarative_base() Base.metadata = MetaData(e) class Item(Base): __tablename__ = 'items' id = Column(Integer, primary_key=True) item_type = Column(String(24), default='item') __mapper_args__ = { 'polymorphic_identity': 'item', 'polymorphic_on': 'item_type', 'with_polymorphic': '*', } class PolyItem(Item): __tablename__ = 'poly_items' id = Column(Integer, ForeignKey(Item.id), primary_key=True) __mapper_args__ = { 'polymorphic_identity': 'polyitem', } item = relationship(Item, lazy=False) if __name__ == '__main__': Base.metadata.create_all() session = Session(e) session.query(Item).first()
-
reporter - changed status to resolved
-
reporter - removed milestone
Removing milestone: 0.8.0b1 (automated comment)
- Log in to comment
test case: