I am using postgresql 8.3
Best Regard
Eng. Salah Al Jubeh
Palestine Polytechnic University
College of Applied Science
Computer Science
P.O. Box 198
P.O. Box 198
Mobile:++97259369122
Tel:++97222254680
Tel:++97222254680
From: Emre Hasegeli <hasegeli@xxxxxxxxxxx>
To: salah jubeh <s_jubeh@xxxxxxxxx>
Cc: pgsql <pgsql-general@xxxxxxxxxxxxxx>
Sent: Fri, March 25, 2011 6:25:13 PM
Subject: Re: which view is used another views
On 25 March 2011 19:13, salah jubeh <s_jubeh@xxxxxxxxx> wrote:
http://www.postgresql.org/docs/current/static/queries-with.htmlHello Guys
The query in this function returns the dependency for level one. However, I need the dependency for all level. I am still new with plpgsql so; how can I use recursive function to return all dependency for all levels
CREATE OR REPLACE FUNCTION dependon (var text) RETURNS SETOF text AS
$BODY$
DECLARE
node record;
BEGIN
FOR node IN SELECT relname FROM pg_class WHERE OID in (
SELECT ev_class FROM pg_rewrite, pg_depend
WHERE pg_depend.objid = pg_rewrite.oid
AND deptype ='n'
AND refobjsubid = 1
AND refobjid::regclass::text = $1)
LOOP
IF node.relname IS NOT NULL THEN
RETURN NEXT depend(node.relname);
RETURN NEXT node.relname;
END IF;
END LOOP;
END
$BODY$
LANGUAGE 'plpgsql';
You can do it with "WITH RECURSIVE" without PL/pgSQL: