diff options
author | Mike Bayer <mike_mp@zzzcomputing.com> | 2009-12-08 03:09:18 +0000 |
---|---|---|
committer | Mike Bayer <mike_mp@zzzcomputing.com> | 2009-12-08 03:09:18 +0000 |
commit | d39a15748948904d5d45a3a6ee798b8b799b9311 (patch) | |
tree | 47fd0f112e62b299cf917710f194f5fa6c2a4d94 /lib/sqlalchemy/sql/util.py | |
parent | 358bc9db1c86fc26d89ed726305a109af14e2572 (diff) | |
download | sqlalchemy-d39a15748948904d5d45a3a6ee798b8b799b9311.tar.gz |
- Session.execute() now locates table- and
mapper-specific binds based on a passed
in expression which is an insert()/update()/delete()
construct. [ticket:1054]
Diffstat (limited to 'lib/sqlalchemy/sql/util.py')
-rw-r--r-- | lib/sqlalchemy/sql/util.py | 10 |
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) |