from sqlalchemy import ForeignKey
from sqlalchemy import Integer
from sqlalchemy import String
+from sqlalchemy import util
from sqlalchemy.orm import create_session
from sqlalchemy.orm import mapper
from sqlalchemy.orm import polymorphic_union
cls.tables.boss,
)
person_join = polymorphic_union(
- {
- "engineer": people.join(engineers),
- "manager": people.join(managers),
- },
+ util.OrderedDict(
+ [
+ ("engineer", people.join(engineers)),
+ ("manager", people.join(managers)),
+ ]
+ ),
None,
"pjoin",
)
+
manager_join = people.join(managers).outerjoin(boss)
person_with_polymorphic = ([Person, Manager, Engineer], person_join)
manager_with_polymorphic = ("*", manager_join)
class PolymorphicUnionsTest(_PolymorphicTestBase, _PolymorphicUnions):
def _polymorphic_join_target(self, cls):
return (
- "(SELECT engineers.person_id AS person_id, "
- "people.company_id AS company_id, people.name AS name, "
- "people.type AS type, engineers.status AS status, "
+ "(SELECT engineers.person_id AS person_id, people.company_id "
+ "AS company_id, people.name AS name, people.type AS type, "
+ "engineers.status AS status, "
"engineers.engineer_name AS engineer_name, "
"engineers.primary_language AS primary_language, "
"CAST(NULL AS VARCHAR(50)) AS manager_name FROM people "