Re: ATTACH/DETACH PARTITION CONCURRENTLY

Simon Riggs <simon@2ndquadrant.com>

From: Simon Riggs <simon@2ndquadrant.com>
To: Robert Haas <robertmhaas@gmail.com>
Cc: Alvaro Herrera <alvherre@2ndquadrant.com>, PostgreSQL Hackers <pgsql-hackers@lists.postgresql.org>
Date: 2018-11-06T19:01:09Z
Lists: pgsql-hackers
On Tue, 6 Nov 2018 at 10:56, Robert Haas <robertmhaas@gmail.com> wrote:

> On Tue, Nov 6, 2018 at 1:54 PM Simon Riggs <simon@2ndquadrant.com> wrote:
> > Error in the COPY or in the DDL? COPY preferred. Somebody with insert
> rights shouldn't be able to prevent a table-owner level action. People
> normally drop partitions to save space, so it could be annoying if that was
> interrupted.
>
> Yeah, the COPY.
>
> > Supporting parallel query shouldn't make other cases more difficult from
> a behavioral perspective just to avoid the ERROR. The ERROR sounds
> annoying, but not sure how annoying avoiding it would be.
>
> In my view, it's not just a question of it being annoying, but of
> whether anything else is even sensible.  I mean, you can avoid an
> error when a user types SELECT 1/0 by returning NULL or 42, but that's
> not usually how we roll around here.
>

If you can remove the ERROR without any other adverse effects, that sounds
great.

Please let us know what, if any, adverse effects would be caused so we can
discuss. Thanks

-- 
Simon Riggs                http://www.2ndQuadrant.com/
<http://www.2ndquadrant.com/>
PostgreSQL Development, 24x7 Support, Remote DBA, Training & Services

Commits

  1. Allow ATTACH PARTITION with only ShareUpdateExclusiveLock.

  2. Change lock acquisition order in expand_inherited_rtentry.

  3. Move code for managing PartitionDescs into a new file, partdesc.c

  4. Remove more redundant relation locking during executor startup.

  5. Add assertions that we hold some relevant lock during relation open.

  6. Try to acquire relation locks in RangeVarGetRelid.