joined table inheritance table ordering is relying upon foreign keys

Issue #2689 resolved
Mike Bayer repo owner created an issue
# note this is being added as sqlalchemy.orm.util.randomize_unitofwork()
from sqlalchemy.orm import unitofwork, session, mapper, dependency
from sqlalchemy.util import topological
from sqlalchemy.testing.util import RandomSet
topological.set = unitofwork.set = session.set = mapper.set = \
        dependency.set = RandomSet

from sqlalchemy import *
from sqlalchemy.orm import *
from sqlalchemy.ext.declarative import declarative_base

Base = declarative_base()

class A(Base):
    __tablename__ = 'a'
    id = Column(Integer, primary_key=True)

class B(A):
    __tablename__ = 'b'
    id = Column(Integer,
                        #ForeignKey('A.id'),
                        primary_key=True)
    __mapper_args__ = {
                        'inherit_condition': (id == A.id)
                       }

class C(A):
    __tablename__ = 'c'
    id = Column(Integer,
                        #ForeignKey('A.id'),
                        primary_key=True)
    __mapper_args__ = {
                        'inherit_condition': (id == A.id)
                       }


engine = create_engine('sqlite://', echo=True)
Base.metadata.create_all(engine)

session = Session(engine)

session.add_all([C()](B(),))
session.commit()

obviously backport this to 0.7

Comments (2)

  1. Log in to comment