Re: Check for existence of index

From: Tom Lane <tgl(at)sss(dot)pgh(dot)pa(dot)us>
To: David Rysdam <drysdam(at)ll(dot)mit(dot)edu>
Cc: pgsql-general(at)postgresql(dot)org
Subject: Re: Check for existence of index
Date: 2005-04-05 18:19:55
Message-ID: 26226.1112725195@sss.pgh.pa.us
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-general

David Rysdam <drysdam(at)ll(dot)mit(dot)edu> writes:
> Why can't I have the same index name be on
> different tables?

You can ... if they are in different schemas. Indexes and tables share
the same namespace, ie, they must be unique within a schema.

As for your original question, you probably want something like

SELECT ... FROM pg_class c, pg_namespace n WHERE c.relnamespace = n.oid
AND relname = 'indexname' AND nspname = 'schemaname' AND relkind = 'i';

If you actually want to verify that this index is on a specific table,
you'll need a more complicated join involving pg_index and a second
scan of pg_class. See
http://www.postgresql.org/docs/8.0/static/catalogs.html

regards, tom lane

In response to

Responses

Browse pgsql-general by date

  From Date Subject
Next Message Grzegorz Przeździecki 2005-04-05 18:26:51 Re: change attnum in pg_catalog.pg_attribute
Previous Message Tom Lane 2005-04-05 18:13:01 Re: change attnum in pg_catalog.pg_attribute