Re: Collation-aware comparisons in GIN opclasses - Mailing list pgsql-hackers

From Alexander Korotkov
Subject Re: Collation-aware comparisons in GIN opclasses
Date
Msg-id CAPpHfdsGqMexOjRsneyfrfoQc-gr9cJpChtGUzKiYhyMKzHWKg@mail.gmail.com
Whole thread Raw
In response to Re: Collation-aware comparisons in GIN opclasses  (Peter Geoghegan <pg@heroku.com>)
List pgsql-hackers
On Mon, Sep 15, 2014 at 10:51 PM, Peter Geoghegan <pg@heroku.com> wrote:
On Mon, Sep 15, 2014 at 8:28 AM, Alexander Korotkov
<aekorotkov@gmail.com> wrote:
> some GIN opclasses uses collation-aware comparisons while they don't need to
> do especially collation-aware comparison. Examples are text[] and hstore
> opclasses. Depending on collation this may make them a much slower.

I'm glad that I saw how pointless this was with the jsonb GIN default
opclass during development.

> Rename such opclasses and make them not default.
> Create new default opclasses with bitwise comparison functions.
> Write recommendation to re-create indexes with default opclasses into
> documentation.

I certainly think this should be fixed if at all possible, but I'm not
sure about this plan. Can we really rename an opclass without
consequence, including having that respected across pg_upgrade?

Just rename doesn't seem to be safe. Since pg_upgrade uses pg_dump, all indexes are linked to opclasses using their names. Therefore existed indexes will be linked to new opclasses. It's likely we need to execute SQL script renaming opclasses before pg_upgrade. Another option is to don't rename old opclasses, just create new default opclasses with new names. Bruce, what is your opinion about pg_upgrade?
Contrib opclasses would be safe to rename using migration script.

------
With best regards,
Alexander Korotkov.   

pgsql-hackers by date:

Previous
From: Michael Paquier
Date:
Subject: Re: Support for N synchronous standby servers
Next
From: Josh Berkus
Date:
Subject: Re: jsonb format is pessimal for toast compression