441 self._query_cache.clear() |
441 self._query_cache.clear() |
442 entity.cw_clear_all_caches() |
442 entity.cw_clear_all_caches() |
443 |
443 |
444 def delete_entity(self, session, entity): |
444 def delete_entity(self, session, entity): |
445 """delete an entity from the source""" |
445 """delete an entity from the source""" |
|
446 if session.deleted_in_transaction (self.eid): |
|
447 # source is being deleted, don't propagate |
|
448 self._query_cache.clear() |
|
449 return |
446 cu = session.cnxset[self.uri] |
450 cu = session.cnxset[self.uri] |
447 cu.execute('DELETE %s X WHERE X eid %%(x)s' % entity.__regid__, |
451 cu.execute('DELETE %s X WHERE X eid %%(x)s' % entity.__regid__, |
448 {'x': self.eid2extid(entity.eid, session)}) |
452 {'x': self.eid2extid(entity.eid, session)}) |
449 self._query_cache.clear() |
453 self._query_cache.clear() |
450 |
454 |
458 session.entity_from_eid(subject).cw_clear_all_caches() |
462 session.entity_from_eid(subject).cw_clear_all_caches() |
459 session.entity_from_eid(object).cw_clear_all_caches() |
463 session.entity_from_eid(object).cw_clear_all_caches() |
460 |
464 |
461 def delete_relation(self, session, subject, rtype, object): |
465 def delete_relation(self, session, subject, rtype, object): |
462 """delete a relation from the source""" |
466 """delete a relation from the source""" |
|
467 if session.deleted_in_transaction (self.eid): |
|
468 # source is being deleted, don't propagate |
|
469 self._query_cache.clear() |
|
470 return |
463 cu = session.cnxset[self.uri] |
471 cu = session.cnxset[self.uri] |
464 cu.execute('DELETE X %s Y WHERE X eid %%(x)s, Y eid %%(y)s' % rtype, |
472 cu.execute('DELETE X %s Y WHERE X eid %%(x)s, Y eid %%(y)s' % rtype, |
465 {'x': self.eid2extid(subject, session), |
473 {'x': self.eid2extid(subject, session), |
466 'y': self.eid2extid(object, session)}) |
474 'y': self.eid2extid(object, session)}) |
467 self._query_cache.clear() |
475 self._query_cache.clear() |