From: Inada Naoki Date: Tue, 21 Oct 2025 11:24:06 +0000 (+0900) Subject: don't use LABEL_STYLE_TABLENAME_PLUS_COL on _load_on_ident X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=456021c75663767278fa8141f3a934d9a311132d;p=thirdparty%2Fsqlalchemy%2Fsqlalchemy.git don't use LABEL_STYLE_TABLENAME_PLUS_COL on _load_on_ident --- diff --git a/doc/build/orm/queryguide/columns.rst b/doc/build/orm/queryguide/columns.rst index ace6a63f4c..4b1947fd1f 100644 --- a/doc/build/orm/queryguide/columns.rst +++ b/doc/build/orm/queryguide/columns.rst @@ -87,7 +87,7 @@ order to load the value. Below, accessing ``.cover_photo`` emits a SELECT statement to load its value:: >>> img_data = books[0].cover_photo - {execsql}SELECT book.cover_photo AS book_cover_photo + {execsql}SELECT book.cover_photo FROM book WHERE book.id = ? [...] (1,) @@ -223,7 +223,7 @@ As is the case with :func:`_orm.load_only`, unloaded columns by default will load themselves when accessed using :term:`lazy loading`:: >>> img_data = books[0].cover_photo - {execsql}SELECT book.cover_photo AS book_cover_photo + {execsql}SELECT book.cover_photo FROM book WHERE book.id = ? [...] (4,) @@ -354,7 +354,7 @@ on the loaded object are first accessed is that they will :term:`lazy load` their value:: >>> img_data = book.cover_photo - {execsql}SELECT book.cover_photo AS book_cover_photo + {execsql}SELECT book.cover_photo FROM book WHERE book.id = ? [...] (2,) @@ -510,7 +510,7 @@ will load both columns at once using just one SELECT statement:: WHERE book.id = ? [...] (2,) {stop}>>> img_data, summary = book.cover_photo, book.summary - {execsql}SELECT book.summary AS book_summary, book.cover_photo AS book_cover_photo + {execsql}SELECT book.summary, book.cover_photo FROM book WHERE book.id = ? [...] (2,) diff --git a/doc/build/orm/queryguide/inheritance.rst b/doc/build/orm/queryguide/inheritance.rst index 537d51ae59..7f948ded97 100644 --- a/doc/build/orm/queryguide/inheritance.rst +++ b/doc/build/orm/queryguide/inheritance.rst @@ -954,7 +954,7 @@ when it's accessed:: WHERE employee.name = ? [...] ('Mr. Krabs',) {stop}>>> mr_krabs.manager_name - {execsql}SELECT employee.manager_name AS employee_manager_name + {execsql}SELECT employee.manager_name FROM employee WHERE employee.id = ? AND employee.type IN (?) [...] (1, 'manager') diff --git a/doc/build/orm/quickstart.rst b/doc/build/orm/quickstart.rst index e8d4a26233..39f59b9e0e 100644 --- a/doc/build/orm/quickstart.rst +++ b/doc/build/orm/quickstart.rst @@ -380,7 +380,7 @@ object by primary key using :meth:`_orm.Session.get`, then work with the object: >>> sandy = session.get(User, 2) {execsql}BEGIN (implicit) - SELECT user_account.id AS user_account_id, user_account.name AS user_account_name, user_account.fullname AS user_account_fullname + SELECT user_account.id, user_account.name, user_account.fullname FROM user_account WHERE user_account.id = ? [...] (2,){stop} @@ -416,7 +416,7 @@ options that we configured, in this case, onto the related ``Address`` objects: .. sourcecode:: pycon+sql >>> session.delete(patrick) - {execsql}SELECT user_account.id AS user_account_id, user_account.name AS user_account_name, user_account.fullname AS user_account_fullname + {execsql}SELECT user_account.id, user_account.name, user_account.fullname FROM user_account WHERE user_account.id = ? [...] (3,) diff --git a/doc/build/tutorial/orm_data_manipulation.rst b/doc/build/tutorial/orm_data_manipulation.rst index 5250fbcd0b..c555e4d108 100644 --- a/doc/build/tutorial/orm_data_manipulation.rst +++ b/doc/build/tutorial/orm_data_manipulation.rst @@ -464,8 +464,7 @@ a new transaction and refresh ``sandy`` with the current database row: >>> sandy.fullname {execsql}BEGIN (implicit) - SELECT user_account.id AS user_account_id, user_account.name AS user_account_name, - user_account.fullname AS user_account_fullname + SELECT user_account.id, user_account.name, user_account.fullname FROM user_account WHERE user_account.id = ? [...] (2,){stop} @@ -547,7 +546,7 @@ a context manager as well, accomplishes the following things: >>> session.add(squidward) >>> squidward.name {execsql}BEGIN (implicit) - SELECT user_account.id AS user_account_id, user_account.name AS user_account_name, user_account.fullname AS user_account_fullname + SELECT user_account.id, user_account.name, user_account.fullname FROM user_account WHERE user_account.id = ? [...] (4,){stop} diff --git a/doc/build/tutorial/orm_related_objects.rst b/doc/build/tutorial/orm_related_objects.rst index 48e049dd9e..a08b0fb688 100644 --- a/doc/build/tutorial/orm_related_objects.rst +++ b/doc/build/tutorial/orm_related_objects.rst @@ -227,8 +227,7 @@ newly generated primary key for the ``u1`` object: >>> u1.id {execsql}BEGIN (implicit) - SELECT user_account.id AS user_account_id, user_account.name AS user_account_name, - user_account.fullname AS user_account_fullname + SELECT user_account.id, user_account.name, user_account.fullname FROM user_account WHERE user_account.id = ? [...] (6,){stop} diff --git a/lib/sqlalchemy/orm/loading.py b/lib/sqlalchemy/orm/loading.py index f1d90f8d87..9f78711e57 100644 --- a/lib/sqlalchemy/orm/loading.py +++ b/lib/sqlalchemy/orm/loading.py @@ -51,7 +51,6 @@ from ..engine.result import SimpleResultMetaData from ..sql import select from ..sql import util as sql_util from ..sql.selectable import ForUpdateArg -from ..sql.selectable import LABEL_STYLE_TABLENAME_PLUS_COL from ..sql.selectable import SelectState from ..util import EMPTY_DICT from ..util.typing import TupleAny @@ -1671,7 +1670,7 @@ def _load_scalar_attributes(mapper, state, attribute_names, passive): result = _load_on_ident( session, - select(mapper).set_label_style(LABEL_STYLE_TABLENAME_PLUS_COL), + select(mapper), identity_key, refresh_state=state, only_load_props=attribute_names, diff --git a/test/orm/dml/test_update_delete_where.py b/test/orm/dml/test_update_delete_where.py index 05e02a6597..3463fae907 100644 --- a/test/orm/dml/test_update_delete_where.py +++ b/test/orm/dml/test_update_delete_where.py @@ -567,15 +567,15 @@ class UpdateDeleteTest(fixtures.MappedTest): to_assert = [ # refresh john CompiledSQL( - "SELECT users.id AS users_id, users.name AS users_name, " - "users.age_int AS users_age_int FROM users " + "SELECT users.id, users.name, users.age_int " + "FROM users " "WHERE users.id = :pk_1", [{"pk_1": 1}], ), # refresh jill CompiledSQL( - "SELECT users.id AS users_id, users.name AS users_name, " - "users.age_int AS users_age_int FROM users " + "SELECT users.id, users.name, users.age_int " + "FROM users " "WHERE users.id = :pk_1", [{"pk_1": 3}], ), @@ -585,8 +585,8 @@ class UpdateDeleteTest(fixtures.MappedTest): to_assert.append( # refresh jane for partial attributes CompiledSQL( - "SELECT users.name AS users_name, " - "users.age_int AS users_age_int FROM users " + "SELECT users.name, users.age_int " + "FROM users " "WHERE users.id = :pk_1", [{"pk_1": 4}], ) @@ -711,15 +711,15 @@ class UpdateDeleteTest(fixtures.MappedTest): asserter.assert_( # refresh john CompiledSQL( - "SELECT users.id AS users_id, users.name AS users_name, " - "users.age_int AS users_age_int FROM users " + "SELECT users.id, users.name, users.age_int " + "FROM users " "WHERE users.id = :pk_1", [{"pk_1": 1}], ), # refresh jill CompiledSQL( - "SELECT users.id AS users_id, users.name AS users_name, " - "users.age_int AS users_age_int FROM users " + "SELECT users.id, users.name, users.age_int " + "FROM users " "WHERE users.id = :pk_1", [{"pk_1": 3}], ), diff --git a/test/orm/inheritance/test_basic.py b/test/orm/inheritance/test_basic.py index 9028fd25a4..93cf55da30 100644 --- a/test/orm/inheritance/test_basic.py +++ b/test/orm/inheritance/test_basic.py @@ -2875,11 +2875,9 @@ class OptimizedLoadTest(fixtures.MappedTest): testing.db, go, CompiledSQL( - "SELECT base.id AS base_id, sub.id AS sub_id, " - "base.data AS base_data, base.type AS base_type, " - "base.counter AS base_counter, " - "sub.subcounter AS sub_subcounter, " - "sub.sub AS sub_sub, sub.subcounter2 AS sub_subcounter2 " + "SELECT base.id, sub.id AS id_1, " + "base.data, base.type, base.counter, " + "sub.subcounter, sub.sub, sub.subcounter2 " "FROM base LEFT OUTER JOIN sub ON base.id = sub.id " "WHERE base.id = :pk_1", {"pk_1": sjb_id}, @@ -3246,9 +3244,8 @@ class OptimizedLoadTest(fixtures.MappedTest): not eager_defaults and not expect_returning, [ CompiledSQL( - "SELECT base.counter AS base_counter, " - "sub.subcounter AS sub_subcounter, sub.subcounter2 " - "AS sub_subcounter2 FROM base " + "SELECT base.counter, sub.subcounter, sub.subcounter2 " + "FROM base " "JOIN sub ON base.id = sub.id WHERE base.id = :pk_1", lambda ctx: {"pk_1": s1.id}, ) diff --git a/test/orm/test_defaults.py b/test/orm/test_defaults.py index d230d4aafc..09adee59c6 100644 --- a/test/orm/test_defaults.py +++ b/test/orm/test_defaults.py @@ -319,12 +319,12 @@ class ComputedDefaultsOnUpdateTest(fixtures.MappedTest): [{"foo": 5, "id": 1}, {"foo": 10, "id": 2}], ), CompiledSQL( - "SELECT test.bar AS test_bar FROM test " + "SELECT test.bar FROM test " "WHERE test.id = :pk_1", [{"pk_1": 1}], ), CompiledSQL( - "SELECT test.bar AS test_bar FROM test " + "SELECT test.bar FROM test " "WHERE test.id = :pk_1", [{"pk_1": 2}], ), @@ -409,12 +409,12 @@ class ComputedDefaultsOnUpdateTest(fixtures.MappedTest): [{"foo": 5, "test_id": 1}, {"foo": 6, "test_id": 2}], ), CompiledSQL( - "SELECT test.bar AS test_bar FROM test " + "SELECT test.bar FROM test " "WHERE test.id = :pk_1", [{"pk_1": 1}], ), CompiledSQL( - "SELECT test.bar AS test_bar FROM test " + "SELECT test.bar FROM test " "WHERE test.id = :pk_1", [{"pk_1": 2}], ), diff --git a/test/orm/test_deferred.py b/test/orm/test_deferred.py index dbfe3ef797..1361ae488d 100644 --- a/test/orm/test_deferred.py +++ b/test/orm/test_deferred.py @@ -90,7 +90,7 @@ class DeferredTest(AssertsCompiledSQL, _fixtures.FixtureTest): {}, ), ( - "SELECT orders.description AS orders_description " + "SELECT orders.description " "FROM orders WHERE orders.id = :pk_1", {"pk_1": 3}, ), @@ -131,7 +131,7 @@ class DeferredTest(AssertsCompiledSQL, _fixtures.FixtureTest): {}, ), ( - "SELECT orders.description AS orders_description " + "SELECT orders.description " "FROM orders WHERE orders.id = :pk_1", {"pk_1": 3}, ), @@ -383,10 +383,10 @@ class DeferredTest(AssertsCompiledSQL, _fixtures.FixtureTest): {}, ), ( - "SELECT orders.user_id AS orders_user_id, " - "orders.address_id AS orders_address_id, " - "orders.description AS orders_description, " - "orders.isopen AS orders_isopen " + "SELECT orders.user_id, " + "orders.address_id, " + "orders.description, " + "orders.isopen " "FROM orders WHERE orders.id = :pk_1", {"pk_1": 3}, ), @@ -516,7 +516,7 @@ class DeferredOptionsTest(AssertsCompiledSQL, _fixtures.FixtureTest): {}, ), ( - "SELECT orders.user_id AS orders_user_id " + "SELECT orders.user_id " "FROM orders WHERE orders.id = :pk_1", {"pk_1": 1}, ), diff --git a/test/orm/test_dynamic.py b/test/orm/test_dynamic.py index 9378f1ef50..9c69c10db2 100644 --- a/test/orm/test_dynamic.py +++ b/test/orm/test_dynamic.py @@ -1127,7 +1127,7 @@ class _UOWTests: testing.db, sess.flush, CompiledSQL( - "SELECT users.id AS users_id, users.name AS users_name " + "SELECT users.id, users.name " "FROM users WHERE users.id = :pk_1", lambda ctx: [{"pk_1": u1_id}], ), @@ -1160,8 +1160,8 @@ class _UOWTests: testing.db, sess.flush, CompiledSQL( - "SELECT addresses.id AS addresses_id, addresses.email_address " - "AS addresses_email_address FROM addresses " + "SELECT addresses.id, addresses.email_address " + "FROM addresses " "WHERE addresses.id = :pk_1", lambda ctx: [{"pk_1": a2_id}], ), @@ -1171,7 +1171,7 @@ class _UOWTests: lambda ctx: [{"addresses_id": a2_id, "user_id": None}], ), CompiledSQL( - "SELECT users.id AS users_id, users.name AS users_name " + "SELECT users.id, users.name " "FROM users WHERE users.id = :pk_1", lambda ctx: [{"pk_1": u1_id}], ), diff --git a/test/orm/test_merge.py b/test/orm/test_merge.py index 9fb16a2ce1..bec6c4236a 100644 --- a/test/orm/test_merge.py +++ b/test/orm/test_merge.py @@ -2048,12 +2048,12 @@ class DeferredMergeTest(fixtures.MappedTest): go, [ ( - "SELECT book.summary AS book_summary " + "SELECT book.summary " "FROM book WHERE book.id = :pk_1", {"pk_1": 1}, ), ( - "SELECT book.excerpt AS book_excerpt " + "SELECT book.excerpt " "FROM book WHERE book.id = :pk_1", {"pk_1": 1}, ), @@ -2094,12 +2094,12 @@ class DeferredMergeTest(fixtures.MappedTest): go, [ ( - "SELECT book.summary AS book_summary " + "SELECT book.summary " "FROM book WHERE book.id = :pk_1", {"pk_1": 1}, ), ( - "SELECT book.excerpt AS book_excerpt " + "SELECT book.excerpt " "FROM book WHERE book.id = :pk_1", {"pk_1": 1}, ), diff --git a/test/orm/test_unitofworkv2.py b/test/orm/test_unitofworkv2.py index 90ea0eaa03..0a99bca962 100644 --- a/test/orm/test_unitofworkv2.py +++ b/test/orm/test_unitofworkv2.py @@ -381,25 +381,21 @@ class RudimentaryFlushTest(UOWTest): # the User row might be handled before or the addresses # are loaded so need to use AllOf CompiledSQL( - "SELECT addresses.id AS addresses_id, " - "addresses.user_id AS " - "addresses_user_id, addresses.email_address AS " - "addresses_email_address FROM addresses " + "SELECT addresses.id, addresses.user_id, addresses.email_address " + "FROM addresses " "WHERE addresses.id = " ":pk_1", lambda ctx: {"pk_1": c1id}, ), CompiledSQL( - "SELECT addresses.id AS addresses_id, " - "addresses.user_id AS " - "addresses_user_id, addresses.email_address AS " - "addresses_email_address FROM addresses " + "SELECT addresses.id, addresses.user_id, addresses.email_address " + "FROM addresses " "WHERE addresses.id = " ":pk_1", lambda ctx: {"pk_1": c2id}, ), CompiledSQL( - "SELECT users.id AS users_id, users.name AS users_name " + "SELECT users.id, users.name " "FROM users WHERE users.id = :pk_1", lambda ctx: {"pk_1": pid}, ), @@ -457,19 +453,15 @@ class RudimentaryFlushTest(UOWTest): # relationship is simple m2o, no SELECT should be emitted for # it. CompiledSQL( - "SELECT addresses.id AS addresses_id, " - "addresses.user_id AS " - "addresses_user_id, addresses.email_address AS " - "addresses_email_address FROM addresses " + "SELECT addresses.id, addresses.user_id, addresses.email_address " + "FROM addresses " "WHERE addresses.id = " ":pk_1", lambda ctx: {"pk_1": c1id}, ), CompiledSQL( - "SELECT addresses.id AS addresses_id, " - "addresses.user_id AS " - "addresses_user_id, addresses.email_address AS " - "addresses_email_address FROM addresses " + "SELECT addresses.id, addresses.user_id, addresses.email_address " + "FROM addresses " "WHERE addresses.id = " ":pk_1", lambda ctx: {"pk_1": c2id}, @@ -523,19 +515,15 @@ class RudimentaryFlushTest(UOWTest): AllOf( # the parent User is expired, so it gets loaded here. CompiledSQL( - "SELECT addresses.id AS addresses_id, " - "addresses.user_id AS " - "addresses_user_id, addresses.email_address AS " - "addresses_email_address FROM addresses " + "SELECT addresses.id, addresses.user_id, addresses.email_address " + "FROM addresses " "WHERE addresses.id = " ":pk_1", lambda ctx: {"pk_1": c1id}, ), CompiledSQL( - "SELECT addresses.id AS addresses_id, " - "addresses.user_id AS " - "addresses_user_id, addresses.email_address AS " - "addresses_email_address FROM addresses " + "SELECT addresses.id, addresses.user_id, addresses.email_address " + "FROM addresses " "WHERE addresses.id = " ":pk_1", lambda ctx: {"pk_1": c2id}, @@ -1313,23 +1301,20 @@ class SingleCycleTest(UOWTest): # the selects here are in fact unexpiring # each row - the m2o comes from the identity map. CompiledSQL( - "SELECT nodes.id AS nodes_id, nodes.parent_id AS " - "nodes_parent_id, " - "nodes.data AS nodes_data FROM nodes " + "SELECT nodes.id, nodes.parent_id, nodes.data " + "FROM nodes " "WHERE nodes.id = :pk_1", lambda ctx: {"pk_1": pid}, ), CompiledSQL( - "SELECT nodes.id AS nodes_id, nodes.parent_id AS " - "nodes_parent_id, " - "nodes.data AS nodes_data FROM nodes " + "SELECT nodes.id, nodes.parent_id, nodes.data " + "FROM nodes " "WHERE nodes.id = :pk_1", lambda ctx: {"pk_1": c1id}, ), CompiledSQL( - "SELECT nodes.id AS nodes_id, nodes.parent_id AS " - "nodes_parent_id, " - "nodes.data AS nodes_data FROM nodes " + "SELECT nodes.id, nodes.parent_id, nodes.data " + "FROM nodes " "WHERE nodes.id = :pk_1", lambda ctx: {"pk_1": c2id}, ),