<!--
$PostgreSQL $
PostgreSQL documentation
-->

<refentry id="APP-REINDEXDB">
 <refmeta>
  <refentrytitle id="APP-REINDEXDB-TITLE"><application>reindexdb</application></refentrytitle>
  <manvolnum>1</manvolnum>
  <refmiscinfo>Application</refmiscinfo>
 </refmeta>

 <refnamediv>
  <refname id="reindexdb">reindexdb</refname>
  <refpurpose>reindex a <productname>PostgreSQL</productname> database</refpurpose>
 </refnamediv>

 <indexterm zone="app-reindexdb">
  <primary>reindexdb</primary>
 </indexterm>

 <refsynopsisdiv>
  <cmdsynopsis>
   <command>reindexdb</command>
   <arg rep="repeat"><replaceable>connection-option</replaceable></arg>
   <arg>--table | -t <replaceable>table</replaceable> </arg>
   <arg>--index | -i <replaceable>index</replaceable> </arg>
   <arg><replaceable>dbname</replaceable></arg>
   <sbr>
   <command>reindexdb</command>
   <arg rep="repeat"><replaceable>connection-option</replaceable></arg>
   <arg>--all | -a</arg>
   <sbr>
   <command>reindexdb</command>
   <arg rep="repeat"><replaceable>connection-option</replaceable></arg>
   <arg>--system | -s</arg>
   <arg><replaceable>dbname</replaceable></arg>
  </cmdsynopsis>
 </refsynopsisdiv>
 

 <refsect1>
  <title>Description</title>

  <para>
   <application>reindexdb</application> is a utility for rebuilding indexes
   in a <productname>PostgreSQL</productname> database.
  </para>

  <para>
   <application>reindexdb</application> is a wrapper around the SQL
   command <xref linkend="SQL-REINDEX" endterm="sql-reindex-title">.
   There is no effective difference between reindexing databases via
   this utility and via other methods for accessing the server.
  </para>

 </refsect1>


 <refsect1>
  <title>Options</title>

   <para>
    <application>reindexdb</application> accepts the following command-line arguments:
    
    <variablelist>
     <varlistentry>
      <term><option>-a</></term>
      <term><option>--all</></term>
      <listitem>
       <para>
	Reindex all databases.
       </para>
      </listitem>
     </varlistentry>

     <varlistentry>
      <term><option>-s</></term>
      <term><option>--system</></term>
      <listitem>
       <para>
	Reindex database's system catalogs.
       </para>
      </listitem>
     </varlistentry>

     <varlistentry>
      <term><option>-t <replaceable class="parameter">table</replaceable></></term>
      <term><option>--table <replaceable class="parameter">table</replaceable></></term>
      <listitem>
       <para>
	Reindex <replaceable class="parameter">table</replaceable> only.
       </para>
      </listitem>
     </varlistentry>

     <varlistentry>
      <term><option>-i <replaceable class="parameter">index</replaceable></></term>
      <term><option>--index <replaceable class="parameter">index</replaceable></></term>
      <listitem>
       <para>
	Recreate <replaceable class="parameter">index</replaceable> only.
       </para>
      </listitem>
     </varlistentry>

     <varlistentry>
      <term><option><optional>-d</> <replaceable class="parameter">dbname</replaceable></></term>
      <term><option><optional>--dbname</> <replaceable class="parameter">dbname</replaceable></></term>
      <listitem>
       <para>
	Specifies the name of the database to be reindexed.
	If this is not specified and <option>-a</option> (or
	<option>--all</option>) is not used, the database name is read
	from the environment variable <envar>PGDATABASE</envar>.  If
	that is not set, the user name specified for the connection is
	used.
       </para>
      </listitem>
     </varlistentry>

     <varlistentry>
      <term><option>-e</></term>
      <term><option>--echo</></term>
      <listitem>
       <para>
        Echo the commands that <application>reindexdb</application> generates
	and sends to the server.
       </para>
      </listitem>
     </varlistentry>

     <varlistentry>
      <term><option>-q</></term>
      <term><option>--quiet</></term>
      <listitem>
       <para>
        Do not display a response.
       </para>
      </listitem>
     </varlistentry>

    </variablelist>
   </para>

   <para>
    <application>reindexdb</application> also accepts 
    the following command-line arguments for connection parameters:

    <variablelist>
     <varlistentry>
      <term><option>-h <replaceable class="parameter">host</replaceable></></term>
      <term><option>--host <replaceable class="parameter">host</replaceable></></term>
      <listitem>
       <para>
	Specifies the host name of the machine on which the server is
	running.  If the value begins with a slash, it is used as the
	directory for the Unix domain socket.
       </para>
      </listitem>
     </varlistentry>

     <varlistentry>
      <term><option>-p <replaceable class="parameter">port</replaceable></></term>
      <term><option>--port <replaceable class="parameter">port</replaceable></></term>
      <listitem>
       <para>
	Specifies the TCP port or local Unix domain socket file 
	extension on which the server
	is listening for connections.
       </para>
      </listitem>
     </varlistentry>

     <varlistentry>
      <term><option>-U <replaceable class="parameter">username</replaceable></></term>
      <term><option>--username <replaceable class="parameter">username</replaceable></></term>
      <listitem>
       <para>
        User name to connect as.
       </para>
      </listitem>
     </varlistentry>

     <varlistentry>
      <term><option>-W</></term>
      <term><option>--password</></term>
      <listitem>
       <para>
        Force password prompt.
       </para>
      </listitem>
     </varlistentry>
    </variablelist>
   </para>
 </refsect1>


 <refsect1>
  <title>Environment</title>

  <variablelist>
   <varlistentry>
    <term><envar>PGDATABASE</envar></term>
    <term><envar>PGHOST</envar></term>
    <term><envar>PGPORT</envar></term>
    <term><envar>PGUSER</envar></term>

    <listitem>
     <para>
      Default connection parameters
     </para>
    </listitem>
   </varlistentry>
  </variablelist>

  <para>
   This utility, like most other <productname>PostgreSQL</> utilities,
   also uses the environment variables supported by <application>libpq</>
   (see <xref linkend="libpq-envars">).
  </para>

 </refsect1>


 <refsect1>
  <title>Diagnostics</title>

  <para>
   In case of difficulty, see <xref linkend="SQL-REINDEX"
   endterm="sql-reindex-title"> and <xref linkend="APP-PSQL"> for
   discussions of potential problems and error messages.
   The database server must be running at the
   targeted host.  Also, any default connection settings and environment
   variables used by the <application>libpq</application> front-end
   library will apply.
  </para>

 </refsect1>


 <refsect1>
  <title>Notes</title>

  <para>
   <application>reindexdb</application> might need to connect several
   times to the <productname>PostgreSQL</productname> server, asking
   for a password each time. It is convenient to have a
   <filename>~/.pgpass</> file in such cases. See <xref
   linkend="libpq-pgpass"> for more information.
  </para>
 </refsect1>


 <refsect1>
  <title>Examples</title>

   <para>
    To reindex the database <literal>test</literal>:
<screen>
<prompt>$ </prompt><userinput>reindexdb test</userinput>
</screen>
   </para>

   <para>
    To reindex the table <literal>foo</literal> and the index
    <literal>bar</literal> in a database named <literal>abcd</literal>:
<screen>
<prompt>$ </prompt><userinput>reindexdb --table foo --index bar abcd</userinput>
</screen>
   </para>

 </refsect1>

 <refsect1>
  <title>See Also</title>

  <simplelist type="inline">
   <member><xref linkend="sql-reindex" endterm="sql-reindex-title"></member>
  </simplelist>
 </refsect1>

</refentry>
