Get index information from information_schema?
Hello, there.
I need a method of extracting information about indexes of any table
from information_schema.
Have you any suggestions?
Thank you.
AlannY wrote:
I need a method of extracting information about indexes of any table
from information_schema.Have you any suggestions?
I am afraid that indexes are not covered by information_schema.
You'd have to dig into pg_catalog.pg_index for this.
Yours,
Laurenz Albe
-----Original Message-----
From: pgsql-general-owner@postgresql.org [mailto:pgsql-general-
owner@postgresql.org] On Behalf Of Albe Laurenz
Sent: Tuesday, March 18, 2008 1:24 AM
To: AlannY *EXTERN*; pgsql-general@postgresql.org
Subject: Re: [GENERAL] Get index information from information_schema?AlannY wrote:
I need a method of extracting information about indexes of any table
from information_schema.Have you any suggestions?
I am afraid that indexes are not covered by information_schema.
You'd have to dig into pg_catalog.pg_index for this.
Doesn't the PostgreSQL schema have the
INFORMATION_SCHEMA.KEY_COLUMN_USAGE view?
Or (conversely) are indexes not stored as constraints?
On Mar 18, 2008, at 1:28 PM, Dann Corbit wrote:
-----Original Message-----
From: pgsql-general-owner@postgresql.org [mailto:pgsql-general-
owner@postgresql.org] On Behalf Of Albe Laurenz
Sent: Tuesday, March 18, 2008 1:24 AM
To: AlannY *EXTERN*; pgsql-general@postgresql.org
Subject: Re: [GENERAL] Get index information from information_schema?AlannY wrote:
I need a method of extracting information about indexes of any table
from information_schema.Have you any suggestions?
I am afraid that indexes are not covered by information_schema.
You'd have to dig into pg_catalog.pg_index for this.
Doesn't the PostgreSQL schema have the
INFORMATION_SCHEMA.KEY_COLUMN_USAGE view?Or (conversely) are indexes not stored as constraints?
Only if they are PRIMARY KEY or UNIQUE indexes.
Erik Jones
DBA | Emma®
erik@myemma.com
800.595.4401 or 615.292.5888
615.292.0777 (fax)
Emma helps organizations everywhere communicate & market in style.
Visit us online at http://www.myemma.com
-----Original Message-----
From: Erik Jones [mailto:erik@myemma.com]
Sent: Tuesday, March 18, 2008 11:51 AM
To: Dann Corbit
Cc: Albe Laurenz; AlannY *EXTERN*; pgsql-general@postgresql.org
Subject: Re: [GENERAL] Get index information from information_schema?On Mar 18, 2008, at 1:28 PM, Dann Corbit wrote:
-----Original Message-----
From: pgsql-general-owner@postgresql.org [mailto:pgsql-general-
owner@postgresql.org] On Behalf Of Albe Laurenz
Sent: Tuesday, March 18, 2008 1:24 AM
To: AlannY *EXTERN*; pgsql-general@postgresql.org
Subject: Re: [GENERAL] Get index information from
information_schema?
AlannY wrote:
I need a method of extracting information about indexes of any
table
from information_schema.
Have you any suggestions?
I am afraid that indexes are not covered by information_schema.
You'd have to dig into pg_catalog.pg_index for this.
Doesn't the PostgreSQL schema have the
INFORMATION_SCHEMA.KEY_COLUMN_USAGE view?Or (conversely) are indexes not stored as constraints?
Only if they are PRIMARY KEY or UNIQUE indexes.
It looks like Foreign keys are included as well, because I get the
correct results for this query:
create table t1 (c1 int not null, c2 int not null, c3 char(5), c4 int,
c5 int, constraint pk_t1 PRIMARY KEY (c5,c4));
create table t2 (tc1 int not null, c1 int not null, c2 int not null, c5
char(5), constraint fk_t2 FOREIGN KEY (c1,c2) references t1 (c5,c4));
select CONSTRAINT_NAME, TABLE_NAME, COLUMN_NAME, ORDINAL_POSITION from
information_schema.key_column_usage where TABLE_NAME in ('t1', 't2');
So the only thing that will be missing are the indexes that are none of
the above.
It's a shame that there really is no information schema for indexes in
that category.
On Mar 18, 2008, at 5:42 PM, Dann Corbit wrote:
correct results for this query:
create table t1 (c1 int not null, c2 int not null, c3 char(5), c4 int,
c5 int, constraint pk_t1 PRIMARY KEY (c5,c4));create table t2 (tc1 int not null, c1 int not null, c2 int not null,
c5
char(5), constraint fk_t2 FOREIGN KEY (c1,c2) references t1 (c5,c4));select CONSTRAINT_NAME, TABLE_NAME, COLUMN_NAME, ORDINAL_POSITION from
information_schema.key_column_usage where TABLE_NAME in ('t1', 't2');So the only thing that will be missing are the indexes that are none
of
the above.It's a shame that there really is no information schema for indexes in
that category.
Careful with that, foreign keys are not at all indexes although it is
common practice to put indexes on columns with them.
Erik Jones
DBA | Emma®
erik@myemma.com
800.595.4401 or 615.292.5888
615.292.0777 (fax)
Emma helps organizations everywhere communicate & market in style.
Visit us online at http://www.myemma.com
Dann Corbit wrote:
I need a method of extracting information about indexes of any table
from information_schema.Have you any suggestions?
I am afraid that indexes are not covered by information_schema.
You'd have to dig into pg_catalog.pg_index for this.
Doesn't the PostgreSQL schema have the
INFORMATION_SCHEMA.KEY_COLUMN_USAGE view?Or (conversely) are indexes not stored as constraints?
You will find constraints in information_schema, but not indexes.
In general, indexes are no constraints.
Some constraints are implemented as indexes (primary key, unique),
but that's a different story.
Yours,
Laurenz Albe