Обсуждение: Selecting names of indexes that are not dependent on constraints.

Поиск
Список
Период
Сортировка

Selecting names of indexes that are not dependent on constraints.

От
Dmitriy Igrishin
Дата:
Hey all,<br /><br />How can I select names of indexes of table (or even whole schema) that are not dependent on
constraints?<br/><br />Unfortunately there is no way to select only "independent" indexes from pg_indexes view.<br
/><br/>How can I do it?<br /><br />Regards,<br />Dmitriy Igrishin<br /> 

Re: Selecting names of indexes that are not dependent on constraints.

От
Dmitriy Igrishin
Дата:
Of course, I meant the indexes of which constraints do not depend. :)

2010/3/11 Dmitriy Igrishin <dmitigr@gmail.com>
Hey all,

How can I select names of indexes of table (or even whole schema) that are not dependent on constraints?

Unfortunately there is no way to select only "independent" indexes from pg_indexes view.

How can I do it?

Regards,
Dmitriy Igrishin

Re: Selecting names of indexes that are not dependent on constraints.

От
Tom Lane
Дата:
Dmitriy Igrishin <dmitigr@gmail.com> writes:
> How can I select names of indexes of table (or even whole schema) that are
> not dependent on constraints?

Right at the moment, the only reliable way to tell whether an index is
associated with a constraint is to look for a pg_depend entry linking
the two.  Be careful to consider only "internal" dependencies, else you
may be fooled by foreign-key constraints that depend on indexes.
If you look into the pg_dump source code you will find an example.

9.0 will make this a tad simpler by keeping a "conindid" column in
pg_constraint.
        regards, tom lane