diff --git a/procedures/insertIsaCache.sql b/procedures/insertIsaCache.sql index aacb4cdd5170f8b5f5b8c1df1488b3b344b7ba2f..a4490bd24da11cdb4d0af5930bdeb14c3882925d 100644 --- a/procedures/insertIsaCache.sql +++ b/procedures/insertIsaCache.sql @@ -60,7 +60,7 @@ insert_is_a_proc: BEGIN p, -- New parent (directly) concat(p, ">", i.rpath)) -- Else "p>super.rpath" AS rpath - FROM isa_cache AS i WHERE i.child = p; -- Select rows with supertype + FROM isa_cache AS i WHERE i.child = p AND i.child != i.parent; -- Select rows with supertype -- Propagate to descendants: -- for each subtype of c: insert each supertype of p @@ -78,7 +78,7 @@ insert_is_a_proc: BEGIN AS rpath FROM isa_cache as l INNER JOIN isa_cache as r - ON (l.parent = c AND c = r.child); -- Left: descendants of c, right: ancestors + ON (l.parent = c AND c = r.child AND l.child != l.parent); -- Left: descendants of c, right: ancestors END; //