MCPcopy
hub / github.com/sqlalchemy/sqlalchemy / visit_table

Method visit_table

lib/sqlalchemy/sql/ddl.py:1663–1696  ·  view source on GitHub ↗
(
        self,
        table,
        drop_ok=False,
        _is_metadata_operation=False,
        _ignore_sequences=(),
    )

Source from the content-addressed store, hash-verified

1661 DropIndex(index)(index, self.connection)
1662
1663 def visit_table(
1664 self,
1665 table,
1666 drop_ok=False,
1667 _is_metadata_operation=False,
1668 _ignore_sequences=(),
1669 ):
1670 if not drop_ok and not self._can_drop_table(table):
1671 return
1672
1673 with self.with_ddl_events(
1674 table,
1675 checkfirst=self.checkfirst,
1676 _is_metadata_operation=_is_metadata_operation,
1677 ):
1678 if table._dropper_ddl is not None:
1679 table_dropper_ddl = table._dropper_ddl
1680 else:
1681 table_dropper_ddl = DropTable(table)
1682 table_dropper_ddl._invoke_with(self.connection)
1683
1684 # traverse client side defaults which may refer to server-side
1685 # sequences. noting that some of these client side defaults may
1686 # also be set up as server side defaults
1687 # (see https://docs.sqlalchemy.org/en/
1688 # latest/core/defaults.html
1689 # #associating-a-sequence-as-the-server-side-
1690 # default), so have to be dropped after the table is dropped.
1691 for column in table.columns:
1692 if (
1693 column.default is not None
1694 and column.default not in _ignore_sequences
1695 ):
1696 self.traverse_single(column.default)
1697
1698 def visit_foreign_key_constraint(self, constraint):
1699 if not self.dialect.supports_alter:

Callers 1

compile_tableMethod · 0.45

Calls 5

_can_drop_tableMethod · 0.95
DropTableClass · 0.85
_invoke_withMethod · 0.80
traverse_singleMethod · 0.80
with_ddl_eventsMethod · 0.45

Tested by 1

compile_tableMethod · 0.36