Обсуждение: which view is used another views

Поиск
Список
Период
Сортировка

which view is used another views

От
salah jubeh
Дата:
Hello,

How can I determine the views which are using a certain view.

Thanks in advance
 


Re: which view is used another views

От
Emre Hasegeli
Дата:


On 24 March 2011 18:06, salah jubeh <s_jubeh@yahoo.com> wrote:
Hello,

How can I determine the views which are using a certain view.


 
Name of the view can be searched on the "view_definition" column of the "views" view of the information schema.

Re: which view is used another views

От
Raymond O'Donnell
Дата:
On 24/03/2011 16:06, salah jubeh wrote:
> Hello,
>
> How can I determine the views which are using a certain view.

If you're using pgAdmin, there's a "Dependants" tab which shows you the
objects depending on another object.

Otherwise, I think you can query the pg_catalog.pg_depend table, but I
don't know how you go about that.

Ray.

--
Raymond O'Donnell :: Galway :: Ireland
rod@iol.ie

Re: which view is used another views

От
salah jubeh
Дата:

Thanks guys
pg_depend seems Useful, I will check the manual.


 Regards



From: Raymond O'Donnell <rod@iol.ie>
To: salah jubeh <s_jubeh@yahoo.com>
Cc: pgsql <pgsql-general@postgresql.org>
Sent: Thu, March 24, 2011 6:18:16 PM
Subject: Re: [GENERAL] which view is used another views

On 24/03/2011 16:06, salah jubeh wrote:
> Hello,
>
> How can I determine the views which are using a certain view.

If you're using pgAdmin, there's a "Dependants" tab which shows you the objects depending on another object.

Otherwise, I think you can query the pg_catalog.pg_depend table, but I don't know how you go about that.

Ray.

-- Raymond O'Donnell :: Galway :: Ireland
rod@iol.ie

-- Sent via pgsql-general mailing list (pgsql-general@postgresql.org)
To make changes to your subscription:
http://www.postgresql.org/mailpref/pgsql-general

Re: which view is used another views

От
salah jubeh
Дата:
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';


Regards


From: Raymond O'Donnell <rod@iol.ie>
To: salah jubeh <s_jubeh@yahoo.com>
Cc: pgsql <pgsql-general@postgresql.org>
Sent: Thu, March 24, 2011 6:18:16 PM
Subject: Re: [GENERAL] which view is used another views

On 24/03/2011 16:06, salah jubeh wrote:
> Hello,
>
> How can I determine the views which are using a certain view.

If you're using pgAdmin, there's a "Dependants" tab which shows you the objects depending on another object.

Otherwise, I think you can query the pg_catalog.pg_depend table, but I don't know how you go about that.

Ray.

-- Raymond O'Donnell :: Galway :: Ireland
rod@iol.ie

-- Sent via pgsql-general mailing list (pgsql-general@postgresql.org)
To make changes to your subscription:
http://www.postgresql.org/mailpref/pgsql-general

Re: which view is used another views

От
Emre Hasegeli
Дата:


On 25 March 2011 19:13, salah jubeh <s_jubeh@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

Re: which view is used another views

От
salah jubeh
Дата:
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
Mobile:++97259369122
Tel:++97222254680

 



From: Emre Hasegeli <hasegeli@tart.com.tr>
To: salah jubeh <s_jubeh@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_jubeh@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