On Fri, Mar 31, 2017 at 02:48:05PM -0400, Tom Lane wrote:
> +1, as long as we're clear on what will happen when pg_upgrade'ing
> an installation containing hash indexes. I think a minimum requirement is
> that it succeed and be able to start up, and allow the user to manually
> REINDEX such indexes afterwards. Bonus points for:
>
> 1. teaching pg_upgrade to create a script containing the required REINDEX
> commands. (I think it's produced scripts for similar requirements in the
> past.)
>
> 2. marking the index invalid so that the system would silently ignore it
> until it's been reindexed. I think there might be adequate infrastructure
> for that already thanks to REINDEX CONCURRENTLY, and it'd just be a matter
> of getting pg_upgrade to hack the indexes' catalog state. (If not, it's
> probably not worth the trouble.)
We already have code to do all of that, but it was removed from
pg_upgrade in 9.5. You can still see it in 9.4:
contrib/pg_upgrade/version_old_8_3.c::old_8_3_invalidate_hash_gin_indexes()
I would be happy to restore that code and make it work for PG 10.
-- Bruce Momjian <bruce@momjian.us> http://momjian.us EnterpriseDB
http://enterprisedb.com
+ As you are, so once was I. As I am, so you will be. +
+ Ancient Roman grave inscription +