Constantin Teodorescu ha scritto:
> Jan Wieck wrote:
> >
> > Jose' Soares wrote:
> >
> > > I modified psql.c to use pg_get_viewdef() function to seek for views and
> > > now I can display only tables using \dt
> >
> > I suggest not to apply this patch
> >
> > 1. The function pg_get_viewdef() is definitely too much
> > overhead. In fact it must parse back the complete view
> > .......
>
> I used pg_get_viewdef() function to properly detect views and tables in
> PgAccess.
> For the moment, I have released a new version 0.94 of PgAccess based on
> this and it works fine.
>
> I am sure that you are right concerning pg_get_viewdef() function, but
> please, could you tell me another way of detecting views from "false
> views" ? relhasrules field isn't good enough for it and for the moment,
> pg_get_viewdef() seems to be a good method. If anyone could tell me
> another way of safely detecting views I can change it.
>
> Also, I used pg_get_viewdef() in order to get views's definition for the
> "Design" view function so, I will need also such a function in order to
> implement this feature.
>
> --
> Constantin Teodorescu
> FLEX Consulting Braila, ROMANIA
I'm not sure if we may consider good the pg_views data.
If so you can check for views into it, as..
hygea=> \d pg_views
Table = pg_views
+----------------------------------+----------------------------------+-------+
| Field | Type | Length|
+----------------------------------+----------------------------------+-------+
| viewname | name | 32 |
| viewowner | name | 32 |
| definition | text | var |
+----------------------------------+----------------------------------+-------+
hygea=> \dv
Database = hygea+------------------+----------------------------------+----------+| Owner |
Relation | Type |+------------------+----------------------------------+----------+| postgres |
wattivita | view || postgres | wtabelle | view
|+------------------+----------------------------------+----------+
hygea=> select 'yes' from pg_views where viewname='wattivita';
?column?
--------
yes
(1 row)
-Jose'-