I am using postgresql 8.3
Best Regard Eng. Salah Al Jubeh PalestinePolytechnic University College of Applied Science Computer Science P.O. Box 198 Mobile:++97259369122 Tel:++97222254680 ________________________________ From: Emre Hasegeli <haseg...@tart.com.tr> To: salah jubeh <s_ju...@yahoo.com> Cc: pgsql <pgsql-general@postgresql.org> Sent: Fri, March 25, 2011 6:25:13 PM Subject: Re: [GENERAL] which view is used another views On 25 March 2011 19:13, salah jubeh <s_ju...@yahoo.com> wrote: Hello 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: http://www.postgresql.org/docs/current/static/queries-with.html