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,)
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,)
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,)
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,)
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')
>>> 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}
.. 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,)
>>> 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}
>>> 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}
>>> 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}
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
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,
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}],
),
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}],
)
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}],
),
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},
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},
)
[{"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}],
),
[{"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}],
),
{},
),
(
- "SELECT orders.description AS orders_description "
+ "SELECT orders.description "
"FROM orders WHERE orders.id = :pk_1",
{"pk_1": 3},
),
{},
),
(
- "SELECT orders.description AS orders_description "
+ "SELECT orders.description "
"FROM orders WHERE orders.id = :pk_1",
{"pk_1": 3},
),
{},
),
(
- "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},
),
{},
),
(
- "SELECT orders.user_id AS orders_user_id "
+ "SELECT orders.user_id "
"FROM orders WHERE orders.id = :pk_1",
{"pk_1": 1},
),
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}],
),
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}],
),
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}],
),
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},
),
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},
),
# 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},
),
# 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},
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},
# 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},
),