MCPcopy Create free account
hub / github.com/sqlalchemy/sqlalchemy / _populate_column_collection

Method _populate_column_collection

lib/sqlalchemy/sql/selectable.py:1341–1362  ·  view source on GitHub ↗
(
        self,
        columns: ColumnCollection[str, KeyedColumnElement[Any]],
        primary_key: ColumnSet,
        foreign_keys: Set[KeyedColumnElement[Any]],
    )

Source from the content-addressed store, hash-verified

1339
1340 @util.preload_module("sqlalchemy.sql.util")
1341 def _populate_column_collection(
1342 self,
1343 columns: ColumnCollection[str, KeyedColumnElement[Any]],
1344 primary_key: ColumnSet,
1345 foreign_keys: Set[KeyedColumnElement[Any]],
1346 ) -> None:
1347 sqlutil = util.preloaded.sql_util
1348 _columns: List[KeyedColumnElement[Any]] = [c for c in self.left.c] + [
1349 c for c in self.right.c
1350 ]
1351
1352 primary_key.extend(
1353 sqlutil.reduce_columns(
1354 (c for c in _columns if c.primary_key), self.onclause
1355 )
1356 )
1357 columns._populate_separate_keys(
1358 (col._tq_key_label, col) for col in _columns # type: ignore
1359 )
1360 foreign_keys.update(
1361 itertools.chain(*[col.foreign_keys for col in _columns]) # type: ignore # noqa: E501
1362 )
1363
1364 def _copy_internals(
1365 self, clone: _CloneCallableType = _clone, **kw: Any

Callers

nothing calls this directly

Calls 5

reduce_columnsMethod · 0.80
extendMethod · 0.45
updateMethod · 0.45
chainMethod · 0.45

Tested by

no test coverage detected