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

Method _set_parent

lib/sqlalchemy/sql/schema.py:5294–5320  ·  view source on GitHub ↗
(self, parent: SchemaEventTarget, **kw: Any)

Source from the content-addressed store, hash-verified

5292 self._set_parent(table)
5293
5294 def _set_parent(self, parent: SchemaEventTarget, **kw: Any) -> None:
5295 table = parent
5296 assert isinstance(table, Table)
5297 ColumnCollectionMixin._set_parent(self, table)
5298
5299 if self.table is not None and table is not self.table:
5300 raise exc.ArgumentError(
5301 f"Index '{self.name}' is against table "
5302 f"'{self.table.description}', and "
5303 f"cannot be associated with table '{table.description}'."
5304 )
5305 self.table = table
5306 table.indexes.add(self)
5307
5308 expressions = self.expressions
5309 col_expressions = self._col_expressions(table)
5310 assert len(expressions) == len(col_expressions)
5311
5312 exprs = []
5313 for expr, colexpr in zip(expressions, col_expressions):
5314 if isinstance(expr, ClauseElement):
5315 exprs.append(expr)
5316 elif colexpr is not None:
5317 exprs.append(colexpr)
5318 else:
5319 assert False
5320 self.expressions = self._table_bound_expressions = exprs
5321
5322 def create(self, bind: _CreateDropBind, checkfirst: bool = False) -> None:
5323 """Issue a ``CREATE`` statement for this

Callers 1

__init__Method · 0.95

Calls 4

_col_expressionsMethod · 0.80
_set_parentMethod · 0.45
addMethod · 0.45
appendMethod · 0.45

Tested by

no test coverage detected