Re: ATTACH/DETACH PARTITION CONCURRENTLY - Mailing list pgsql-hackers

From Andres Freund
Subject Re: ATTACH/DETACH PARTITION CONCURRENTLY
Date
Msg-id 20180807124751.ip32ojiavfy637tz@alap3.anarazel.de
Whole thread Raw
In response to Re: ATTACH/DETACH PARTITION CONCURRENTLY  (David Rowley <david.rowley@2ndquadrant.com>)
Responses Re: ATTACH/DETACH PARTITION CONCURRENTLY
Re: ATTACH/DETACH PARTITION CONCURRENTLY
List pgsql-hackers
Hi,

On 2018-08-08 00:40:12 +1200, David Rowley wrote:
> 1. Obtain a ShareUpdateExclusiveLock on the partitioned table rather
> than an AccessExclusiveLock.
> 2. Do all the normal partition attach partition validation.
> 3. Insert pg_partition record with partvalid = true.
> 4. Invalidate relcache entry for the partitioned table
> 5. Any loops over a partitioned table's PartitionDesc must check
> PartitionIsValid(). This will return true if the current snapshot
> should see the partition or not. The partition is valid if partisvalid
> = true and the xmin precedes or is equal to the current snapshot.

How does this protect against other sessions actively using the relcache
entry? Currently it is *NOT* safe to receive invalidations for
e.g. partitioning contents afaics.

- Andres


pgsql-hackers by date:

Previous
From: David Rowley
Date:
Subject: Re: ATTACH/DETACH PARTITION CONCURRENTLY
Next
From: Simon Riggs
Date:
Subject: Re: ATTACH/DETACH PARTITION CONCURRENTLY