diff -r c02583cb80a9 -r 9f9bfbcdecfd server/sources/native.py --- a/server/sources/native.py Fri Mar 05 17:24:01 2010 +0100 +++ b/server/sources/native.py Fri Mar 05 18:07:39 2010 +0100 @@ -386,7 +386,8 @@ def update_entity(self, session, entity): """replace an entity in the source""" attrs = self.preprocess_entity(entity) - sql = self.sqlgen.update(SQL_PREFIX + str(entity.e_schema), attrs, [SQL_PREFIX + 'eid']) + sql = self.sqlgen.update(SQL_PREFIX + str(entity.e_schema), attrs, + [SQL_PREFIX + 'eid']) self.doexec(session, sql, attrs) def delete_entity(self, session, etype, eid): @@ -395,10 +396,16 @@ sql = self.sqlgen.delete(SQL_PREFIX + etype, attrs) self.doexec(session, sql, attrs) - def add_relation(self, session, subject, rtype, object): + def add_relation(self, session, subject, rtype, object, inlined=False): """add a relation to the source""" - attrs = {'eid_from': subject, 'eid_to': object} - sql = self.sqlgen.insert('%s_relation' % rtype, attrs) + if inlined is False: + attrs = {'eid_from': subject, 'eid_to': object} + sql = self.sqlgen.insert('%s_relation' % rtype, attrs) + else: # used by data import + etype = session.describe(subject)[0] + attrs = {SQL_PREFIX + 'eid': subject, SQL_PREFIX + rtype: object} + sql = self.sqlgen.update(SQL_PREFIX + etype, attrs, + [SQL_PREFIX + 'eid']) self.doexec(session, sql, attrs) def delete_relation(self, session, subject, rtype, object):