server/sources/pyrorql.py
changeset 7650 278fe9c1f3ad
parent 7536 29961a416faa
child 7697 ef50074a0314
equal deleted inserted replaced
7649:ede740bd7077 7650:278fe9c1f3ad
   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()