server/sources/pyrorql.py
changeset 5363 d336476dcf57
parent 5323 329b4f6d18b4
child 5423 e15abfdcce38
equal deleted inserted replaced
5361:8b052b3f4f90 5363:d336476dcf57
   344 
   344 
   345     def update_entity(self, session, entity):
   345     def update_entity(self, session, entity):
   346         """update an entity in the source"""
   346         """update an entity in the source"""
   347         relations, kwargs = self._entity_relations_and_kwargs(session, entity)
   347         relations, kwargs = self._entity_relations_and_kwargs(session, entity)
   348         cu = session.pool[self.uri]
   348         cu = session.pool[self.uri]
   349         cu.execute('SET %s WHERE X eid %%(x)s' % ','.join(relations),
   349         cu.execute('SET %s WHERE X eid %%(x)s' % ','.join(relations), kwargs)
   350                    kwargs, 'x')
       
   351         self._query_cache.clear()
   350         self._query_cache.clear()
   352         entity.clear_all_caches()
   351         entity.clear_all_caches()
   353 
   352 
   354     def delete_entity(self, session, entity):
   353     def delete_entity(self, session, entity):
   355         """delete an entity from the source"""
   354         """delete an entity from the source"""
   356         cu = session.pool[self.uri]
   355         cu = session.pool[self.uri]
   357         cu.execute('DELETE %s X WHERE X eid %%(x)s' % entity.__regid__,
   356         cu.execute('DELETE %s X WHERE X eid %%(x)s' % entity.__regid__,
   358                    {'x': self.eid2extid(entity.eid, session)}, 'x')
   357                    {'x': self.eid2extid(entity.eid, session)})
   359         self._query_cache.clear()
   358         self._query_cache.clear()
   360 
   359 
   361     def add_relation(self, session, subject, rtype, object):
   360     def add_relation(self, session, subject, rtype, object):
   362         """add a relation to the source"""
   361         """add a relation to the source"""
   363         cu = session.pool[self.uri]
   362         cu = session.pool[self.uri]
   364         cu.execute('SET X %s Y WHERE X eid %%(x)s, Y eid %%(y)s' % rtype,
   363         cu.execute('SET X %s Y WHERE X eid %%(x)s, Y eid %%(y)s' % rtype,
   365                    {'x': self.eid2extid(subject, session),
   364                    {'x': self.eid2extid(subject, session),
   366                     'y': self.eid2extid(object, session)}, ('x', 'y'))
   365                     'y': self.eid2extid(object, session)})
   367         self._query_cache.clear()
   366         self._query_cache.clear()
   368         session.entity_from_eid(subject).clear_all_caches()
   367         session.entity_from_eid(subject).clear_all_caches()
   369         session.entity_from_eid(object).clear_all_caches()
   368         session.entity_from_eid(object).clear_all_caches()
   370 
   369 
   371     def delete_relation(self, session, subject, rtype, object):
   370     def delete_relation(self, session, subject, rtype, object):
   372         """delete a relation from the source"""
   371         """delete a relation from the source"""
   373         cu = session.pool[self.uri]
   372         cu = session.pool[self.uri]
   374         cu.execute('DELETE X %s Y WHERE X eid %%(x)s, Y eid %%(y)s' % rtype,
   373         cu.execute('DELETE X %s Y WHERE X eid %%(x)s, Y eid %%(y)s' % rtype,
   375                    {'x': self.eid2extid(subject, session),
   374                    {'x': self.eid2extid(subject, session),
   376                     'y': self.eid2extid(object, session)}, ('x', 'y'))
   375                     'y': self.eid2extid(object, session)})
   377         self._query_cache.clear()
   376         self._query_cache.clear()
   378         session.entity_from_eid(subject).clear_all_caches()
   377         session.entity_from_eid(subject).clear_all_caches()
   379         session.entity_from_eid(object).clear_all_caches()
   378         session.entity_from_eid(object).clear_all_caches()
   380 
   379 
   381 
   380