On 06.07.18 04:00, Amit Langote wrote:
> On 2018/07/05 23:02, Robert Haas wrote:
>> On Wed, Jul 4, 2018 at 3:09 AM, Amit Langote
>> <Langote_Amit_f8@lab.ntt.co.jp> wrote:
>>> I wonder why we mention on the following page that CREATE COLLATION
>>> requires SHARE ROW EXCLUSIVE lock
>>>
>>> https://www.postgresql.org/docs/devel/static/explicit-locking.html
>>>
>>> I know that's the lock taken on the pg_collation catalog, but do we need
>>> to mention locks taken by a DDL command on the catalogs it affects? All
>>> other commands mentioned on the page require to specify the table name
>>> that the lock will be taken on.
>>
>> Yes, that looks odd.
>
> OK, here is a patch.
>
> I see that it was one of Peter E's commits that added that, so cc'd him.
The reason this is mentioned is that CREATE COLLATION takes a SHARE ROW
EXCLUSIVE lock on pg_collation whereas similar CREATE commands only take
a ROW EXCLUSIVE lock on their catalogs. (So you can only have one
CREATE COLLATION running at a time. The reasons for this are explained
in pg_collation.c.) I think mentioning this was requested during patch
review.
--
Peter Eisentraut http://www.2ndQuadrant.com/
PostgreSQL Development, 24x7 Support, Remote DBA, Training & Services