summaryrefslogtreecommitdiff
path: root/test/orm/test_froms.py
diff options
context:
space:
mode:
Diffstat (limited to 'test/orm/test_froms.py')
-rw-r--r--test/orm/test_froms.py122
1 files changed, 84 insertions, 38 deletions
diff --git a/test/orm/test_froms.py b/test/orm/test_froms.py
index f622bff02..1464cfc28 100644
--- a/test/orm/test_froms.py
+++ b/test/orm/test_froms.py
@@ -30,6 +30,7 @@ from sqlalchemy.orm import Session
from sqlalchemy.orm.util import join
from sqlalchemy.sql import column
from sqlalchemy.sql import table
+from sqlalchemy.sql.selectable import LABEL_STYLE_TABLENAME_PLUS_COL
from sqlalchemy.testing import assert_raises
from sqlalchemy.testing import assert_raises_message
from sqlalchemy.testing import AssertsCompiledSQL
@@ -274,19 +275,26 @@ class QueryCorrelatesLikeSelect(QueryTest, AssertsCompiledSQL):
"FROM users) AS anon_1",
)
- def test_correlate_to_union_newstyle(self):
+ def test_correlate_to_union_w_labels_newstyle(self):
User = self.classes.User
- q = select(User).apply_labels()
+ q = select(User).set_label_style(LABEL_STYLE_TABLENAME_PLUS_COL)
- q = select(User).union(q).apply_labels().subquery()
+ q = (
+ select(User)
+ .set_label_style(LABEL_STYLE_TABLENAME_PLUS_COL)
+ .union(q)
+ .subquery()
+ )
u_alias = aliased(User)
raw_subq = exists().where(u_alias.id > q.c[0])
self.assert_compile(
- select(q, raw_subq).apply_labels(),
+ select(q, raw_subq).set_label_style(
+ LABEL_STYLE_TABLENAME_PLUS_COL
+ ),
"SELECT anon_1.users_id AS anon_1_users_id, "
"anon_1.users_name AS anon_1_users_name, "
"EXISTS (SELECT * FROM users AS users_1 "
@@ -297,6 +305,27 @@ class QueryCorrelatesLikeSelect(QueryTest, AssertsCompiledSQL):
"FROM users) AS anon_1",
)
+ def test_correlate_to_union_newstyle(self):
+ User = self.classes.User
+
+ q = select(User)
+
+ q = select(User).union(q).subquery()
+
+ u_alias = aliased(User)
+
+ raw_subq = exists().where(u_alias.id > q.c[0])
+
+ self.assert_compile(
+ select(q, raw_subq),
+ "SELECT anon_1.id, anon_1.name, EXISTS "
+ "(SELECT * FROM users AS users_1 WHERE users_1.id > anon_1.id) "
+ "AS anon_2 FROM (SELECT users.id AS id, users.name AS name "
+ "FROM users "
+ "UNION SELECT users.id AS id, users.name AS name FROM users) "
+ "AS anon_1",
+ )
+
class RawSelectTest(QueryTest, AssertsCompiledSQL):
"""compare a bunch of select() tests with the equivalent Query using
@@ -317,7 +346,7 @@ class RawSelectTest(QueryTest, AssertsCompiledSQL):
self.assert_compile(
sess.query(users)
.select_entity_from(users.select().subquery())
- .with_labels()
+ .set_label_style(LABEL_STYLE_TABLENAME_PLUS_COL)
.statement,
"SELECT users.id AS users_id, users.name AS users_name "
"FROM users, "
@@ -326,7 +355,7 @@ class RawSelectTest(QueryTest, AssertsCompiledSQL):
self.assert_compile(
sess.query(users, exists([1], from_obj=addresses))
- .with_labels()
+ .set_label_style(LABEL_STYLE_TABLENAME_PLUS_COL)
.statement,
"SELECT users.id AS users_id, users.name AS users_name, EXISTS "
"(SELECT 1 FROM addresses) AS anon_1 FROM users",
@@ -347,7 +376,7 @@ class RawSelectTest(QueryTest, AssertsCompiledSQL):
self.assert_compile(
sess.query(users, s.c.email)
.select_entity_from(users.join(s, s.c.id == users.c.id))
- .with_labels()
+ .set_label_style(LABEL_STYLE_TABLENAME_PLUS_COL)
.statement,
"SELECT users.id AS users_id, users.name AS users_name, "
"anon_1.email AS anon_1_email "
@@ -480,7 +509,7 @@ class EntityFromSubqueryTest(QueryTest, AssertsCompiledSQL):
select(User.id)
.group_by(User.id)
.having(User.id > 5)
- .apply_labels()
+ .set_label_style(LABEL_STYLE_TABLENAME_PLUS_COL)
.subquery()
)
@@ -501,7 +530,7 @@ class EntityFromSubqueryTest(QueryTest, AssertsCompiledSQL):
subq = (
select(User)
.options(joinedload(User.addresses))
- .apply_labels()
+ .set_label_style(LABEL_STYLE_TABLENAME_PLUS_COL)
.subquery()
)
@@ -724,7 +753,7 @@ class ColumnAccessTest(QueryTest, AssertsCompiledSQL):
q1 = select(c1, c2).where(c1 == "dog")
q2 = select(c1, c2).where(c1 == "cat")
subq = q1.union(q2).subquery()
- q3 = select(subq).apply_labels()
+ q3 = select(subq).set_label_style(LABEL_STYLE_TABLENAME_PLUS_COL)
self.assert_compile(
q3.order_by(subq.c.c1),
@@ -738,20 +767,31 @@ class ColumnAccessTest(QueryTest, AssertsCompiledSQL):
from sqlalchemy.sql import column
t1 = table("t1", column("c1"), column("c2"))
- stmt = select(t1.c.c1, t1.c.c2).where(t1.c.c1 == "dog").apply_labels()
+ stmt = (
+ select(t1.c.c1, t1.c.c2)
+ .where(t1.c.c1 == "dog")
+ .set_label_style(LABEL_STYLE_TABLENAME_PLUS_COL)
+ )
- subq1 = stmt.subquery("anon_2").select().apply_labels()
+ subq1 = (
+ stmt.subquery("anon_2")
+ .select()
+ .set_label_style(LABEL_STYLE_TABLENAME_PLUS_COL)
+ )
subq2 = subq1.subquery("anon_1")
- q1 = select(subq2).apply_labels()
+ q1 = select(subq2).set_label_style(LABEL_STYLE_TABLENAME_PLUS_COL)
self.assert_compile(
# as in test_anonymous_expression_from_self_twice_newstyle_wlabels,
- # apply_labels() means the subquery cols have long names. however,
- # here we illustrate if they did use apply_labels(), but they also
+ # set_label_style(LABEL_STYLE_TABLENAME_PLUS_COL) means the
+ # subquery cols have long names. however,
+ # here we illustrate if they did use
+ # set_label_style(LABEL_STYLE_TABLENAME_PLUS_COL), but they also
# named the subqueries explicitly as one would certainly do if they
- # were using apply_labels(), we can get at that column based on how
+ # were using set_label_style(LABEL_STYLE_TABLENAME_PLUS_COL),
+ # we can get at that column based on how
# it is aliased, no different than plain SQL.
q1.order_by(subq2.c.anon_2_t1_c1),
"SELECT anon_1.anon_2_t1_c1 "
@@ -769,9 +809,13 @@ class ColumnAccessTest(QueryTest, AssertsCompiledSQL):
c1, c2 = column("c1"), column("c2")
subq = select(c1, c2).where(c1 == "dog").subquery()
- subq2 = select(subq).apply_labels().subquery()
+ subq2 = (
+ select(subq)
+ .set_label_style(LABEL_STYLE_TABLENAME_PLUS_COL)
+ .subquery()
+ )
- stmt = select(subq2).apply_labels()
+ stmt = select(subq2).set_label_style(LABEL_STYLE_TABLENAME_PLUS_COL)
self.assert_compile(
# because of the apply labels we don't have simple keys on
@@ -824,7 +868,7 @@ class ColumnAccessTest(QueryTest, AssertsCompiledSQL):
q1 = select(c1.label("foo"), c2.label("bar")).where(c1 == "dog")
q2 = select(c1.label("foo"), c2.label("bar")).where(c1 == "cat")
subq = union(q1, q2).subquery()
- q3 = select(subq).apply_labels()
+ q3 = select(subq).set_label_style(LABEL_STYLE_TABLENAME_PLUS_COL)
self.assert_compile(
q3.order_by(subq.c.foo),
"SELECT anon_1.foo AS anon_1_foo, anon_1.bar AS anon_1_bar FROM "
@@ -842,7 +886,9 @@ class ColumnAccessTest(QueryTest, AssertsCompiledSQL):
sess = fixture_session()
q1 = sess.query(User.id).filter(User.id > 5)
- uq = aliased(User, q1.apply_labels().subquery())
+ uq = aliased(
+ User, q1.set_label_style(LABEL_STYLE_TABLENAME_PLUS_COL).subquery()
+ )
aa = aliased(Address)
q1 = (
@@ -869,7 +915,12 @@ class ColumnAccessTest(QueryTest, AssertsCompiledSQL):
addresses = self.tables.addresses
sess = fixture_session()
- q1 = sess.query(User.id).filter(User.id > 5).apply_labels().subquery()
+ q1 = (
+ sess.query(User.id)
+ .filter(User.id > 5)
+ .set_label_style(LABEL_STYLE_TABLENAME_PLUS_COL)
+ .subquery()
+ )
uq = aliased(User, q1)
@@ -1029,9 +1080,7 @@ class InstancesTest(QueryTest, AssertsCompiledSQL):
.union(users.select(users.c.id > 7))
.alias("ulist")
.outerjoin(addresses)
- .select(
- use_labels=True, order_by=[text("ulist.id"), addresses.c.id]
- )
+ .select(order_by=[text("ulist.id"), addresses.c.id])
)
sess = fixture_session()
q = sess.query(User)
@@ -1058,9 +1107,7 @@ class InstancesTest(QueryTest, AssertsCompiledSQL):
.union(users.select(users.c.id > 7))
.alias("ulist")
.outerjoin(addresses)
- .select(
- use_labels=True, order_by=[text("ulist.id"), addresses.c.id]
- )
+ .select(order_by=[text("ulist.id"), addresses.c.id])
)
sess = fixture_session()
q = sess.query(User)
@@ -1088,9 +1135,7 @@ class InstancesTest(QueryTest, AssertsCompiledSQL):
.union(users.select(users.c.id > 7))
.alias("ulist")
.outerjoin(addresses)
- .select(
- use_labels=True, order_by=[text("ulist.id"), addresses.c.id]
- )
+ .select(order_by=[text("ulist.id"), addresses.c.id])
)
sess = fixture_session()
@@ -1124,7 +1169,7 @@ class InstancesTest(QueryTest, AssertsCompiledSQL):
.union(users.select(users.c.id > 7))
.alias("ulist")
.outerjoin(adalias)
- .select(use_labels=True, order_by=[text("ulist.id"), adalias.c.id])
+ .select(order_by=[text("ulist.id"), adalias.c.id])
)
def go():
@@ -1151,7 +1196,7 @@ class InstancesTest(QueryTest, AssertsCompiledSQL):
.order_by(User.id, addresses.c.id)
)
self.assert_compile(
- q.with_labels().statement,
+ q.set_label_style(LABEL_STYLE_TABLENAME_PLUS_COL).statement,
"SELECT addresses.id AS addresses_id, "
"addresses.user_id AS addresses_user_id, "
"addresses.email_address AS "
@@ -1201,7 +1246,6 @@ class InstancesTest(QueryTest, AssertsCompiledSQL):
selectquery = users.outerjoin(addresses).select(
users.c.id < 10,
- use_labels=True,
order_by=[users.c.id, addresses.c.id],
)
@@ -1228,7 +1272,6 @@ class InstancesTest(QueryTest, AssertsCompiledSQL):
selectquery = users.outerjoin(addresses).select(
users.c.id < 10,
- use_labels=True,
order_by=[users.c.id, addresses.c.id],
)
@@ -1286,7 +1329,7 @@ class InstancesTest(QueryTest, AssertsCompiledSQL):
users.outerjoin(oalias)
.outerjoin(order_items)
.outerjoin(ialias)
- .select(use_labels=True)
+ .select()
.order_by(users.c.id, oalias.c.id, ialias.c.id)
)
@@ -2135,9 +2178,12 @@ class MixedEntitiesTest(QueryTest, AssertsCompiledSQL):
Order.id, Order.description, literal_column("'q'").label("foo")
).where(Order.description == "order 3")
- subq = aliased(Order, stmt.apply_labels().subquery())
+ subq = aliased(
+ Order,
+ stmt.set_label_style(LABEL_STYLE_TABLENAME_PLUS_COL).subquery(),
+ )
- stmt = select(subq).apply_labels()
+ stmt = select(subq).set_label_style(LABEL_STYLE_TABLENAME_PLUS_COL)
self.assert_compile(
stmt,
"SELECT anon_1.orders_id AS "
@@ -2182,7 +2228,7 @@ class MixedEntitiesTest(QueryTest, AssertsCompiledSQL):
sess = fixture_session(future=True)
selectquery = users.outerjoin(addresses).select(
- use_labels=True, order_by=[users.c.id, addresses.c.id]
+ order_by=[users.c.id, addresses.c.id]
)
result = sess.execute(