Commit 5df99f64 authored by Tom Lane's avatar Tom Lane

Improve FILES section of psql reference page.

Primarily, explain where to find the system-wide psqlrc file, per recent
gripe from John Sutton.  Do some general wordsmithing and improve the
markup, too.

Also adjust psqlrc.sample so its comments about file location are somewhat
trustworthy.  (Not sure why we bother with this file when it's empty,
but whatever.)

Back-patch to 9.2 where the startup file naming scheme was last changed.
parent 061b079f
...@@ -3513,42 +3513,53 @@ PSQL_EDITOR_LINENUMBER_ARG='--line ' ...@@ -3513,42 +3513,53 @@ PSQL_EDITOR_LINENUMBER_ARG='--line '
<refsect1> <refsect1>
<title>Files</title> <title>Files</title>
<itemizedlist> <variablelist>
<varlistentry>
<term><filename>psqlrc</filename> and <filename>~/.psqlrc</filename></term>
<listitem> <listitem>
<para> <para>
Unless it is passed an <option>-X</option> Unless it is passed an <option>-X</option> or <option>-c</option> option,
or <option>-c</option> option, <application>psql</application> attempts to read and execute commands
<application>psql</application> attempts to from the system-wide startup file (<filename>psqlrc</filename>) and then
read and execute commands from the system-wide the user's personal startup file (<filename>~/.psqlrc</filename>), after
<filename>psqlrc</filename> file and the user's connecting to the database but before accepting normal commands.
<filename>~/.psqlrc</filename> file before starting up. These files can be used to set up the client and/or the server to taste,
(On Windows, the user's startup file is named typically with <command>\set</command> and <command>SET</command>
<filename>%APPDATA%\postgresql\psqlrc.conf</filename>.) commands.
See <filename><replaceable>PREFIX</>/share/psqlrc.sample</>
for information on setting up the system-wide file. It could be used
to set up the client or the server to taste (using the <command>\set
</command> and <command>SET</command> commands).
</para> </para>
<para> <para>
The location of the user's <filename>~/.psqlrc</filename> file can The system-wide startup file is named <filename>psqlrc</filename> and is
also be set explicitly via the <envar>PSQLRC</envar> environment sought in the installation's <quote>system configuration</> directory,
setting. which is most reliably identified by running <literal>pg_config
--sysconfdir</>. By default this directory will be <filename>../etc/</>
relative to the directory containing
the <productname>PostgreSQL</productname> executables. The name of this
directory can be set explicitly via the <envar>PGSYSCONFDIR</envar>
environment variable.
</para>
<para>
The user's personal startup file is named <filename>.psqlrc</filename>
and is sought in the invoking user's home directory. On Windows, which
lacks such a concept, the personal startup file is named
<filename>%APPDATA%\postgresql\psqlrc.conf</filename>.
The location of the user's startup file can be set explicitly via
the <envar>PSQLRC</envar> environment variable.
</para> </para>
</listitem>
<listitem>
<para> <para>
Both the system-wide <filename>psqlrc</filename> file and the user's Both the system-wide startup file and the user's personal startup file
<filename>~/.psqlrc</filename> file can be made <application>psql</application>-version-specific can be made <application>psql</application>-version-specific
by appending a dash and the <productname>PostgreSQL</productname> by appending a dash and the <productname>PostgreSQL</productname>
major or minor <application>psql</application> release number, major or minor release number to the file name,
for example <filename>~/.psqlrc-9.2</filename> or for example <filename>~/.psqlrc-9.2</filename> or
<filename>~/.psqlrc-9.2.5</filename>. The most specific <filename>~/.psqlrc-9.2.5</filename>. The most specific
version-matching file will be read in preference to a version-matching file will be read in preference to a
non-version-specific file. non-version-specific file.
</para> </para>
</listitem> </listitem>
</varlistentry>
<varlistentry>
<term><filename>.psql_history</filename></term>
<listitem> <listitem>
<para> <para>
The command-line history is stored in the file The command-line history is stored in the file
...@@ -3556,12 +3567,12 @@ PSQL_EDITOR_LINENUMBER_ARG='--line ' ...@@ -3556,12 +3567,12 @@ PSQL_EDITOR_LINENUMBER_ARG='--line '
<filename>%APPDATA%\postgresql\psql_history</filename> on Windows. <filename>%APPDATA%\postgresql\psql_history</filename> on Windows.
</para> </para>
<para> <para>
The location of the history file can The location of the history file can be set explicitly via
also be set explicitly via the <envar>PSQL_HISTORY</envar> environment the <envar>PSQL_HISTORY</envar> environment variable.
setting.
</para> </para>
</listitem> </listitem>
</itemizedlist> </varlistentry>
</variablelist>
</refsect1> </refsect1>
......
-- --
-- psql configuration file -- system-wide psql configuration file
-- --
-- This file is read before the .psqlrc file in the user's home directory. -- This file is read before the .psqlrc file in the user's home directory.
-- --
-- Copy this to your sysconf directory (typically /usr/local/pgsql/etc) and -- Copy this to your installation's sysconf directory and rename it psqlrc.
-- rename it psqlrc. -- The sysconf directory can be identified via "pg_config --sysconfdir".
--
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment