diff options
| author | Mike Bayer <mike_mp@zzzcomputing.com> | 2011-01-04 10:55:46 -0500 |
|---|---|---|
| committer | Mike Bayer <mike_mp@zzzcomputing.com> | 2011-01-04 10:55:46 -0500 |
| commit | 848a56ea57154c65943d1efd278c78e36500fb28 (patch) | |
| tree | d6cff23205e8463c7e20b0c6367c7ead573628ee /lib/sqlalchemy/orm/dependency.py | |
| parent | 6e023b16653b0a2e355a1858d57ff01d38ab05dc (diff) | |
| download | sqlalchemy-848a56ea57154c65943d1efd278c78e36500fb28.tar.gz | |
- Fixed bug whereby "passive_deletes='all'" wasn't passing
the correct symbols to lazy loaders during flush, thereby
causing an unwarranted load. [ticket:2013]
Diffstat (limited to 'lib/sqlalchemy/orm/dependency.py')
| -rw-r--r-- | lib/sqlalchemy/orm/dependency.py | 17 |
1 files changed, 10 insertions, 7 deletions
diff --git a/lib/sqlalchemy/orm/dependency.py b/lib/sqlalchemy/orm/dependency.py index 8acf77ad8..e3e2f5d56 100644 --- a/lib/sqlalchemy/orm/dependency.py +++ b/lib/sqlalchemy/orm/dependency.py @@ -26,6 +26,9 @@ class DependencyProcessor(object): self.passive_deletes = prop.passive_deletes self.passive_updates = prop.passive_updates self.enable_typechecks = prop.enable_typechecks + self._passive_delete_flag = self.passive_deletes and \ + attributes.PASSIVE_NO_INITIALIZE or \ + attributes.PASSIVE_OFF self.key = prop.key if not self.prop.synchronize_pairs: raise sa_exc.ArgumentError( @@ -390,7 +393,7 @@ class OneToManyDP(DependencyProcessor): history = uowcommit.get_attribute_history( state, self.key, - passive=self.passive_deletes) + passive=self._passive_delete_flag) if history: for child in history.deleted: if child is not None and self.hasparent(child) is False: @@ -466,7 +469,7 @@ class OneToManyDP(DependencyProcessor): history = uowcommit.get_attribute_history( state, self.key, - passive=self.passive_deletes) + passive=self._passive_delete_flag) if history: for child in history.deleted: if child is not None and \ @@ -646,7 +649,7 @@ class ManyToOneDP(DependencyProcessor): history = uowcommit.get_attribute_history( state, self.key, - passive=self.passive_deletes) + passive=self._passive_delete_flag) if history: if self.cascade.delete_orphan: todelete = history.sum() @@ -669,7 +672,7 @@ class ManyToOneDP(DependencyProcessor): history = uowcommit.get_attribute_history( state, self.key, - passive=self.passive_deletes) + passive=self._passive_delete_flag) if history: ret = True for child in history.deleted: @@ -697,7 +700,7 @@ class ManyToOneDP(DependencyProcessor): history = uowcommit.get_attribute_history( state, self.key, - passive=self.passive_deletes) + passive=self._passive_delete_flag) if history: self._post_update(state, uowcommit, history.sum()) @@ -906,7 +909,7 @@ class ManyToManyDP(DependencyProcessor): history = uowcommit.get_attribute_history( state, self.key, - passive=self.passive_deletes) + passive=self._passive_delete_flag) def presort_saves(self, uowcommit, states): if not self.passive_updates: @@ -954,7 +957,7 @@ class ManyToManyDP(DependencyProcessor): history = uowcommit.get_attribute_history( state, self.key, - passive=self.passive_deletes) + passive=self._passive_delete_flag) if history: for child in history.non_added(): if child is None or \ |
