@ -381,7 +381,16 @@ CREATE [ UNIQUE ] INDEX [ CONCURRENTLY ] [ <replaceable class="parameter">name</
<para>
<para>
In a concurrent index build, the index is actually entered into the
In a concurrent index build, the index is actually entered into the
system catalogs in one transaction, then the two table scans occur in a
system catalogs in one transaction, then the two table scans occur in a
second and third transaction.
second and third transaction. All active transactions at the time the
second table scan starts, not just ones that already involve the table,
have the potential to block the concurrent index creation until they
finish. When checking for transactions that could still use the original
index, concurrent index creation advances through potentially interfering
older transactions one at a time, obtaining shared locks on their virtual
transaction identifiers to wait for them to complete.
</para>
<para>
If a problem arises while scanning the table, such as a
If a problem arises while scanning the table, such as a
uniqueness violation in a unique index, the <command>CREATE INDEX</>
uniqueness violation in a unique index, the <command>CREATE INDEX</>
command will fail but leave behind an <quote>invalid</> index. This index
command will fail but leave behind an <quote>invalid</> index. This index