From: | Michael Paquier <michael(at)paquier(dot)xyz> |
---|---|
To: | Adrien NAYRAT <adrien(dot)nayrat(at)anayrat(dot)info> |
Cc: | pgsql-docs(at)lists(dot)postgresql(dot)org |
Subject: | Re: Mention FK creation take ShareRowExclusiveLock on referenced table |
Date: | 2018-09-19 02:53:02 |
Message-ID: | 20180919025302.GF1650@paquier.xyz |
Views: | Raw Message | Whole Thread | Download mbox | Resend email |
Thread: | |
Lists: | pgsql-docs |
On Tue, Sep 18, 2018 at 12:32:54PM +0200, Adrien NAYRAT wrote:
> A few days ago I was surprised a CREATE TABLE containing FK constraint was
> stuck due to an automatic vacuum freeze (which took ShareUpdateExclusiveLock
> if I remember) on referenced table.
Right. See the top of vacuum_rel() where lmode is set.
> After digging into the code I found theses lines in tablecmds.c :
>
> /*
> * Grab ShareRowExclusiveLock on the pk table, so that someone doesn't
> * delete rows out from under us.
> */
>
> Maybe it should be documented in theses pages?
>
> https://www.postgresql.org/docs/current/static/sql-createtable.html
> https://www.postgresql.org/docs/current/static/sql-altertable.html
>
> If you agree I can send a patch.
That looks like a good idea. Are you thinking about adding a comment
about that in "ADD table_constraint" for the ALTER TABLE page, and in
"FOREIGN KEY" for the CREATE TABLE page?
--
Michael
From | Date | Subject | |
---|---|---|---|
Next Message | Tom Lane | 2018-09-19 14:43:25 | Re: Punctuation error |
Previous Message | Michael Paquier | 2018-09-19 02:42:50 | Re: Ambiguity in restore_command for recovery.conf |