From: | Tom Lane <tgl(at)sss(dot)pgh(dot)pa(dot)us> |
---|---|
To: | Jan Wieck <JanWieck(at)Yahoo(dot)com> |
Cc: | Lex Berezhny <LBerezhny(at)DevIS(dot)com>, "'pgsql-sql(at)postgresql(dot)org'" <pgsql-sql(at)postgresql(dot)org> |
Subject: | Re: pg_views |
Date: | 2003-02-04 18:46:45 |
Message-ID: | 15770.1044384405@sss.pgh.pa.us |
Views: | Raw Message | Whole Thread | Download mbox | Resend email |
Thread: | |
Lists: | pgsql-sql |
Jan Wieck <JanWieck(at)Yahoo(dot)com> writes:
> Lex Berezhny wrote:
>> My goal is to take a view name as input and output the tables and
>> columns composing the view.
> Don't forget that a view's columns can contain complex expressions
> instead of simple table.column references.
Yes. This problem is not simple.
> So parsing pg_views output would be ... er ... parsing a query string
> that was reconstructed from a parsetree that resulted from parsing a
> query string ... that doesn't sound like the right thing to do.
As of 7.3, at least some of what Lex wants could probably be extracted
from the pg_depend entries for the view's select rule. For example,
given
regression=# create view vv as select unique1, hundred from tenk1;
I see these entries in pg_depend:
regression=# select * from pg_depend where objid=578707;
classid | objid | objsubid | refclassid | refobjid | refobjsubid | deptype
---------+--------+----------+------------+----------+-------------+---------
16410 | 578707 | 0 | 1259 | 578705 | 0 | i
16410 | 578707 | 0 | 1259 | 578705 | 0 | n
16410 | 578707 | 0 | 1259 | 443421 | 1 | n
16410 | 578707 | 0 | 1259 | 443421 | 7 | n
(4 rows)
The first two just link back to the owning view (hm, why are we making
two entries for that?) but the other two show that the view depends on
columns 1 and 7 of table 443421, ie, tenk1.
This won't tell you exactly how the view uses those columns, only that
they are referenced; but it might be good for something.
regards, tom lane
From | Date | Subject | |
---|---|---|---|
Next Message | justin | 2003-02-04 22:10:06 | Serialized Transaction Locking Issues |
Previous Message | Tom Lane | 2003-02-04 18:37:09 | Re: iceberg queries |