summaryrefslogtreecommitdiff
path: root/test/ext/declarative/test_inheritance.py
diff options
context:
space:
mode:
Diffstat (limited to 'test/ext/declarative/test_inheritance.py')
-rw-r--r--test/ext/declarative/test_inheritance.py35
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",
+ )