Re: [HACKERS] Proposal: Local indexes for partitioned table
Robert Haas <robertmhaas@gmail.com>
From: Robert Haas <robertmhaas@gmail.com>
To: Alvaro Herrera <alvherre@alvh.no-ip.org>
Cc: David Rowley <david.rowley@2ndquadrant.com>,
Simon Riggs <simon@2ndquadrant.com>, Pg Hackers <pgsql-hackers@postgresql.org>,
Maksim Milyutin <milyutinma@gmail.com>
Date: 2017-12-18T16:08:15Z
Lists: pgsql-hackers
On Mon, Dec 18, 2017 at 11:02 AM, Alvaro Herrera <alvherre@alvh.no-ip.org> wrote: > After this discussion, this is how I see things working: > > 1. pg_dump > a) creates indexes on partitions normally > b) once all existing indexes are done, index on parent is created, > with ONLY. No cascading occurs, no indexes are attached. > c) ATTACH is run for each existing partition index. After each > ATTACH, we check that all indexes exist. If so, the parent is > marked valid. > d) if not all indexes existed in partitions, index on parent remains > invalid. (It was invalid in the dumped database, so this is > correct.) > > 2. other uses > Normal CREATE INDEX (without ONLY) recurses and attaches the first > matching index it finds (no duplicate indexes are created); > partitions without a matching index get one created. > > 3. ALTER INDEX DETACH is not provided. Therefore: once index is valid, > it remains so forever. > > I think this satisfies all concerns. Sounds great to me. -- Robert Haas EnterpriseDB: http://www.enterprisedb.com The Enterprise PostgreSQL Company
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