--- a/server/schemahooks.py Thu Oct 01 16:06:29 2009 +0200
+++ b/server/schemahooks.py Fri Oct 02 08:57:07 2009 +0200
@@ -812,14 +812,15 @@
"""
subjschema, rschema, objschema = session.schema.schema_by_eid(rdefeid)
pendings = session.transaction_data.get('pendingeids', ())
+ pendingrdefs = session.transaction_data.setdefault('pendingrdefs', set())
# first delete existing relation if necessary
if rschema.is_final():
rdeftype = 'CWAttribute'
+ pendingrdefs.add((subjschema, rschema))
else:
rdeftype = 'CWRelation'
+ pendingrdefs.add((subjschema, rschema, objschema))
if not (subjschema.eid in pendings or objschema.eid in pendings):
- pending = session.transaction_data.setdefault('pendingrdefs', set())
- pending.add((subjschema, rschema, objschema))
session.execute('DELETE X %s Y WHERE X is %s, Y is %s'
% (rschema, subjschema, objschema))
execute = session.unsafe_execute