On Tue, Aug 14, 2012 at 7:48 PM, Dmitriy Igrishin <dmit...@gmail.com> wrote:

> Hey all,
>
> Is there way to determine a table column referenced by
> a view column via SQL?
>
> I want to create an universal function to determine
> mandatoriness of some column of the view (i.e.
> check the not null constraint of underlying table column).
>
>
Below query will find out the list of columns those have rules or views ?

SELECT d1.refobjid::regclass AS table,
       a.attname AS column,
       d2.refobjid::regclass AS "referenced by view"
FROM pg_depend d1
JOIN pg_depend d2 ON (d1.objid = d2.objid
                AND d1.classid = 'pg_rewrite'::regclass
                AND d1.refclassid ='pg_class'::regclass
                AND d2.classid = 'pg_rewrite'::regclass
                AND d2.refclassid = 'pg_class'::regclass
                AND d2.deptype='i')
JOIN pg_attribute a ON (d1.refobjid = a.attrelid
                AND d1.refobjsubid = a.attnum)
WHERE d1.refobjid=*'base_table'*::regclass
ORDER BY 1, 2, 3;


-- 

Thanks & Regards,

Raghu Ram

EnterpriseDB Corporation

Blog:http://raghurc.blogspot.in/

Reply via email to