From: | Justin Pryzby <pryzby(at)telsasoft(dot)com> |
---|---|
To: | Michael Paquier <michael(at)paquier(dot)xyz> |
Cc: | 李杰(慎追) <adger(dot)lj(at)alibaba-inc(dot)com>, pgsql-hackers(at)lists(dot)postgresql(dot)org, 曾文旌(义从) <wenjing(dot)zwj(at)alibaba-inc(dot)com>, Alvaro Herrera <alvherre(at)2ndquadrant(dot)com> |
Subject: | Re: CLUSTER on partitioned index |
Date: | 2020-11-29 02:03:02 |
Message-ID: | 20201129020301.GN24052@telsasoft.com |
Views: | Raw Message | Whole Thread | Download mbox | Resend email |
Thread: | |
Lists: | pgsql-hackers |
On Sun, Nov 15, 2020 at 07:53:35PM -0600, Justin Pryzby wrote:
> On Wed, Nov 04, 2020 at 08:23:56PM -0600, Justin Pryzby wrote:
> > On Tue, Oct 27, 2020 at 07:33:12PM -0500, Justin Pryzby wrote:
> > > I'm attaching a counter-proposal to your catalog change, which preserves
> > > indisclustered on children of clustered, partitioned indexes, and invalidates
> > > indisclustered when attaching unclustered indexes.
> >
> > ..and now propagates CLUSTER ON to child indexes.
> >
> > I left this as separate patches to show what I mean and what's new while we
> > discuss it.
>
> This fixes some omissions in the previous patch and error in its test cases.
>
> CLUSTER ON recurses to children, since I think a clustered parent index means
> that all its child indexes are clustered. "SET WITHOUT CLUSTER" doesn't have
> to recurse to children, but I did it like that for consistency and it avoids
> the need to special case InvalidOid.
The previous patch failed pg_upgrade when restoring a clustered, parent index,
since it's marked INVALID until indexes have been built on all child tables, so
CLUSTER ON was rejected on invalid index.
So I think CLUSTER ON needs to be a separate pg_dump object, to allow attaching
the child index (thereby making the parent "valid") to happen before SET
CLUSTER on the parent index.
--
Justin
Attachment | Content-Type | Size |
---|---|---|
v5-0001-pg_dump-make-CLUSTER-ON-a-separate-dump-object.patch | text/x-diff | 8.2 KB |
v5-0002-Implement-CLUSTER-of-partitioned-table.patch | text/x-diff | 16.6 KB |
v5-0003-Propagate-changes-to-indisclustered-to-child-pare.patch | text/x-diff | 9.3 KB |
v5-0004-Invalidate-parent-indexes.patch | text/x-diff | 3.6 KB |
v5-0005-Invalidate-parent-index-cluster-on-attach.patch | text/x-diff | 3.1 KB |
v5-0006-Preserve-indisclustered-on-children-of-clustered-.patch | text/x-diff | 3.0 KB |
From | Date | Subject | |
---|---|---|---|
Next Message | Amit Kapila | 2020-11-29 02:08:59 | Re: [HACKERS] logical decoding of two-phase transactions |
Previous Message | Tom Lane | 2020-11-29 00:47:46 | Re: Feature Request: Report additionally error value |