Re: [HACKERS] Proposal: Local indexes for partitioned table
David Rowley <david.rowley@2ndquadrant.com>
From: David Rowley <david.rowley@2ndquadrant.com>
To: Alvaro Herrera <alvherre@alvh.no-ip.org>
Cc: Simon Riggs <simon@2ndquadrant.com>, Robert Haas <robertmhaas@gmail.com>, Pg Hackers <pgsql-hackers@postgresql.org>,
Maksim Milyutin <milyutinma@gmail.com>
Date: 2017-12-01T04:39:10Z
Lists: pgsql-hackers
On 1 December 2017 at 01:02, Alvaro Herrera <alvherre@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
Commits
-
Local partitioned indexes
- 8b08f7d4820f 11.0 landed
-
Fix StoreCatalogInheritance1 to use 32bit inhseqno
- 1ef61ddce908 11.0 landed
- 9a215fb4b5ec 9.3.21 landed
- 8a71ee628854 9.6.7 landed
- 61f08c016322 10.2 landed
- 1284d18b5de9 9.4.16 landed
- 0d993709a773 9.5.11 landed
-
Get rid of copy_partition_key
- 8a0596cb656e 11.0 landed
-
Simplify index_[constraint_]create API
- a61f5ab98638 11.0 landed