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 |