Re: retriving views name

From: Tom Lane <tgl(at)sss(dot)pgh(dot)pa(dot)us>
To: esaracco(at)noos(dot)fr
Cc: pgsql-general(at)postgresql(dot)org
Subject: Re: retriving views name
Date: 2001-10-13 18:19:41
Message-ID: 20557.1002997181@sss.pgh.pa.us
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-general

Emmanuel SARACCO <esaracco(at)noos(dot)fr> writes:
> I must retrieve views names in a very short time. what can I use.
> for the moment, I use:

> SELECT c.relname FROM pg_class c, pg_rewrite r WHERE (((c.relname !~
> '^pg_'::text) AND (r.ev_class = c.oid)) AND (r.ev_type = '1'::"char"));

If you're using a reasonably recent PG release, there's no need to join
against pg_rewrite. Just look for pg_class entries with relkind = 'v'.

> is there a more performant way to do this? (I have more than 50.000
> views in my database (those views are generated on the fly to optimize a
> search engine and keep results in memory)). I am running a sort of
> "garbage collector" via cron/psql -c every minutes to destroy views
> older than 10 minutes and I must do this very rapidly!

One must wonder why you create views at all, if you don't intend them
to stick around for long. Why not just write out the SELECTs in full?
(If you think there's some performance benefit to using a view, you are
quite mistaken.)

regards, tom lane

In response to

Responses

Browse pgsql-general by date

  From Date Subject
Next Message Keary Suska 2001-10-13 20:25:30 7.1.3 Install: createlang broken/no pg_shadow
Previous Message Emmanuel SARACCO 2001-10-13 17:26:45 retriving views name