summaryrefslogtreecommitdiff
path: root/lib/sqlalchemy/sql/util.py
diff options
context:
space:
mode:
Diffstat (limited to 'lib/sqlalchemy/sql/util.py')
-rw-r--r--lib/sqlalchemy/sql/util.py10
1 files changed, 8 insertions, 2 deletions
diff --git a/lib/sqlalchemy/sql/util.py b/lib/sqlalchemy/sql/util.py
index 78160ad1e..075d8c7ef 100644
--- a/lib/sqlalchemy/sql/util.py
+++ b/lib/sqlalchemy/sql/util.py
@@ -47,7 +47,9 @@ def find_join_source(clauses, join_to):
return None, None
-def find_tables(clause, check_columns=False, include_aliases=False, include_joins=False, include_selects=False):
+def find_tables(clause, check_columns=False,
+ include_aliases=False, include_joins=False,
+ include_selects=False, include_crud=False):
"""locate Table objects within the given expression."""
tables = []
@@ -61,7 +63,11 @@ def find_tables(clause, check_columns=False, include_aliases=False, include_join
if include_aliases:
_visitors['alias'] = tables.append
-
+
+ if include_crud:
+ _visitors['insert'] = _visitors['update'] = \
+ _visitors['delete'] = lambda ent: tables.append(ent.table)
+
if check_columns:
def visit_column(column):
tables.append(column.table)