Re: Partition Check not updated when insert into a partition - Mailing list pgsql-hackers

From Pavel Borisov
Subject Re: Partition Check not updated when insert into a partition
Date
Msg-id CALT9ZEEpn0aigwfZfUyu=TuDnGfw_ypT836L4zhjJNcqE3jSRg@mail.gmail.com
Whole thread Raw
In response to Re: Partition Check not updated when insert into a partition  (Amit Langote <amitlangote09@gmail.com>)
Responses Re: Partition Check not updated when insert into a partition
List pgsql-hackers
The lock taken on the parent is either ShareUpdateExclusiveLock or
AccessExclusiveLock depending on whether CONCURRENTLY is specified or
not.  Maybe that should be considered also when locking the children.

I've updated the patch that way.  (Also, reintroduced the slightly
longer commit message that I had added in v3. :))

Thanks Amit, for your work!

I am little bit reluctant to the change you made in v5. As per https://www.postgresql.org/docs/14/sql-altertable.html:

> If CONCURRENTLY is specified, ... the second transaction acquires SHARE UPDATE EXCLUSIVE on the partitioned table and ACCESS EXCLUSIVE on the partition, and the detach process completes.

In comment to find_all_inheritors():

> The specified lock type is acquired on all child relations (but not on the given rel; caller should already have locked it) 

So I conclude that it is done in a right way in v3 with ACCESS_EXCLUSIVE lock.

Also I'd recommend removing the link to a discussion from the test. Anyway we have link in a commit message.

--
Best regards,
Pavel Borisov

Postgres Professional: http://postgrespro.com

pgsql-hackers by date:

Previous
From: Aleksander Alekseev
Date:
Subject: Re: [PATCH] Proposal for HIDDEN/INVISIBLE column
Next
From: Gilles Darold
Date:
Subject: Re: [PATCH] Proposal for HIDDEN/INVISIBLE column