909 ss.execschemarql(execute, rschema, ss.rschema2rql(rschema, addrdef=False)) |
909 ss.execschemarql(execute, rschema, ss.rschema2rql(rschema, addrdef=False)) |
910 if addrdef: |
910 if addrdef: |
911 self.commit() |
911 self.commit() |
912 gmap = self.group_mapping() |
912 gmap = self.group_mapping() |
913 cmap = self.cstrtype_mapping() |
913 cmap = self.cstrtype_mapping() |
|
914 done = set() |
914 for rdef in rschema.rdefs.itervalues(): |
915 for rdef in rschema.rdefs.itervalues(): |
915 if not (reposchema.has_entity(rdef.subject) |
916 if not (reposchema.has_entity(rdef.subject) |
916 and reposchema.has_entity(rdef.object)): |
917 and reposchema.has_entity(rdef.object)): |
917 continue |
918 continue |
|
919 # symmetric relations appears twice |
|
920 if (rdef.subject, rdef.object) in done: |
|
921 continue |
|
922 done.add( (rdef.subject, rdef.object) ) |
918 self._set_rdef_eid(rdef) |
923 self._set_rdef_eid(rdef) |
919 ss.execschemarql(execute, rdef, |
924 ss.execschemarql(execute, rdef, |
920 ss.rdef2rql(rdef, cmap, gmap)) |
925 ss.rdef2rql(rdef, cmap, gmap)) |
921 if rtype in META_RTYPES: |
926 if rtype in META_RTYPES: |
922 # if the relation is in META_RTYPES, ensure we're adding it for |
927 # if the relation is in META_RTYPES, ensure we're adding it for |