misc/migration/3.10.4_Any.py
author Florent Cayre <florent.cayre@logilab.fr>
Mon, 15 Jul 2013 10:40:49 +0200
branchstable
changeset 9152 b0155bfd4e17
parent 6702 dfc19a6fb8aa
permissions -rw-r--r--
Protect against crash in the `relation_possible` predicate with ambiguous relations. It was still possible to get a KeyError when using relations that are ambiguous at both ends, like (Executable, version_of, Program) & (Version, version_of, Project). Closes #3010148.

for eschema in schema.entities():
    if not (eschema.final or 'cw_source' in eschema.subjrels):
        add_relation_definition(eschema.type, 'cw_source', 'CWSource', ask_confirm=False)

sql('INSERT INTO cw_source_relation(eid_from, eid_to) '
    'SELECT e.eid,s.cw_eid FROM entities as e, cw_CWSource as s '
    'WHERE s.cw_name=e.source AND NOT EXISTS(SELECT 1 FROM cw_source_relation WHERE eid_from=e.eid AND eid_to=s.cw_eid)')
commit()