test #6710
(self)
| 582 | ) |
| 583 | |
| 584 | def test_wrecur_dupe_col_names(self): |
| 585 | """test #6710""" |
| 586 | |
| 587 | manager = table("manager", column("id")) |
| 588 | employee = table("employee", column("id"), column("manager_id")) |
| 589 | |
| 590 | top_q = select(employee, manager).join_from( |
| 591 | employee, manager, employee.c.manager_id == manager.c.id |
| 592 | ) |
| 593 | |
| 594 | top_q = top_q.cte("cte", recursive=True) |
| 595 | |
| 596 | bottom_q = ( |
| 597 | select(employee, manager) |
| 598 | .join_from( |
| 599 | employee, manager, employee.c.manager_id == manager.c.id |
| 600 | ) |
| 601 | .join(top_q, top_q.c.id == employee.c.id) |
| 602 | ) |
| 603 | |
| 604 | rec_cte = select(top_q.union_all(bottom_q)) |
| 605 | self.assert_compile( |
| 606 | rec_cte, |
| 607 | "WITH RECURSIVE cte(id, manager_id, id_1) AS " |
| 608 | "(SELECT employee.id AS id, employee.manager_id AS manager_id, " |
| 609 | "manager.id AS id_1 FROM employee JOIN manager " |
| 610 | "ON employee.manager_id = manager.id UNION ALL " |
| 611 | "SELECT employee.id AS id, employee.manager_id AS manager_id, " |
| 612 | "manager.id AS id_1 FROM employee JOIN manager ON " |
| 613 | "employee.manager_id = manager.id " |
| 614 | "JOIN cte ON cte.id = employee.id) " |
| 615 | "SELECT cte.id, cte.manager_id, cte.id_1 FROM cte", |
| 616 | ) |
| 617 | |
| 618 | @testing.combinations(True, False, argnames="use_object") |
| 619 | @testing.combinations("order_by", "group_by", argnames="order_by") |