From: Alvaro Herrera <alvherre@2ndquadrant.com>
To: Bruce Momjian <bruce@momjian.us>
Cc: Michael Paquier <michael@paquier.xyz>
Cc: Tom Lane <tgl@sss.pgh.pa.us>
Cc: osdba <mailtch@163.com>
Cc: pgsql-docs@postgresql.org
Cc: jkatz@postgresql.org
Subject: Re: Document "59.2. Built-in Operator Classes" have a clerical error?
Date: Wed, 26 Aug 2020 18:58:37 -0400
Message-ID: <20200826225837.GA3099@alvherre.pgsql> (raw)
In-Reply-To: <20200826223927.GB13370@momjian.us>
On 2020-Aug-26, Bruce Momjian wrote:
> On Wed, Aug 26, 2020 at 05:58:01PM -0400, Alvaro Herrera wrote:
> > Well, there is a small problem here ... which is that I misled you with
> > \dAo ... because that one lists the operators for the opfamilies, not
> > for the opclasses. And you can't use the opfamily name in CREATE INDEX:
> >
> > 55432 14devel 30811=# create index on t using brin (a integer_minmax_ops);
> > ERROR: operator class "integer_minmax_ops" does not exist for access method "brin"
> >
> > You have to use the opclass name:
> >
> > 55432 14devel 30811=# create index on t using brin (a int4_minmax_ops);
> > CREATE INDEX
> >
> > Compare \dAf to \dAc. The latter shows what opclasses you can use for
> > each datatype, while the former shows what types can be used with an
> > index using the opfamily that the opclass belongs into.
> >
> > As I understand it, the cross-type operators are "loose" in the opfamily
> > and they don't belong to any opclass. So what we could do is list the
> > opclasses within each opfamily, and then list all the loose operators.
> > Something like (fixed width font):
>
> Stupid question, but do we think the average Postgres user can
> understand this issue. I am having trouble myself.
The only reason I think it's worth pointing out, is that the opclass
name is something you can use in CREATE INDEX, while the opfamily name
cannot be used there. The original tables can be used for that purpose,
but the patched tables cannot.
--
Álvaro Herrera https://www.2ndQuadrant.com/
PostgreSQL Development, 24x7 Support, Remote DBA, Training & Services
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Reply to all the recipients using the --to and --cc options:
reply via email
To: pgsql-docs@postgresql.org
Cc: alvherre@2ndquadrant.com, bruce@momjian.us, michael@paquier.xyz, tgl@sss.pgh.pa.us, mailtch@163.com, jkatz@postgresql.org
Subject: Re: Document "59.2. Built-in Operator Classes" have a clerical error?
In-Reply-To: <20200826225837.GA3099@alvherre.pgsql>
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
This inbox is served by DDX for PostgreSQL; see mirroring instructions
for how to clone and mirror all data and code used for this inbox