(self, parent: SchemaEventTarget, **kw: Any)
| 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 |
no test coverage detected