On Mon, Sep 15, 2014 at 10:51 PM, Peter Geoghegan <p...@heroku.com> wrote:

> On Mon, Sep 15, 2014 at 8:28 AM, Alexander Korotkov
> <aekorot...@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.

Reply via email to