diff options
Diffstat (limited to 'test/ext/declarative/test_inheritance.py')
| -rw-r--r-- | test/ext/declarative/test_inheritance.py | 35 |
1 files changed, 35 insertions, 0 deletions
diff --git a/test/ext/declarative/test_inheritance.py b/test/ext/declarative/test_inheritance.py index d33dbd4be..4a4e8a00f 100644 --- a/test/ext/declarative/test_inheritance.py +++ b/test/ext/declarative/test_inheritance.py @@ -2038,3 +2038,38 @@ class ConcreteExtensionConfigTest( "(SELECT offers.documenttype AS documenttype, offers.id AS id, " "'offer' AS type FROM offers) AS pjoin", ) + + def test_configure_discriminator_col(self): + """test #5513""" + + class Employee(AbstractConcreteBase, Base): + _concrete_discriminator_name = "_alt_discriminator" + employee_id = Column(Integer, primary_key=True) + + class Manager(Employee): + __tablename__ = "manager" + + __mapper_args__ = { + "polymorphic_identity": "manager", + "concrete": True, + } + + class Engineer(Employee): + __tablename__ = "engineer" + + __mapper_args__ = { + "polymorphic_identity": "engineer", + "concrete": True, + } + + configure_mappers() + self.assert_compile( + Session().query(Employee), + "SELECT pjoin.employee_id AS pjoin_employee_id, " + "pjoin._alt_discriminator AS pjoin__alt_discriminator " + "FROM (SELECT engineer.employee_id AS employee_id, " + "'engineer' AS _alt_discriminator FROM engineer " + "UNION ALL SELECT manager.employee_id AS employee_id, " + "'manager' AS _alt_discriminator " + "FROM manager) AS pjoin", + ) |
