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