On 1 December 2017 at 01:02, Alvaro Herrera <alvhe...@alvh.no-ip.org> wrote: > we currently (I mean after my > patch) don't mark partitioned-table-level indexes as valid or not valid > depending on whether all its children exist, so trying to use that in > the planner without having a flag could cause invalid plans to be > generated (i.e. ones that would cause nonexistent indexes to be > referenced).
So, then this patch is only really intended as a syntax shortcut for mass adding of indexes to each partition? I feel like we could do better here with little extra effort. The DETACH index feature does not really seem required for this patch. I think just ensuring a matching index exists on each leaf partition and creating any which don't exist before creating the index on the target partitioned table seems like the correct solution. That way we can make that index indisvalid flag have a valid meaning all the time. Some later patch can invent some way to replace a bloated index. Perhaps later we can invent some generic way to replace a physical leaf index for a given partitioned index perhaps with the same patch that might allow us to replace an index which is used by a constraint, which to me seems like a feature we should have had years ago. -- David Rowley http://www.2ndQuadrant.com/ PostgreSQL Development, 24x7 Support, Training & Services