summaryrefslogtreecommitdiff
path: root/lib/sqlalchemy
diff options
context:
space:
mode:
authorJason Kirtland <jek@discorporate.us>2008-05-05 17:08:00 +0000
committerJason Kirtland <jek@discorporate.us>2008-05-05 17:08:00 +0000
commit71e266f77e75a72281ccae4557af172595546f88 (patch)
treeb9787857ceba81cd5460313d817889a21a273954 /lib/sqlalchemy
parent18d0066f8fdb5cfa06586cb93205c9c1ec5c7c0a (diff)
downloadsqlalchemy-71e266f77e75a72281ccae4557af172595546f88.tar.gz
Fixed duplicate append event emission on repeated instrumented set.add() operations.
Diffstat (limited to 'lib/sqlalchemy')
-rw-r--r--lib/sqlalchemy/orm/collections.py9
1 files changed, 4 insertions, 5 deletions
diff --git a/lib/sqlalchemy/orm/collections.py b/lib/sqlalchemy/orm/collections.py
index ae4cb65cd..8067a030f 100644
--- a/lib/sqlalchemy/orm/collections.py
+++ b/lib/sqlalchemy/orm/collections.py
@@ -1148,7 +1148,8 @@ def _set_decorators():
def add(fn):
def add(self, value, _sa_initiator=None):
- __set(self, value, _sa_initiator)
+ if value not in self:
+ __set(self, value, _sa_initiator)
# testlib.pragma exempt:__hash__
fn(self, value)
_tidy(add)
@@ -1201,8 +1202,7 @@ def _set_decorators():
def update(fn):
def update(self, value):
for item in value:
- if item not in self:
- self.add(item)
+ self.add(item)
_tidy(update)
return update
@@ -1211,8 +1211,7 @@ def _set_decorators():
if sautil.duck_type_collection(value) is not Set:
return NotImplemented
for item in value:
- if item not in self:
- self.add(item)
+ self.add(item)
return self
_tidy(__ior__)
return __ior__