CREATE OR REPLACE FUNCTION parent_paths (path ltree) RETURNS SETOF ltree AS $$
DECLARE
i INTEGER;
level INTEGER;
mySubpath ltree;
BEGIN
SELECT nlevel (path) INTO level;
FOR i IN 1 .. level LOOP
SELECT subpath(path, 0, i) INTO mySubpath;
RETURN NEXT mySubpath;
END LOOP;
RETURN;
END;
$$ LANGUAGE plpgsql IMMUTABLE;
-----------------------
SELECT parent_paths ('1.2.3.4.5.4564654.24234576854634');
-----------------------
Erreur SQL :
ERROR: set-valued function called in context that cannot accept a set
CONTEXT: PL/pgSQL function "parent_paths" line 12 at return next
Dans l'instruction :
SELECT parent_paths ('1.2.3.4.5.4564654.24234576854634');