diff options
author | Mike Bayer <mike_mp@zzzcomputing.com> | 2010-04-04 11:08:00 -0400 |
---|---|---|
committer | Mike Bayer <mike_mp@zzzcomputing.com> | 2010-04-04 11:08:00 -0400 |
commit | 9916c0412e9442bda386154a3c71c06f4d6944e6 (patch) | |
tree | ce485e22cdf40eb94be80fc917ef5ac1ce940b16 /lib/sqlalchemy/orm/unitofwork.py | |
parent | f05b5b0bda7b21a585f3252016d2e74c361b6233 (diff) | |
download | sqlalchemy-9916c0412e9442bda386154a3c71c06f4d6944e6.tar.gz |
moving the per-states operations to be aggreagted on the endpoints to reduce
procesing overhead.
Diffstat (limited to 'lib/sqlalchemy/orm/unitofwork.py')
-rw-r--r-- | lib/sqlalchemy/orm/unitofwork.py | 16 |
1 files changed, 10 insertions, 6 deletions
diff --git a/lib/sqlalchemy/orm/unitofwork.py b/lib/sqlalchemy/orm/unitofwork.py index c8eca67eb..359e1008b 100644 --- a/lib/sqlalchemy/orm/unitofwork.py +++ b/lib/sqlalchemy/orm/unitofwork.py @@ -338,9 +338,11 @@ class SaveUpdateAll(PostSortRec): ) def per_state_flush_actions(self, uow): - for state in uow.states_for_mapper_hierarchy(self.mapper, False, False): - for rec in self.mapper.per_state_flush_actions(uow, state, False): - yield rec + for rec in self.mapper.per_state_flush_actions( + uow, + uow.states_for_mapper_hierarchy(self.mapper, False, False), + False): + yield rec class DeleteAll(PostSortRec): def __init__(self, uow, mapper): @@ -354,9 +356,11 @@ class DeleteAll(PostSortRec): ) def per_state_flush_actions(self, uow): - for state in uow.states_for_mapper_hierarchy(self.mapper, True, False): - for rec in self.mapper.per_state_flush_actions(uow, state, True): - yield rec + for rec in self.mapper.per_state_flush_actions( + uow, + uow.states_for_mapper_hierarchy(self.mapper, True, False), + True): + yield rec class ProcessState(PostSortRec): def __init__(self, uow, dependency_processor, delete, state): |