MCPcopy Create free account
hub / github.com/zzzeek/sqlalchemy / _setup_for_generate

Method _setup_for_generate

lib/sqlalchemy/orm/context.py:1282–1422  ·  view source on GitHub ↗
(self)

Source from the content-addressed store, hash-verified

1280 print(f" {self.attributes[key]}")
1281
1282 def _setup_for_generate(self):
1283 query = self.select_statement
1284
1285 self.statement = None
1286 self._join_entities = ()
1287
1288 if self.compile_options._set_base_alias:
1289 # legacy Query only
1290 self._set_select_from_alias()
1291
1292 for memoized_entities in query._memoized_select_entities:
1293 if memoized_entities._setup_joins:
1294 self._join(
1295 memoized_entities._setup_joins,
1296 self._memoized_entities[memoized_entities],
1297 )
1298
1299 if query._setup_joins:
1300 self._join(query._setup_joins, self._entities)
1301
1302 current_adapter = self._get_current_adapter()
1303
1304 if query._where_criteria:
1305 self._where_criteria = query._where_criteria
1306
1307 if current_adapter:
1308 self._where_criteria = tuple(
1309 current_adapter(crit, True)
1310 for crit in self._where_criteria
1311 )
1312
1313 # TODO: some complexity with order_by here was due to mapper.order_by.
1314 # now that this is removed we can hopefully make order_by /
1315 # group_by act identically to how they are in Core select.
1316 self.order_by = (
1317 self._adapt_col_list(query._order_by_clauses, current_adapter)
1318 if current_adapter and query._order_by_clauses not in (None, False)
1319 else query._order_by_clauses
1320 )
1321
1322 if query._having_criteria:
1323 self._having_criteria = tuple(
1324 current_adapter(crit, True) if current_adapter else crit
1325 for crit in query._having_criteria
1326 )
1327
1328 self.group_by = (
1329 self._adapt_col_list(
1330 util.flatten_iterator(query._group_by_clauses), current_adapter
1331 )
1332 if current_adapter and query._group_by_clauses not in (None, False)
1333 else query._group_by_clauses or None
1334 )
1335
1336 if self.eager_order_by:
1337 adapter = self.from_clauses[0]._target_adapter
1338 self.eager_order_by = adapter.copy_and_process(self.eager_order_by)
1339

Callers 1

_create_orm_contextMethod · 0.95

Calls 13

_joinMethod · 0.95
_get_current_adapterMethod · 0.95
_adapt_col_listMethod · 0.95
_simple_statementMethod · 0.95
_mapper_zeroMethod · 0.95
copy_and_processMethod · 0.80
itemsMethod · 0.45
setup_compile_stateMethod · 0.45

Tested by

no test coverage detected