self referential targeting gets confused

Issue #1706 resolved
Mike Bayer repo owner created an issue
from sqlalchemy import *
from sqlalchemy.orm import *
from sqlalchemy.ext.declarative import declarative_base

Base = declarative_base()

class Work(Base):
    __tablename__ = "work"
    id = Column(Integer, primary_key=True)
    work_id = Column(Integer, ForeignKey('work.id'))
    owner_id = Column(Integer, ForeignKey('owner.id'))

    parent = relation("Work", remote_side=work_id)
    owner = relation("Owner")

class Owner(Base):
    __tablename__ = "owner"
    id = Column(Integer, primary_key=True)

session = create_session()
work1 = aliased(Work)
work2 = aliased(Work)
query = session.query(work1).outerjoin((work2, work1.parent))
query = query.outerjoin((Owner, work1.owner))

# works
#query = query.outerjoin((Owner, work1.owner_id==Owner.id))

print query

Comments (2)

  1. Log in to comment