| From: | Alvaro Herrera <alvherre(at)alvh(dot)no-ip(dot)org> |
|---|---|
| To: | Robert Haas <robertmhaas(at)gmail(dot)com> |
| Cc: | David Rowley <david(dot)rowley(at)2ndquadrant(dot)com>, Simon Riggs <simon(at)2ndquadrant(dot)com>, Pg Hackers <pgsql-hackers(at)postgresql(dot)org>, Maksim Milyutin <milyutinma(at)gmail(dot)com> |
| Subject: | Re: [HACKERS] Proposal: Local indexes for partitioned table |
| Date: | 2017-12-18 16:02:30 |
| Message-ID: | 20171218160230.hdq2k23hheud6arv@alvherre.pgsql |
| Views: | Whole Thread | Raw Message | Download mbox | Resend email |
| Thread: | |
| Lists: | pgsql-hackers |
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.
--
Álvaro Herrera https://www.2ndQuadrant.com/
PostgreSQL Development, 24x7 Support, Remote DBA, Training & Services
| From | Date | Subject | |
|---|---|---|---|
| Next Message | Robert Haas | 2017-12-18 16:08:15 | Re: [HACKERS] Proposal: Local indexes for partitioned table |
| Previous Message | Tomas Vondra | 2017-12-18 15:43:38 | Re: [HACKERS] Custom compression methods |