Skip to content

Commit 2602e63

Browse files
committed
Expand warnings on locks acquired by CREATE INDEX CONCURRENTLY
The previous wording wasn't explicit enough, which could misled readers into thinking that the locks acquired are more restricted in nature than they really are. The resulting optimism can be damaging to morale when confronted with reality, as has been observed in the field. Greg Smith
1 parent 6350d75 commit 2602e63

File tree

1 file changed

+10
-1
lines changed

1 file changed

+10
-1
lines changed

doc/src/sgml/ref/create_index.sgml

Lines changed: 10 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -368,7 +368,16 @@ CREATE [ UNIQUE ] INDEX [ CONCURRENTLY ] [ <replaceable class="parameter">name</
368368
<para>
369369
In a concurrent index build, the index is actually entered into the
370370
system catalogs in one transaction, then the two table scans occur in a
371-
second and third transaction.
371+
second and third transaction. All active transactions at the time the
372+
second table scan starts, not just ones that already involve the table,
373+
have the potential to block the concurrent index creation until they
374+
finish. When checking for transactions that could still use the original
375+
index, concurrent index creation advances through potentially interfering
376+
older transactions one at a time, obtaining shared locks on their virtual
377+
transaction identifiers to wait for them to complete.
378+
</para>
379+
380+
<para>
372381
If a problem arises while scanning the table, such as a
373382
uniqueness violation in a unique index, the <command>CREATE INDEX</>
374383
command will fail but leave behind an <quote>invalid</> index. This index

0 commit comments

Comments
 (0)