]> granicus.if.org Git - postgresql/commitdiff
Document lock taken on referenced table when adding a foreign key
authorMichael Paquier <michael@paquier.xyz>
Fri, 21 Sep 2018 06:03:37 +0000 (15:03 +0900)
committerMichael Paquier <michael@paquier.xyz>
Fri, 21 Sep 2018 06:03:37 +0000 (15:03 +0900)
This can happen for CREATE TABLE and ALTER TABLE, so a mention is added
to both of them in the concerned subsections.

Author: Adrien Nayrat
Discussion: https://postgr.es/m/c4e8af11-1dfc-766a-c953-76979b9fcdaa@anayrat.info

doc/src/sgml/ref/alter_table.sgml
doc/src/sgml/ref/create_table.sgml

index ec6b4c331137d62398d75bfa0fbae92eec39ac31..f13a6cd944df57278fc289fa79425a649675f032 100644 (file)
@@ -372,6 +372,11 @@ WITH ( MODULUS <replaceable class="parameter">numeric_literal</replaceable>, REM
       tables may not be declared <literal>NOT VALID</literal> at present.
      </para>
 
+     <para>
+      The addition of a foreign key constraint requires a
+      <literal>SHARE ROW EXCLUSIVE</literal> lock on the referenced table.
+     </para>
+
      <para>
       Additional restrictions apply when unique or primary key constraints
       are added to partitioned tables; see <xref linkend="sql-createtable" />.
index 5a19f94ce91f67ca19b958a09133240098771b93..10428f8ff03cc4799a7e1ef0630cde33cf41721a 100644 (file)
@@ -992,7 +992,9 @@ WITH ( MODULUS <replaceable class="parameter">numeric_literal</replaceable>, REM
       is used.  The referenced columns must be the columns of a non-deferrable
       unique or primary key constraint in the referenced table.  The user
       must have <literal>REFERENCES</literal> permission on the referenced table
-      (either the whole table, or the specific referenced columns).
+      (either the whole table, or the specific referenced columns).  The
+      addition of a foreign key constraint requires a
+      <literal>SHARE ROW EXCLUSIVE</literal> lock on the referenced table.
       Note that foreign key constraints cannot be defined between temporary
       tables and permanent tables.  Also note that while it is possible to
       define a foreign key on a partitioned table, it is not possible to