(self, legacy)
| 92 | |
| 93 | @testing.combinations(True, False) |
| 94 | def test_from_statement(self, legacy): |
| 95 | users, Address, addresses, User = ( |
| 96 | self.tables.users, |
| 97 | self.classes.Address, |
| 98 | self.tables.addresses, |
| 99 | self.classes.User, |
| 100 | ) |
| 101 | |
| 102 | self.mapper_registry.map_imperatively( |
| 103 | User, |
| 104 | users, |
| 105 | properties={ |
| 106 | "addresses": relationship( |
| 107 | self.mapper_registry.map_imperatively(Address, addresses), |
| 108 | order_by=Address.id, |
| 109 | ) |
| 110 | }, |
| 111 | ) |
| 112 | sess = fixture_session() |
| 113 | |
| 114 | stmt = select(User).where(User.id == 7) |
| 115 | |
| 116 | with self.sql_execution_asserter(testing.db) as asserter: |
| 117 | if legacy: |
| 118 | ret = ( |
| 119 | sess.query(User) |
| 120 | # .where(User.id == 7) |
| 121 | .from_statement(stmt) |
| 122 | .options(subqueryload(User.addresses)) |
| 123 | .all() |
| 124 | ) |
| 125 | else: |
| 126 | ret = sess.scalars( |
| 127 | select(User) |
| 128 | .from_statement(stmt) |
| 129 | .options(subqueryload(User.addresses)) |
| 130 | ).all() |
| 131 | |
| 132 | eq_(self.static.user_address_result[0:1], ret) |
| 133 | |
| 134 | asserter.assert_( |
| 135 | Or( |
| 136 | CompiledSQL( |
| 137 | "SELECT users.id AS users_id, users.name AS users_name " |
| 138 | "FROM users WHERE users.id = :id_1", |
| 139 | [{"id_1": 7}], |
| 140 | ), |
| 141 | CompiledSQL( |
| 142 | "SELECT users.id, users.name " |
| 143 | "FROM users WHERE users.id = :id_1", |
| 144 | [{"id_1": 7}], |
| 145 | ), |
| 146 | ), |
| 147 | # issue 7505 |
| 148 | # subqueryload degrades for a from_statement. this is a lazyload |
| 149 | CompiledSQL( |
| 150 | "SELECT addresses.id, addresses.user_id, " |
| 151 | "addresses.email_address " |
nothing calls this directly
no test coverage detected