summaryrefslogtreecommitdiff
path: root/lib/sqlalchemy/orm/dependency.py
diff options
context:
space:
mode:
authorMike Bayer <mike_mp@zzzcomputing.com>2011-01-04 10:55:46 -0500
committerMike Bayer <mike_mp@zzzcomputing.com>2011-01-04 10:55:46 -0500
commit848a56ea57154c65943d1efd278c78e36500fb28 (patch)
treed6cff23205e8463c7e20b0c6367c7ead573628ee /lib/sqlalchemy/orm/dependency.py
parent6e023b16653b0a2e355a1858d57ff01d38ab05dc (diff)
downloadsqlalchemy-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.py17
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 \