self.assert_compile(q.limit(1).with_labels().statement,
"SELECT anon_1.child1_id AS anon_1_child1_id, anon_1.parent_id "
"AS anon_1_parent_id, anon_1.parent_cls AS anon_1_parent_cls, "
- "anon_2.child2_id AS anon_2_child2_id, anon_2.parent_id AS "
- "anon_2_parent_id, anon_2.parent_cls AS anon_2_parent_cls FROM "
+ "child2_1.id AS child2_1_id, parent_1.id AS "
+ "parent_1_id, parent_1.cls AS parent_1_cls FROM "
"(SELECT child1.id AS child1_id, parent.id AS parent_id, "
"parent.cls AS parent_cls FROM parent JOIN child1 ON parent.id = "
"child1.id LIMIT :param_1) AS anon_1 LEFT OUTER JOIN secondary "
"AS secondary_1 ON anon_1.parent_id = secondary_1.right_id LEFT "
- "OUTER JOIN (SELECT parent.id AS parent_id, parent.cls AS "
- "parent_cls, child2.id AS child2_id FROM parent JOIN child2 ON "
- "parent.id = child2.id) AS anon_2 ON anon_2.parent_id = "
+ "OUTER JOIN (parent AS parent_1 JOIN child2 AS child2_1 ON "
+ "parent_1.id = child2_1.id) ON parent_1.id = "
"secondary_1.left_id",
{'param_1':1},
dialect=default.DefaultDialect())
join(Sub2.ep1).
join(Sub2.ep2),
"SELECT parent.id AS parent_id, parent.data AS parent_data "
- "FROM parent JOIN (SELECT base1.id AS base1_id, "
- "base1.data AS base1_data, sub1.id AS sub1_id, "
- "sub1.parent_id AS sub1_parent_id, sub1.subdata AS sub1_subdata "
- "FROM base1 JOIN sub1 ON base1.id = sub1.id) AS anon_1 "
- "ON parent.id = anon_1.sub1_parent_id JOIN "
- "(SELECT base2.id AS base2_id, base2.base1_id AS base2_base1_id, "
- "base2.data AS base2_data, sub2.id AS sub2_id, "
- "sub2.subdata AS sub2_subdata FROM base2 JOIN sub2 "
- "ON base2.id = sub2.id) AS anon_2 "
- "ON anon_1.base1_id = anon_2.base2_base1_id "
- "JOIN ep1 ON anon_2.base2_id = ep1.base2_id "
- "JOIN ep2 ON anon_2.base2_id = ep2.base2_id"
+ "FROM parent JOIN (base1 JOIN sub1 ON base1.id = sub1.id) "
+ "ON parent.id = sub1.parent_id JOIN "
+ "(base2 JOIN sub2 "
+ "ON base2.id = sub2.id) "
+ "ON base1.id = base2.base1_id "
+ "JOIN ep1 ON base2.id = ep1.base2_id "
+ "JOIN ep2 ON base2.id = ep2.base2_id"
)
def test_two(self):
s.query(Parent).join(Parent.sub1).
join(s2a, Sub1.sub2),
"SELECT parent.id AS parent_id, parent.data AS parent_data "
- "FROM parent JOIN (SELECT base1.id AS base1_id, "
- "base1.data AS base1_data, sub1.id AS sub1_id, "
- "sub1.parent_id AS sub1_parent_id, sub1.subdata AS sub1_subdata "
- "FROM base1 JOIN sub1 ON base1.id = sub1.id) AS anon_1 "
- "ON parent.id = anon_1.sub1_parent_id JOIN "
- "(SELECT base2.id AS base2_id, base2.base1_id AS base2_base1_id, "
- "base2.data AS base2_data, sub2.id AS sub2_id, "
- "sub2.subdata AS sub2_subdata FROM base2 JOIN sub2 "
- "ON base2.id = sub2.id) AS anon_2 "
- "ON anon_1.base1_id = anon_2.base2_base1_id"
+ "FROM parent JOIN (base1 JOIN sub1 ON base1.id = sub1.id) "
+ "ON parent.id = sub1.parent_id JOIN "
+ "(base2 AS base2_1 JOIN sub2 AS sub2_1 "
+ "ON base2_1.id = sub2_1.id) "
+ "ON base1.id = base2_1.base1_id"
)
def test_three(self):
join(Sub2.ep1).\
join(Sub2.ep2),
"SELECT base1.id AS base1_id, base1.data AS base1_data "
- "FROM base1 JOIN (SELECT base2.id AS base2_id, base2.base1_id "
- "AS base2_base1_id, base2.data AS base2_data, sub2.id AS sub2_id, "
- "sub2.subdata AS sub2_subdata FROM base2 JOIN sub2 "
- "ON base2.id = sub2.id) AS anon_1 ON base1.id = "
- "anon_1.base2_base1_id "
- "JOIN ep1 ON anon_1.base2_id = ep1.base2_id "
- "JOIN ep2 ON anon_1.base2_id = ep2.base2_id"
+ "FROM base1 JOIN (base2 JOIN sub2 "
+ "ON base2.id = sub2.id) ON base1.id = "
+ "base2.base1_id "
+ "JOIN ep1 ON base2.id = ep1.base2_id "
+ "JOIN ep2 ON base2.id = ep2.base2_id"
)
def test_four(self):
"sub2.subdata AS sub2_subdata "
"FROM base2 JOIN sub2 ON base2.id = sub2.id "
"JOIN "
- "(SELECT base1.id AS base1_id, base1.data AS base1_data, "
- "sub1.id AS sub1_id, sub1.parent_id AS sub1_parent_id, "
- "sub1.subdata AS sub1_subdata "
- "FROM base1 JOIN sub1 ON base1.id = sub1.id) AS anon_1 "
- "ON anon_1.sub1_id = base2.base1_id "
+ "(base1 JOIN sub1 ON base1.id = sub1.id) "
+ "ON sub1.id = base2.base1_id "
"JOIN ep1 ON base2.id = ep1.base2_id "
"JOIN ep2 ON base2.id = ep2.base2_id"
)
join(Sub2.ep2),
"SELECT anon_1.parent_id AS anon_1_parent_id, "
"anon_1.parent_data AS anon_1_parent_data, "
- "anon_1.anon_2_sub2_id AS anon_1_anon_2_sub2_id, "
- "anon_1.anon_2_base2_id AS anon_1_anon_2_base2_id, "
- "anon_1.anon_2_base2_base1_id AS anon_1_anon_2_base2_base1_id, "
- "anon_1.anon_2_base2_data AS anon_1_anon_2_base2_data, "
- "anon_1.anon_2_sub2_subdata AS anon_1_anon_2_sub2_subdata "
+ "anon_1.sub2_id AS anon_1_sub2_id, "
+ "anon_1.base2_id AS anon_1_base2_id, "
+ "anon_1.base2_base1_id AS anon_1_base2_base1_id, "
+ "anon_1.base2_data AS anon_1_base2_data, "
+ "anon_1.sub2_subdata AS anon_1_sub2_subdata "
"FROM (SELECT parent.id AS parent_id, parent.data AS parent_data, "
- "anon_2.sub2_id AS anon_2_sub2_id, "
- "anon_2.base2_id AS anon_2_base2_id, "
- "anon_2.base2_base1_id AS anon_2_base2_base1_id, "
- "anon_2.base2_data AS anon_2_base2_data, "
- "anon_2.sub2_subdata AS anon_2_sub2_subdata "
- "FROM parent JOIN (SELECT base1.id AS base1_id, "
- "base1.data AS base1_data, sub1.id AS sub1_id, "
- "sub1.parent_id AS sub1_parent_id, sub1.subdata AS sub1_subdata "
- "FROM base1 JOIN sub1 ON base1.id = sub1.id) AS anon_3 "
- "ON parent.id = anon_3.sub1_parent_id JOIN "
- "(SELECT base2.id AS base2_id, base2.base1_id AS base2_base1_id, "
- "base2.data AS base2_data, sub2.id AS sub2_id, "
+ "sub2.id AS sub2_id, "
+ "base2.id AS base2_id, "
+ "base2.base1_id AS base2_base1_id, "
+ "base2.data AS base2_data, "
"sub2.subdata AS sub2_subdata "
- "FROM base2 JOIN sub2 ON base2.id = sub2.id) AS anon_2 "
- "ON anon_3.base1_id = anon_2.base2_base1_id) AS anon_1 "
- "JOIN ep1 ON anon_1.anon_2_base2_id = ep1.base2_id "
- "JOIN ep2 ON anon_1.anon_2_base2_id = ep2.base2_id"
+ "FROM parent JOIN (base1 JOIN sub1 ON base1.id = sub1.id) "
+ "ON parent.id = sub1.parent_id JOIN "
+ "(base2 JOIN sub2 ON base2.id = sub2.id) "
+ "ON base1.id = base2.base1_id) AS anon_1 "
+ "JOIN ep1 ON anon_1.base2_id = ep1.base2_id "
+ "JOIN ep2 ON anon_1.base2_id = ep2.base2_id"
)
self.assert_compile(
s.query(Director).options(joinedload('*')),
"SELECT director.id AS director_id, persistent.id AS persistent_id, "
- "director.name AS director_name, anon_1.movie_id AS anon_1_movie_id, "
- "anon_1.persistent_id AS anon_1_persistent_id, "
- "anon_1.movie_director_id AS anon_1_movie_director_id, "
- "anon_1.movie_title AS anon_1_movie_title "
+ "director.name AS director_name, movie_1.id AS movie_1_id, "
+ "persistent_1.id AS persistent_1_id, "
+ "movie_1.director_id AS movie_1_director_id, "
+ "movie_1.title AS movie_1_title "
"FROM persistent JOIN director ON persistent.id = director.id "
"LEFT OUTER JOIN "
- "(SELECT persistent.id AS persistent_id, movie.id AS movie_id, "
- "movie.director_id AS movie_director_id, movie.title AS movie_title "
- "FROM persistent JOIN movie ON persistent.id = movie.id) AS anon_1 "
- "ON director.id = anon_1.movie_director_id"
+ "(persistent AS persistent_1 JOIN movie AS movie_1 "
+ "ON persistent_1.id = movie_1.id) "
+ "ON director.id = movie_1.director_id"
)
def test_integrate(self):
sess.query(PersistentObject).options(joinedload(Director.other, join_depth=1)),
"SELECT persistent.id AS persistent_id, director.id AS director_id, "
"director.other_id AS director_other_id, "
- "director.name AS director_name, anon_1.persistent_id AS "
- "anon_1_persistent_id, anon_1.director_id AS anon_1_director_id, "
- "anon_1.director_other_id AS anon_1_director_other_id, "
- "anon_1.director_name AS anon_1_director_name "
+ "director.name AS director_name, persistent_1.id AS "
+ "persistent_1_id, director_1.id AS director_1_id, "
+ "director_1.other_id AS director_1_other_id, "
+ "director_1.name AS director_1_name "
"FROM persistent LEFT OUTER JOIN director ON director.id = persistent.id "
- "LEFT OUTER JOIN (SELECT persistent.id AS persistent_id, "
- "director.id AS director_id, director.other_id AS director_other_id, "
- "director.name AS director_name "
- "FROM persistent LEFT OUTER JOIN director ON "
- "director.id = persistent.id) "
- "AS anon_1 ON director.other_id = anon_1.persistent_id"
+ "LEFT OUTER JOIN (persistent AS persistent_1 LEFT OUTER JOIN director AS director_1 ON "
+ "director_1.id = persistent_1.id) "
+ "ON director.other_id = persistent_1.id"
)