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

Reply via email to