969 self._sql = threading.local() |
969 self._sql = threading.local() |
970 # Explicitely backport attributes from system source |
970 # Explicitely backport attributes from system source |
971 self._storage_handler = self.system_source._storage_handler |
971 self._storage_handler = self.system_source._storage_handler |
972 self.preprocess_entity = self.system_source.preprocess_entity |
972 self.preprocess_entity = self.system_source.preprocess_entity |
973 self.sqlgen = self.system_source.sqlgen |
973 self.sqlgen = self.system_source.sqlgen |
974 self.copy_based_source = self.system_source.copy_based_source |
|
975 self.uri = self.system_source.uri |
974 self.uri = self.system_source.uri |
976 self.eid = self.system_source.eid |
975 self.eid = self.system_source.eid |
977 # Directory to write temporary files |
976 # Directory to write temporary files |
978 self.dump_output_dir = dump_output_dir |
977 self.dump_output_dir = dump_output_dir |
979 # Allow to execute code with SQLite backend that does |
978 # Allow to execute code with SQLite backend that does |
1123 """add type and source info for an eid into the system table""" |
1122 """add type and source info for an eid into the system table""" |
1124 # begin by inserting eid/type/source/extid into the entities table |
1123 # begin by inserting eid/type/source/extid into the entities table |
1125 if extid is not None: |
1124 if extid is not None: |
1126 assert isinstance(extid, str) |
1125 assert isinstance(extid, str) |
1127 extid = b64encode(extid) |
1126 extid = b64encode(extid) |
1128 uri = 'system' if source.copy_based_source else source.uri |
|
1129 attrs = {'type': entity.cw_etype, 'eid': entity.eid, 'extid': extid, |
1127 attrs = {'type': entity.cw_etype, 'eid': entity.eid, 'extid': extid, |
1130 'source': uri, 'asource': source.uri, 'mtime': datetime.utcnow()} |
1128 'source': 'system', 'asource': source.uri, 'mtime': datetime.utcnow()} |
1131 self._handle_insert_entity_sql(session, self.sqlgen.insert('entities', attrs), attrs) |
1129 self._handle_insert_entity_sql(session, self.sqlgen.insert('entities', attrs), attrs) |
1132 # insert core relations: is, is_instance_of and cw_source |
1130 # insert core relations: is, is_instance_of and cw_source |
1133 try: |
1131 try: |
1134 self._handle_is_relation_sql(session, 'INSERT INTO is_relation(eid_from,eid_to) VALUES (%s,%s)', |
1132 self._handle_is_relation_sql(session, 'INSERT INTO is_relation(eid_from,eid_to) VALUES (%s,%s)', |
1135 (entity.eid, eschema_eid(session, entity.e_schema))) |
1133 (entity.eid, eschema_eid(session, entity.e_schema))) |