misc/migration/3.3.5_Any.py
author Florent Cayre <florent.cayre@logilab.fr>
Mon, 15 Jul 2013 10:40:49 +0200
branchstable
changeset 9152 b0155bfd4e17
parent 2588 3a590ff82e99
child 8798 cdab3aadc679
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.

# some entities have been added before schema entities, fix the 'is' and
# 'is_instance_of' relations
for rtype in ('is', 'is_instance_of'):
    sql('INSERT INTO %s_relation '
        'SELECT X.eid, ET.cw_eid FROM entities as X, cw_CWEType as ET '
        'WHERE X.type=ET.cw_name AND NOT EXISTS('
        '      SELECT 1 from is_relation '
        '      WHERE eid_from=X.eid AND eid_to=ET.cw_eid)' % rtype)