Re: Determine if an index is a B-tree, GIST, or something else? - Mailing list pgsql-general

From Tom Lane
Subject Re: Determine if an index is a B-tree, GIST, or something else?
Date
Msg-id 15275.1358450045@sss.pgh.pa.us
Whole thread Raw
In response to Re: Determine if an index is a B-tree, GIST, or something else?  (Paul Jungwirth <pj@illuminatedcomputing.com>)
Responses Re: Determine if an index is a B-tree, GIST, or something else?  (Paul Jungwirth <pj@illuminatedcomputing.com>)
List pgsql-general
Paul Jungwirth <pj@illuminatedcomputing.com> writes:
> So in principle I can just join pg_index, pg_opclass, and pg_am to get my
> answer. It's actually a little more complicated because pg_index.indclass
> is not an oid, but an oidvector, with one entry for each column in the
> index. But unless I'm mistaken, every column in given index must use the
> same index method. For instance in a 2-column index you can't say `USING
> (btree, gist)`. So I can join with `pg_index.indclass[0] = pg_opclass.oid`.
> Can anyone confirm for me that for any index, every pg_opclass it uses will
> have the same pg_am?

pg_opclass seems the hard way --- just use pg_class.relam, which is the
OID of the index's AM.  (And yes, all the opclasses had better match
that.)

            regards, tom lane


pgsql-general by date:

Previous
From: Paul Jungwirth
Date:
Subject: Re: Determine if an index is a B-tree, GIST, or something else?
Next
From: Paul Jungwirth
Date:
Subject: Re: Determine if an index is a B-tree, GIST, or something else?