On Tue, Jul 2, 2019 at 10:28 AM Tomas Vondra <tomas.von...@2ndquadrant.com> wrote: > > I wonder why this is necessary: > > pg_log_error("cannot reindex glibc dependent objects and a subset of > objects"); > > What's the reasoning behind that? It seems like a valid use case to me - > imagine you have a bug database, but only a couple of tables are used by > the application regularly (the rest may be archive tables, for example). > Why not to allow rebuilding glibc-dependent indexes on the used tables, so > that the database can be opened for users sooner.
It just seemed wrong to me to allow a partial processing for something that's aimed to prevent corruption. I'd think that if users are knowledgeable enough to only reindex a subset of indexes/tables in such cases, they can also discard indexes that don't get affected by a collation lib upgrade. I'm not strongly opposed to supporting if though, as there indeed can be valid use cases. > BTW now that we allow rebuilding only some of the indexes, it'd be great > to have a dry-run mode, were we just print which indexes will be rebuilt > without actually rebuilding them. +1. If we end up doing the filter in the backend, we'd have to add such option in the REINDEX command, and actually issue all the orders to retrieve the list.