aboutsummaryrefslogtreecommitdiff
path: root/doc/src
diff options
context:
space:
mode:
Diffstat (limited to 'doc/src')
-rw-r--r--doc/src/sgml/catalogs.sgml12
-rw-r--r--doc/src/sgml/ref/drop_index.sgml37
2 files changed, 29 insertions, 20 deletions
diff --git a/doc/src/sgml/catalogs.sgml b/doc/src/sgml/catalogs.sgml
index f99919093ca..5f270404bf1 100644
--- a/doc/src/sgml/catalogs.sgml
+++ b/doc/src/sgml/catalogs.sgml
@@ -3480,7 +3480,7 @@
index is possibly incomplete: it must still be modified by
<command>INSERT</>/<command>UPDATE</> operations, but it cannot safely
be used for queries. If it is unique, the uniqueness property is not
- true either.
+ guaranteed true either.
</entry>
</row>
@@ -3508,6 +3508,16 @@
</row>
<row>
+ <entry><structfield>indislive</structfield></entry>
+ <entry><type>bool</type></entry>
+ <entry></entry>
+ <entry>
+ If false, the index is in process of being dropped, and should be
+ ignored for all purposes (including HOT-safety decisions)
+ </entry>
+ </row>
+
+ <row>
<entry><structfield>indkey</structfield></entry>
<entry><type>int2vector</type></entry>
<entry><literal><link linkend="catalog-pg-attribute"><structname>pg_attribute</structname></link>.attnum</literal></entry>
diff --git a/doc/src/sgml/ref/drop_index.sgml b/doc/src/sgml/ref/drop_index.sgml
index 343f7aca003..98fd9c966c3 100644
--- a/doc/src/sgml/ref/drop_index.sgml
+++ b/doc/src/sgml/ref/drop_index.sgml
@@ -40,34 +40,33 @@ DROP INDEX [ CONCURRENTLY ] [ IF EXISTS ] <replaceable class="PARAMETER">name</r
<variablelist>
<varlistentry>
- <term><literal>IF EXISTS</literal></term>
+ <term><literal>CONCURRENTLY</literal></term>
<listitem>
<para>
- Do not throw an error if the index does not exist. A notice is issued
- in this case.
+ Drop the index without locking out concurrent selects, inserts, updates,
+ and deletes on the index's table. A normal <command>DROP INDEX</>
+ acquires exclusive lock on the table, blocking other accesses until the
+ index drop can be completed. With this option, the command instead
+ waits until conflicting transactions have completed.
+ </para>
+ <para>
+ There are several caveats to be aware of when using this option.
+ Only one index name can be specified, and the <literal>CASCADE</> option
+ is not supported. (Thus, an index that supports a <literal>UNIQUE</> or
+ <literal>PRIMARY KEY</> constraint cannot be dropped this way.)
+ Also, regular <command>DROP INDEX</> commands can be
+ performed within a transaction block, but
+ <command>DROP INDEX CONCURRENTLY</> cannot.
</para>
</listitem>
</varlistentry>
<varlistentry>
- <term><literal>CONCURRENTLY</literal></term>
+ <term><literal>IF EXISTS</literal></term>
<listitem>
<para>
- When this option is used, <productname>PostgreSQL</> will drop the
- index without taking any locks that prevent concurrent selects, inserts,
- updates, or deletes on the table; whereas a standard index drop
- waits for a lock that locks out everything on the table until it's done.
- Concurrent drop index is a two stage process. First, we mark the index
- both invalid and not ready then commit the change. Next we wait until
- there are no users locking the table who can see the index.
- </para>
- <para>
- There are several caveats to be aware of when using this option.
- Only one index name can be specified if the <literal>CONCURRENTLY</literal>
- parameter is specified. Regular <command>DROP INDEX</> command can be
- performed within a transaction block, but
- <command>DROP INDEX CONCURRENTLY</> cannot.
- The CASCADE option is not supported when dropping an index concurrently.
+ Do not throw an error if the index does not exist. A notice is issued
+ in this case.
</para>
</listitem>
</varlistentry>