server/sources/pyrorql.py
branchtls-sprint
changeset 1805 7bad2785d167
parent 1791 c77629112437
child 1952 8e19c813750d
equal deleted inserted replaced
1804:1ce3474dac43 1805:7bad2785d167
   340         """update an entity in the source"""
   340         """update an entity in the source"""
   341         relations, kwargs = self._entity_relations_and_kwargs(session, entity)
   341         relations, kwargs = self._entity_relations_and_kwargs(session, entity)
   342         cu = session.pool[self.uri]
   342         cu = session.pool[self.uri]
   343         cu.execute('SET %s WHERE X eid %%(x)s' % ','.join(relations),
   343         cu.execute('SET %s WHERE X eid %%(x)s' % ','.join(relations),
   344                    kwargs, 'x')
   344                    kwargs, 'x')
       
   345         self._query_cache.clear()
   345 
   346 
   346     def delete_entity(self, session, etype, eid):
   347     def delete_entity(self, session, etype, eid):
   347         """delete an entity from the source"""
   348         """delete an entity from the source"""
   348         cu = session.pool[self.uri]
   349         cu = session.pool[self.uri]
   349         cu.execute('DELETE %s X WHERE X eid %%(x)s' % etype,
   350         cu.execute('DELETE %s X WHERE X eid %%(x)s' % etype,
   350                    {'x': self.eid2extid(eid, session)}, 'x')
   351                    {'x': self.eid2extid(eid, session)}, 'x')
       
   352         self._query_cache.clear()
   351 
   353 
   352     def add_relation(self, session, subject, rtype, object):
   354     def add_relation(self, session, subject, rtype, object):
   353         """add a relation to the source"""
   355         """add a relation to the source"""
   354         cu = session.pool[self.uri]
   356         cu = session.pool[self.uri]
   355         cu.execute('SET X %s Y WHERE X eid %%(x)s, Y eid %%(y)s' % rtype,
   357         cu.execute('SET X %s Y WHERE X eid %%(x)s, Y eid %%(y)s' % rtype,
   356                    {'x': self.eid2extid(subject, session),
   358                    {'x': self.eid2extid(subject, session),
   357                     'y': self.eid2extid(object, session)}, ('x', 'y'))
   359                     'y': self.eid2extid(object, session)}, ('x', 'y'))
       
   360         self._query_cache.clear()
   358 
   361 
   359     def delete_relation(self, session, subject, rtype, object):
   362     def delete_relation(self, session, subject, rtype, object):
   360         """delete a relation from the source"""
   363         """delete a relation from the source"""
   361         cu = session.pool[self.uri]
   364         cu = session.pool[self.uri]
   362         cu.execute('DELETE X %s Y WHERE X eid %%(x)s, Y eid %%(y)s' % rtype,
   365         cu.execute('DELETE X %s Y WHERE X eid %%(x)s, Y eid %%(y)s' % rtype,
   363                    {'x': self.eid2extid(subject, session),
   366                    {'x': self.eid2extid(subject, session),
   364                     'y': self.eid2extid(object, session)}, ('x', 'y'))
   367                     'y': self.eid2extid(object, session)}, ('x', 'y'))
       
   368         self._query_cache.clear()
   365 
   369 
   366 
   370 
   367 class RQL2RQL(object):
   371 class RQL2RQL(object):
   368     """translate a local rql query to be executed on a distant repository"""
   372     """translate a local rql query to be executed on a distant repository"""
   369     def __init__(self, source):
   373     def __init__(self, source):