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

Method visit_delete

lib/sqlalchemy/sql/compiler.py:6500–6629  ·  view source on GitHub ↗
(self, delete_stmt, visiting_cte=None, **kw)

Source from the content-addressed store, hash-verified

6498 )
6499
6500 def visit_delete(self, delete_stmt, visiting_cte=None, **kw):
6501 compile_state = delete_stmt._compile_state_factory(
6502 delete_stmt, self, **kw
6503 )
6504 delete_stmt = compile_state.statement
6505
6506 if visiting_cte is not None:
6507 kw["visiting_cte"] = visiting_cte
6508 toplevel = False
6509 else:
6510 toplevel = not self.stack
6511
6512 if toplevel:
6513 self.isdelete = True
6514 if not self.dml_compile_state:
6515 self.dml_compile_state = compile_state
6516 if not self.compile_state:
6517 self.compile_state = compile_state
6518
6519 if self.linting & COLLECT_CARTESIAN_PRODUCTS:
6520 from_linter = FromLinter({}, set())
6521 warn_linting = self.linting & WARN_LINTING
6522 if toplevel:
6523 self.from_linter = from_linter
6524 else:
6525 from_linter = None
6526 warn_linting = False
6527
6528 extra_froms = compile_state._extra_froms
6529
6530 correlate_froms = {delete_stmt.table}.union(extra_froms)
6531 self.stack.append(
6532 {
6533 "correlate_froms": correlate_froms,
6534 "asfrom_froms": correlate_froms,
6535 "selectable": delete_stmt,
6536 }
6537 )
6538
6539 text = "DELETE "
6540
6541 if delete_stmt._prefixes:
6542 text += self._generate_prefixes(
6543 delete_stmt, delete_stmt._prefixes, **kw
6544 )
6545
6546 text += "FROM "
6547
6548 try:
6549 table_text = self.delete_table_clause(
6550 delete_stmt,
6551 delete_stmt.table,
6552 extra_froms,
6553 from_linter=from_linter,
6554 )
6555 except TypeError:
6556 # anticipate 3rd party dialects that don't include **kw
6557 # TODO: remove in 2.1

Callers

nothing calls this directly

Calls 15

_generate_prefixesMethod · 0.95
delete_table_clauseMethod · 0.95
_setup_crud_hintsMethod · 0.95
returning_clauseMethod · 0.95
delete_limit_clauseMethod · 0.95
_render_cte_clauseMethod · 0.95
warnMethod · 0.95
FromLinterClass · 0.85
unionMethod · 0.45

Tested by

no test coverage detected