aboutsummaryrefslogtreecommitdiff
path: root/doc/src/sgml/ref/psql-ref.sgml
diff options
context:
space:
mode:
Diffstat (limited to 'doc/src/sgml/ref/psql-ref.sgml')
-rw-r--r--doc/src/sgml/ref/psql-ref.sgml1873
1 files changed, 1026 insertions, 847 deletions
diff --git a/doc/src/sgml/ref/psql-ref.sgml b/doc/src/sgml/ref/psql-ref.sgml
index 2a71416abed..a8fd9473c2f 100644
--- a/doc/src/sgml/ref/psql-ref.sgml
+++ b/doc/src/sgml/ref/psql-ref.sgml
@@ -12,6 +12,7 @@
<REFPURPOSE>
<productname>Postgres</productname> interactive client
</REFPURPOSE>
+ </refnamediv>
<REFSYNOPSISDIV>
<REFSYNOPSISDIVINFO>
<DATE>1998-09-26</DATE>
@@ -23,851 +24,1029 @@ psql -A [ -c <replaceable class="parameter">query</replaceable> ] [ -d <replacea
[ -o <replaceable class="parameter">filename</replaceable> ] [ -p <replaceable class="parameter">port</replaceable> ] -qsSt ] [ -T <replaceable class="parameter">table_options</replaceable> ] -ux [ <replaceable class="parameter">dbname</replaceable> ]
</SYNOPSIS>
-<REFSECT2 ID="R2-APP-PSQL-1">
-<REFSECT2INFO>
-<DATE>1998-09-26</DATE>
-</REFSECT2INFO>
-<TITLE>
-Inputs
-</TITLE>
-<PARA>
-<application>psql</application> accepts many command-line arguments,
-a rich set of meta-commands, and the full <acronym>SQL</acronym> language
-supported by <productname>Postgres</productname>. The most common
-command-line arguments are:
-
-<VARIABLELIST>
-<VARLISTENTRY>
-<TERM>
-<REPLACEABLE CLASS="PARAMETER">dbname</REPLACEABLE>
-</TERM>
-<LISTITEM>
-<PARA>
-The name of an existing database to access.
-<replaceable class="parameter">dbname</replaceable>
-defaults to the value of the
-<envar>USER</envar>
-environment variable or, if that's not set, to the Unix account name of the
-current user.
-
-</PARA>
-</LISTITEM>
-</VARLISTENTRY>
-
-<VARLISTENTRY>
-<TERM>
--c <replaceable class="parameter">query</replaceable>
-</TERM>
-<LISTITEM>
-<PARA>
-A single query to run. <application>psql</application> will exit on completion.
-</PARA>
-</LISTITEM>
-</VARLISTENTRY>
-
-</variablelist>
-
-<para>
-The full set of command-line arguments and meta-commands are described in a subsequent
-section.
-
-<para>
-There are some environment variables which can be used in liu of
-command line arguments.
-Additionally, the <productname>Postgres</productname> frontend library used by
-the <application>psql</application> application
-looks for other optional environment variables to configure, for example,
-the style of date/time representation and the local time zone. Refer
-to the chapter on <filename>libpq</filename> in the
-<citetitle>Programmer's Guide</citetitle> for more details.
-
-<para>
-You may set any of the following environment variables to avoid
-specifying command-line options:
-
-<VARIABLELIST>
-<VARLISTENTRY>
-<TERM>
-<envar>PGHOST</envar>
-</TERM>
-<LISTITEM>
-<PARA>
-The <acronym>DNS</acronym> host name of the database server.
-Setting <envar>PGHOST</envar> to a non-zero-length string causes
-<acronym>TCP/IP</acronym> communication
-to be used, rather than the default local Unix domain sockets.
-</PARA>
-</LISTITEM>
-</VARLISTENTRY>
-
-<VARLISTENTRY>
-<TERM>
-<envar>PGPORT</envar>
-</TERM>
-<LISTITEM>
-<PARA>
-The port number on which a <productname>Postgres</productname> server is listening.
-Defaults to <literal>5432</literal>.
-</PARA>
-</LISTITEM>
-</VARLISTENTRY>
-
-<VARLISTENTRY>
-<TERM>
-<envar>PGTTY</envar>
-</TERM>
-<LISTITEM>
-<PARA>
-The target for display of messages from the client support library.
-Not required.
-</PARA>
-</LISTITEM>
-</VARLISTENTRY>
-
-<VARLISTENTRY>
-<TERM>
-<envar>PGOPTION</envar>
-</TERM>
-<LISTITEM>
-<PARA>
-If <envar>PGOPTION</envar>
-is specified, then the options it contains are parsed
-<emphasis>before</emphasis>
-any command-line options.
-</PARA>
-</LISTITEM>
-</VARLISTENTRY>
-
-<VARLISTENTRY>
-<TERM>
-<envar>PGREALM</envar>
-</TERM>
-<LISTITEM>
-<PARA>
-<envar>PGREALM</envar>
-only applies if
-<productname>Kerberos</productname>
-authentication is in use.
-If this environment variable is set, <productname>Postgres</productname>
-will attempt authentication with servers for this realm and will use
-separate ticket files to avoid conflicts with local ticket files.
-See the <citetitle>PostgreSQL Administrator's Guide</citetitle>
-for additional information on
-<productname>Kerberos</productname>.
-
-</variablelist>
-
-<REFSECT2 ID="R2-APP-PSQL-2">
-<REFSECT2INFO>
-<DATE>1998-09-26</DATE>
-</REFSECT2INFO>
-<TITLE>
-Outputs
-</TITLE>
-<PARA>
-
-<application>psql</application>
-returns 0 to the shell on successful completion of all queries,
-1 for errors, 2 for abrupt disconnection from the backend.
-The default TAB delimiter is used.
-<application>psql</application>
-will also return 1 if the connection to a database could not be made for
-any reason.
-
-<REFSECT1 ID="R1-APP-PSQL-1">
-<REFSECT1INFO>
-<DATE>1998-09-26</DATE>
-</REFSECT1INFO>
-<TITLE>
-Description
-</TITLE>
-<PARA>
-<application>psql</application> is a character-based front-end to
-<productname>Postgres</productname>.
-It enables you to
-type in queries interactively, issue them to <productname>Postgres</productname>,
-and see the query
-results.
-
-<para>
-<application>psql</application>
-is a <productname>Postgres</productname> client application. Hence, a
-<application>postmaster</application> process
- must be running on the database server host before
-<application>psql</application>
-is executed. In addition, the correct parameters to identify
-the database server, such as the
-<application>postmaster</application> host name,
- may need to be specified
-as described below.
-
-<para>
-When
-<application>psql</application>
-starts, it reads SQL commands from
-<filename>/etc/psqlrc</filename>
-and then from
-<filename>$(<envar>HOME</envar>)/.psqlrc</filename>
-This allows SQL commands like
-<command>SET</command>
-which can be used to set the date style to be run at the start of
-every session.
-
-<REFSECT2 ID="R2-APP-PSQL-3">
-<REFSECT2INFO>
-<DATE>1998-09-26</DATE>
-</REFSECT2INFO>
-<TITLE>
-Connecting To A Database
-</TITLE>
-<para>
-<application>psql</application>
-attempts to make a connection to the database at the hostname and
-port number specified on the command line. If the connection could not
-be made for any reason (e.g. insufficient privileges, postmaster is not
-running on the server, etc)
-.IR <application>psql</application>
-will return an error that says
-<programlisting>
-Connection to database failed.
-</programlisting>
-The reason for the connection failure is not provided.
-
-<REFSECT2 ID="R2-APP-PSQL-4">
-<REFSECT2INFO>
-<DATE>1998-09-26</DATE>
-</REFSECT2INFO>
-<TITLE>
-Entering Queries
-</TITLE>
-<para>
-In normal operation,
-<application>psql</application> provides a prompt with the name of the
-database that <application>psql</application> is current connected to
-followed by the string "=>".
-For example,
-<programlisting>
-$ <userinput>psql testdb</userinput>
-Welcome to the POSTGRESQL interactive sql monitor:
- Please read the file COPYRIGHT for copyright terms of POSTGRESQL
-
- type \e? for help on slash commands
- type \eq to quit
- type \eg or terminate with semicolon to execute query
- You are currently connected to the database: testdb
-
-testdb=>
-</programlisting>
-
-<para>
-At the prompt, the user may type in <acronym>SQL</acronym> queries.
-Unless the -S option
-is set, input lines are sent to the backend when a query-terminating
-semicolon is reached.
-
-<para>
-Whenever a query is executed,
-<application>psql</application> also polls for asynchronous notification
-events generated by <command>LISTEN</command> and <command>NOTIFY</command>.
-
-<para>
-<application>psql</application>
-can be used in a pipe sequence, and automatically detects when it
-is not listening or talking to a real tty.
-
-<REFSECT1 ID="R1-APP-PSQL-2">
-<REFSECT1INFO>
-<DATE>1998-09-26</DATE>
-</REFSECT1INFO>
-<TITLE>
-Command-line Options
-</TITLE>
-<para>
-<application>psql</application>
-understands the following command-line options:
-
-<VARIABLELIST>
-<VARLISTENTRY>
-<TERM>
--A
-</TERM>
-<LISTITEM>
-<PARA>
-Turn off fill justification when printing out table elements.
-
-<VARLISTENTRY>
-<TERM>
--c <replaceable class="parameter">query</replaceable>
-</TERM>
-<LISTITEM>
-<PARA>
-Specifies that
-<application>psql</application>
-is to execute one query string,
-<replaceable class="parameter">query</replaceable>,
-and then exit. This is useful for shell scripts, typically in
-conjunction with the <option>-q</option> option in shell scripts.
-
-<VARLISTENTRY>
-<TERM>
--d <replaceable class="parameter">dbname</replaceable>
-</TERM>
-<LISTITEM>
-<PARA>
-Specifies the name of the database to connect to. This is equivalent to specifying
-<replaceable class="parameter">dbname</replaceable> as the last field in the
-command line.
-
-<VARLISTENTRY>
-<TERM>
--e
-</TERM>
-<LISTITEM>
-<PARA>
-Echo the query sent to the backend
-
-<VARLISTENTRY>
-<TERM>
--f <replaceable class="parameter">filename</replaceable>
-</TERM>
-<LISTITEM>
-<PARA>
-Use the file <replaceable class="parameter">filename</replaceable>
-as the source of queries instead of reading queries interactively.
-This file must be specified for and visible to the client frontend.
-
-<VARLISTENTRY>
-<TERM>
--F <replaceable class="parameter">separator</replaceable>
-</TERM>
-<LISTITEM>
-<PARA>
-Use <replaceable class="parameter">separator</replaceable>
-as the field separator.
-The default is an ASCII vertical bar ("|").
-
-<VARLISTENTRY>
-<TERM>
--h <replaceable class="parameter">hostname</replaceable>
-</TERM>
-<LISTITEM>
-<PARA>
-Specifies the host name of the machine on which the
-<application>postmaster</application>
-is running.
-Without this option, communication is performed using
-local Unix domain sockets.
-
-<VARLISTENTRY>
-<TERM>
--H
-</TERM>
-<LISTITEM>
-<PARA>
-Turns on
-<acronym>HTML 3.0</acronym>
-tabular output.
-
-<VARLISTENTRY>
-<TERM>
--l
-</TERM>
-<LISTITEM>
-<PARA>
-Lists all available databases, then exit. Other non-connection options are ignored.
-
-<VARLISTENTRY>
-<TERM>
--n
-</TERM>
-<LISTITEM>
-<PARA>
-Do not use the readline library for input line editing and command history.
-
-<VARLISTENTRY>
-<TERM>
--o <replaceable class="parameter">filename</replaceable>
-</TERM>
-<LISTITEM>
-<PARA>
-Put all output into file <replaceable class="parameter">filename</replaceable>.
-The path must be writable by the client.
-
-<VARLISTENTRY>
-<TERM>
--p <replaceable class="parameter">port</replaceable>
-</TERM>
-<LISTITEM>
-<PARA>
-Specifies the TCP/IP port or, by omission, the local Unix domain socket file
-extension on which the
-<application>postmaster</application>
-is listening for connections. Defaults to the value of the
-<envar>PGPORT</envar>
-environment variable, if set, or to 5432.
-
-<VARLISTENTRY>
-<TERM>
--q
-</TERM>
-<LISTITEM>
-<PARA>
-Specifies that
-<application>psql</application>
-should do its work quietly. By default, it
-prints welcome and exit messages and prompts for each query, and prints
-out the number of rows returned from a query.
-If this option is used, none of this happens. This is useful with the
-<option>-c</option> option.
-
-<VARLISTENTRY>
-<TERM>
--s
-</TERM>
-<LISTITEM>
-<PARA>
-Run in single-step mode where the user is prompted for each query before
-it is sent to the backend.
-
-<VARLISTENTRY>
-<TERM>
--S
-</TERM>
-<LISTITEM>
-<PARA>
-Runs in single-line mode where each query is terminated by a newline,
-instead of a semicolon.
-
-<VARLISTENTRY>
-<TERM>
--t
-</TERM>
-<LISTITEM>
-<PARA>
-Turn off printing of column names.
-This is useful with the
-<option>-c</option>
-option in shell scripts.
-
-<VARLISTENTRY>
-<TERM>
--T <replaceable class="parameter">table_options</replaceable>
-</TERM>
-<LISTITEM>
-<PARA>
-Allows you to specify options to be placed within the
- <sgmltag>table ...</sgmltag> tag for <acronym>HTML 3.0</acronym>
-tabular output.For example, <literal>border</literal>
-will give you tables with borders.
-This must be used in conjunction with the <option>-H</option> option.
-
-<VARLISTENTRY>
-<TERM>
--u
-</TERM>
-<LISTITEM>
-<PARA>
-Asks the user for the user name and password before connecting to the database.
-If the database does not require password authentication then these are
-ignored. If the option is not used (and the PGPASSWORD environment variable
-is not set) and the database requires password authentication, then the
-connection will fail. The user name is ignored anyway.
-
-<VARLISTENTRY>
-<TERM>
--x
-</TERM>
-<LISTITEM>
-<PARA>
-Turns on extended row format mode. When enabled each row will have its column
-names printed on the left with the column values printed on the right.
-This is useful for rows which are otherwise too long to fit into
-one screen line. HTML row output supports this mode also.
-</variablelist>
-
-<para>
-You may set environment variables to avoid typing some of the above
-options. See the section on environment variables below.
-
-
-<REFSECT1 ID="R1-APP-PSQL-3">
-<REFSECT1INFO>
-<DATE>1998-09-26</DATE>
-</REFSECT1INFO>
-<TITLE>
-<application>psql</application> Meta-Commands
-</TITLE>
-<para>
-Anything you enter in <application>psql</application>
-that begins with an unquoted backslash is a <application>psql</application>
-meta-command. Anything else is <acronym>SQL</acronym>
- and simply goes into the current query buffer
-(and once you have at least one complete query, it gets automatically
-submitted to the backend).
-<Application>psql</Application> meta-commands are also called slash commands.
-
-<para>
-The format of a <application>psql</application> command is the backslash,
-followed immediately by
-a command verb, then any arguments. The arguments are separated from the
-command verb and each other by any number of white space characters.
-
-<para>
-With single character command verbs, you don't actually need to separate the
-command verb from the argument with white space, for historical reasons.
-You should anyway.
-
-<para>
-The following meta-commands are defined:
-
-<VARIABLELIST>
-<VARLISTENTRY>
-<TERM>
-<literal>\a</literal>
-</TERM>
-<LISTITEM>
-<PARA>
-Toggle field alignment when printing out table elements.
-
-<VARLISTENTRY>
-<TERM>
-<literal>\C</literal> <replaceable class="parameter">caption</replaceable>
-</TERM>
-<LISTITEM>
-<PARA>
-Set the HTML3.0 table caption to
-<quote><replaceable class="parameter">caption</replaceable></quote>.
-
-<VARLISTENTRY>
-<TERM>
-<literal>\connect</literal> <replaceable class="parameter">dbname</replaceable> [ <replaceable class="parameter">username</replaceable> ]
-</TERM>
-<LISTITEM>
-<PARA>
-Establish a connection to a new database, using the default
-<replaceable class="parameter">username</replaceable> if none is specified.
-The previous connection is closed.
-
-<VARLISTENTRY>
-<TERM>
-<literal>\copy</literal> <replaceable class="parameter">dbname</replaceable> { FROM | TO } <replaceable class="parameter">filename</replaceable>
-</TERM>
-<LISTITEM>
-<PARA>
-Perform a frontend (client) copy. This is an operation that runs a SQL COPY command,
-but instead of the backend reading or writing the specified file, and
-consequently requiring backend access and special user privilege,
-<application>psql</application> reads or writes the
-file and routes the data to or from the backend. The default <literal>tab</literal>
-delimiter is used.
-<tip>
-<para>
-This operation is not as efficient as the <acronym>SQL</acronym>
-<command>COPY</command> command because all data must pass through the
-client/server IP or socket connection. For large amounts of data this other
-technique may be preferable.
-</tip>
-
-<VARLISTENTRY>
-<TERM>
-<literal>\d</literal> [ <replaceable class="parameter">table</replaceable> ]
-</TERM>
-<LISTITEM>
-<PARA>
-List tables in the database, or if <replaceable class="parameter">table</replaceable>
-is specified, list the columns in that table.
-If table name is specified as an asterisk (<quote>*</quote>),
-list all tables and column information for each tables.
-
-<VARLISTENTRY>
-<TERM>
-<literal>\da</literal>
-</TERM>
-<LISTITEM>
-<PARA>
-List all available aggregates.
-
-<VARLISTENTRY>
-<TERM>
-<literal>\dd</literal> <replaceable class="parameter">object</replaceable>
-</TERM>
-<LISTITEM>
-<PARA>
-List the description from <literal>pg_description</literal>
-of the specified object, which can be a
-table, table.column, type, operator, or aggregate.
-<tip>
-<para>
-Not all objects have a description in <literal>pg_description</literal>.
-This meta-command can be useful to get a quick description of a native
-<productname>Postgres</productname> feature.
-</tip>
-
-<VARLISTENTRY>
-<TERM>
-<literal>\df</literal>
-</TERM>
-<LISTITEM>
-<PARA>
-List functions.
-
-<VARLISTENTRY>
-<TERM>
-<literal>\di</literal>
-</TERM>
-<LISTITEM>
-<PARA>
-List only indexes.
-
-<VARLISTENTRY>
-<TERM>
-<literal>\do</literal>
-</TERM>
-<LISTITEM>
-<PARA>
-List only operators.
-
-<VARLISTENTRY>
-<TERM>
-<literal>\ds</literal>
-</TERM>
-<LISTITEM>
-<PARA>
-List only sequences.
-
-<VARLISTENTRY>
-<TERM>
-<literal>\dS</literal>
-</TERM>
-<LISTITEM>
-<PARA>
-List system tables and indexes.
-
-<VARLISTENTRY>
-<TERM>
-<literal>\dt</literal>
-</TERM>
-<LISTITEM>
-<PARA>
-List only non-system tables.
-
-<VARLISTENTRY>
-<TERM>
-<literal>\dT</literal>
-</TERM>
-<LISTITEM>
-<PARA>
-List types.
-
-<VARLISTENTRY>
-<TERM>
-<literal>\e</literal> [ <replaceable class="parameter">filename</replaceable> ]
-</TERM>
-<LISTITEM>
-<PARA>
-Edit the current query buffer or the contents of the file
-<replaceable class="parameter">filename</replaceable>.
-
-<VARLISTENTRY>
-<TERM>
-<literal>\E</literal> [ <replaceable class="parameter">filename</replaceable> ]
-</TERM>
-<LISTITEM>
-<PARA>
-Edit the current query buffer or the contents of the file
-<replaceable class="parameter">filename</replaceable>
-and execute it upon editor exit.
-
-<VARLISTENTRY>
-<TERM>
-<literal>\f</literal> [ <replaceable class="parameter">separator</replaceable> ]
-</TERM>
-<LISTITEM>
-<PARA>
-Set the field separator. Default is a single blank space.
-
-<VARLISTENTRY>
-<TERM>
-<literal>\g</literal> [ { <replaceable class="parameter">filename</replaceable> | <literal>|</literal><replaceable class="parameter">command</replaceable> } ]
-</TERM>
-<LISTITEM>
-<PARA>
-Send the current query input buffer to the backend and optionally
-save the output in <replaceable class="parameter">filename</replaceable>
-or pipe the output into a separate Unix shell to execute
-<replaceable class="parameter">command</replaceable>.
-
-<VARLISTENTRY>
-<TERM>
-<literal>\h</literal> [ <replaceable class="parameter">command</replaceable> ]
-</TERM>
-<LISTITEM>
-<PARA>
-Give syntax help on the specified SQL command.
-If <replaceable class="parameter">command</replaceable> is not a defined SQL command
-(or is not documented in <application>psql</application>), or if
-<replaceable class="parameter">command</replaceable> is not specified,
-then <application>psql</application> will
-list all the commands for which syntax help is
-available. If <replaceable class="parameter">command</replaceable>
-is an asterisk (<quote>*</quote>), then
-give syntax help on all SQL commands.
-
-<VARLISTENTRY>
-<TERM>
-<literal>\H</literal>
-</TERM>
-<LISTITEM>
-<PARA>
-Toggle <acronym>HTML3</acronym> output. This is equivalent to the <option>-H</option>
-command-line option.
-
-<VARLISTENTRY>
-<TERM>
-<literal>\i</literal> <replaceable class="parameter">filename</replaceable>
-</TERM>
-<LISTITEM>
-<PARA>
-Read queries from the file <replaceable class="parameter">filename</replaceable>
-into the query input buffer.
-
-<VARLISTENTRY>
-<TERM>
-<literal>\l</literal>
-</TERM>
-<LISTITEM>
-<PARA>
-List all the databases in the server.
-
-<VARLISTENTRY>
-<TERM>
-<literal>\m</literal>
-</TERM>
-<LISTITEM>
-<PARA>
-Toggle the old monitor-like table display, which includes border characters
-surrounding the table.
-This is standard SQL output.
-By default, <application>psql</application> includes only field separators
-between columns.
-
-<VARLISTENTRY>
-<TERM>
-<literal>\o</literal> [ { <replaceable class="parameter">filename</replaceable> | <literal>|</literal><replaceable class="parameter">command</replaceable> } ]
-</TERM>
-<LISTITEM>
-<PARA>
-Save future query results to the file
-<replaceable class="parameter">filename</replaceable> or pipe future
-results into a separate Unix shell to execute
-<replaceable class="parameter">command</replaceable>.
-If no arguments are specified, send query results to
-<filename>stdout</filename>.
-
-<VARLISTENTRY>
-<TERM>
-<literal>\p</literal>
-</TERM>
-<LISTITEM>
-<PARA>
-Print the current query buffer.
-
-<VARLISTENTRY>
-<TERM>
-<literal>\q</literal>
-</TERM>
-<LISTITEM>
-<PARA>
-Quit the <application>psql</application> program.
-
-<VARLISTENTRY>
-<TERM>
-<literal>\r</literal>
-</TERM>
-<LISTITEM>
-<PARA>
-Reset(clear) the query buffer.
-
-<VARLISTENTRY>
-<TERM>
-<literal>\s</literal> [ <replaceable class="parameter">filename</replaceable> ]
-</TERM>
-<LISTITEM>
-<PARA>
-Print or save the command line history to
-<replaceable class="parameter">filename</replaceable>.
-If <replaceable class="parameter">filename</replaceable> is omitted,
-do not save subsequent commands to a history file.
-This option is only available if <application>psql</application> is
-configured to use readline.
-
-<VARLISTENTRY>
-<TERM>
-<literal>\t</literal>
-</TERM>
-<LISTITEM>
-<PARA>
-Toggle display of output column name headings and row count footer (defaults to on).
-
-<VARLISTENTRY>
-<TERM>
-<literal>\T</literal> <replaceable class="parameter">table_options</replaceable>
-</TERM>
-<LISTITEM>
-<PARA>
-Allows you to specify options to be placed within the
- <sgmltag>table ...</sgmltag> tag
-for <acronym>HTML 3.0</acronym>
-tabular output.For example, <literal>border</literal>
-will give you tables with borders.
-This must be used in conjunction with the <command>\H</command> meta-command.
-
-<VARLISTENTRY>
-<TERM>
-<literal>\x</literal>
-</TERM>
-<LISTITEM>
-<PARA>
-Toggles extended row format mode. When enabled each row will have its column
-names printed on the left with the column values printed on the right.
-This is useful for rows which are otherwise too long to fit into
-one screen line. <acronym>HTML</acronym> row output mode supports this flag too.
-
-<VARLISTENTRY>
-<TERM>
-<literal>\w</literal> <replaceable class="parameter">filename</replaceable>
-</TERM>
-<LISTITEM>
-<PARA>
-Outputs the current query buffer to the file
-<replaceable class="parameter">filename</replaceable>.
-
-<VARLISTENTRY>
-<TERM>
-<literal>\z</literal>
-</TERM>
-<LISTITEM>
-<PARA>
-Produces a list of all tables in the database with their appropriate ACLs
-(grant/revoke permissions) listed.
-
-<VARLISTENTRY>
-<TERM>
-<literal>\!</literal> [ <replaceable class="parameter">command</replaceable> ]
-</TERM>
-<LISTITEM>
-<PARA>
-Escape to a separate Unix shell or execute the Unix command
-<replaceable class="parameter">command</replaceable>.
-
-<VARLISTENTRY>
-<TERM>
-<literal>\?</literal>
-</TERM>
-<LISTITEM>
-<PARA>
-Get help information about the slash (<quote>\</quote>) commands.
-
-</variablelist>
-
+ <REFSECT2 ID="R2-APP-PSQL-1">
+ <REFSECT2INFO>
+ <DATE>1998-09-26</DATE>
+ </REFSECT2INFO>
+ <TITLE>
+ Inputs
+ </TITLE>
+ <PARA>
+ <application>psql</application> accepts many command-line arguments,
+ a rich set of meta-commands, and the full <acronym>SQL</acronym> language
+ supported by <productname>Postgres</productname>. The most common
+ command-line arguments are:
+
+ <VARIABLELIST>
+ <VARLISTENTRY>
+ <TERM>
+ <REPLACEABLE CLASS="PARAMETER">dbname</REPLACEABLE>
+ </TERM>
+ <LISTITEM>
+ <PARA>
+ The name of an existing database to access.
+ <replaceable class="parameter">dbname</replaceable>
+ defaults to the value of the
+ <envar>USER</envar>
+ environment variable or, if that's not set, to the Unix account name of the
+ current user.
+
+ </PARA>
+ </LISTITEM>
+ </VARLISTENTRY>
+
+ <VARLISTENTRY>
+ <TERM>
+ -c <replaceable class="parameter">query</replaceable>
+ </TERM>
+ <LISTITEM>
+ <PARA>
+ A single query to run. <application>psql</application> will exit on completion.
+ </PARA>
+ </LISTITEM>
+ </VARLISTENTRY>
+
+ </variablelist>
+ </para>
+ <para>
+ The full set of command-line arguments and meta-commands are described in a subsequent
+ section.
+ </para>
+ <para>
+ There are some environment variables which can be used in liu of
+ command line arguments.
+ Additionally, the <productname>Postgres</productname> frontend library used by
+ the <application>psql</application> application
+ looks for other optional environment variables to configure, for example,
+ the style of date/time representation and the local time zone. Refer
+ to the chapter on <filename>libpq</filename> in the
+ <citetitle>Programmer's Guide</citetitle> for more details.
+ </para>
+ <para>
+ You may set any of the following environment variables to avoid
+ specifying command-line options:
+
+ <VARIABLELIST>
+ <VARLISTENTRY>
+ <TERM>
+ <envar>PGHOST</envar>
+ </TERM>
+ <LISTITEM>
+ <PARA>
+ The <acronym>DNS</acronym> host name of the database server.
+ Setting <envar>PGHOST</envar> to a non-zero-length string causes
+ <acronym>TCP/IP</acronym> communication
+ to be used, rather than the default local Unix domain sockets.
+ </PARA>
+ </LISTITEM>
+ </VARLISTENTRY>
+
+ <VARLISTENTRY>
+ <TERM>
+ <envar>PGPORT</envar>
+ </TERM>
+ <LISTITEM>
+ <PARA>
+ The port number on which a <productname>Postgres</productname> server is listening.
+ Defaults to <literal>5432</literal>.
+ </PARA>
+ </LISTITEM>
+ </VARLISTENTRY>
+
+ <VARLISTENTRY>
+ <TERM>
+ <envar>PGTTY</envar>
+ </TERM>
+ <LISTITEM>
+ <PARA>
+ The target for display of messages from the client support library.
+ Not required.
+ </PARA>
+ </LISTITEM>
+ </VARLISTENTRY>
+
+ <VARLISTENTRY>
+ <TERM>
+ <envar>PGOPTION</envar>
+ </TERM>
+ <LISTITEM>
+ <PARA>
+ If <envar>PGOPTION</envar>
+ is specified, then the options it contains are parsed
+ <emphasis>before</emphasis>
+ any command-line options.
+ </PARA>
+ </LISTITEM>
+ </VARLISTENTRY>
+
+ <VARLISTENTRY>
+ <TERM>
+ <envar>PGREALM</envar>
+ </TERM>
+ <LISTITEM>
+ <PARA>
+ <envar>PGREALM</envar>
+ only applies if
+ <productname>Kerberos</productname>
+ authentication is in use.
+ If this environment variable is set, <productname>Postgres</productname>
+ will attempt authentication with servers for this realm and will use
+ separate ticket files to avoid conflicts with local ticket files.
+ See the <citetitle>PostgreSQL Administrator's Guide</citetitle>
+ for additional information on
+ <productname>Kerberos</productname>.
+ </para>
+ </listitem>
+ </varlistentry>
+ </variablelist>
+ </para>
+ </refsect2>
+
+ <REFSECT2 ID="R2-APP-PSQL-2">
+ <REFSECT2INFO>
+ <DATE>1998-09-26</DATE>
+ </REFSECT2INFO>
+ <TITLE>
+ Outputs
+ </TITLE>
+ <PARA>
+
+ <application>psql</application>
+ returns 0 to the shell on successful completion of all queries,
+ 1 for errors, 2 for abrupt disconnection from the backend.
+ The default TAB delimiter is used.
+ <application>psql</application>
+ will also return 1 if the connection to a database could not be made for
+ any reason.
+ </para>
+ </refsect2>
+ </refsynopsisdiv>
+
+ <REFSECT1 ID="R1-APP-PSQL-1">
+ <REFSECT1INFO>
+ <DATE>1998-09-26</DATE>
+ </REFSECT1INFO>
+ <TITLE>
+ Description
+ </TITLE>
+ <PARA>
+ <application>psql</application> is a character-based front-end to
+ <productname>Postgres</productname>.
+ It enables you to
+ type in queries interactively, issue them to <productname>Postgres</productname>,
+ and see the query
+ results.
+ </para>
+ <para>
+ <application>psql</application>
+ is a <productname>Postgres</productname> client application. Hence, a
+ <application>postmaster</application> process
+ must be running on the database server host before
+ <application>psql</application>
+ is executed. In addition, the correct parameters to identify
+ the database server, such as the
+ <application>postmaster</application> host name,
+ may need to be specified
+ as described below.
+ </para>
+ <para>
+ When
+ <application>psql</application>
+ starts, it reads SQL commands from
+ <filename>/etc/psqlrc</filename>
+ and then from
+ <filename>$(<envar>HOME</envar>)/.psqlrc</filename>
+ This allows SQL commands like
+ <command>SET</command>
+ which can be used to set the date style to be run at the start of
+ every session.
+ </para>
+
+ <REFSECT2 ID="R2-APP-PSQL-3">
+ <REFSECT2INFO>
+ <DATE>1998-09-26</DATE>
+ </REFSECT2INFO>
+ <TITLE>
+ Connecting To A Database
+ </TITLE>
+ <para>
+ <application>psql</application>
+ attempts to make a connection to the database at the hostname and
+ port number specified on the command line. If the connection could not
+ be made for any reason (e.g. insufficient privileges, postmaster is not
+ running on the server, etc)
+ .IR <application>psql</application>
+ will return an error that says
+ <programlisting>
+ Connection to database failed.
+ </programlisting>
+ The reason for the connection failure is not provided.
+ </para>
+ </refsect2>
+
+ <REFSECT2 ID="R2-APP-PSQL-4">
+ <REFSECT2INFO>
+ <DATE>1998-09-26</DATE>
+ </REFSECT2INFO>
+ <TITLE>
+ Entering Queries
+ </TITLE>
+ <para>
+ In normal operation,
+ <application>psql</application> provides a prompt with the name of the
+ database that <application>psql</application> is current connected to
+ followed by the string "=>".
+ For example,
+ <programlisting>
+ $ <userinput>psql testdb</userinput>
+ Welcome to the POSTGRESQL interactive sql monitor:
+ Please read the file COPYRIGHT for copyright terms of POSTGRESQL
+
+ type \e? for help on slash commands
+ type \eq to quit
+ type \eg or terminate with semicolon to execute query
+ You are currently connected to the database: testdb
+
+ testdb=>
+ </programlisting>
+ </para>
+ <para>
+ At the prompt, the user may type in <acronym>SQL</acronym> queries.
+ Unless the -S option
+ is set, input lines are sent to the backend when a query-terminating
+ semicolon is reached.
+ </para>
+ <para>
+ Whenever a query is executed,
+ <application>psql</application> also polls for asynchronous notification
+ events generated by <command>LISTEN</command> and <command>NOTIFY</command>.
+ </para>
+ <para>
+ <application>psql</application>
+ can be used in a pipe sequence, and automatically detects when it
+ is not listening or talking to a real tty.
+ </para>
+ </refsect2>
+ </refsect1>
+
+ <REFSECT1 ID="R1-APP-PSQL-2">
+ <REFSECT1INFO>
+ <DATE>1998-09-26</DATE>
+ </REFSECT1INFO>
+ <TITLE>
+ Command-line Options
+ </TITLE>
+ <para>
+ <application>psql</application>
+ understands the following command-line options:
+
+ <VARIABLELIST>
+ <VARLISTENTRY>
+ <TERM>
+ -A
+ </TERM>
+ <LISTITEM>
+ <PARA>
+ Turn off fill justification when printing out table elements.
+ </para>
+ </listitem>
+ </varlistentry>
+
+ <VARLISTENTRY>
+ <TERM>
+ -c <replaceable class="parameter">query</replaceable>
+ </TERM>
+ <LISTITEM>
+ <PARA>
+ Specifies that
+ <application>psql</application>
+ is to execute one query string,
+ <replaceable class="parameter">query</replaceable>,
+ and then exit. This is useful for shell scripts, typically in
+ conjunction with the <option>-q</option> option in shell scripts.
+ </para>
+ </listitem>
+ </varlistentry>
+
+ <VARLISTENTRY>
+ <TERM>
+ -d <replaceable class="parameter">dbname</replaceable>
+ </TERM>
+ <LISTITEM>
+ <PARA>
+ Specifies the name of the database to connect to. This is equivalent to specifying
+ <replaceable class="parameter">dbname</replaceable> as the last field in the
+ command line.
+ </para>
+ </listitem>
+ </varlistentry>
+
+ <VARLISTENTRY>
+ <TERM>
+ -e
+ </TERM>
+ <LISTITEM>
+ <PARA>
+ Echo the query sent to the backend
+ </para>
+ </listitem>
+ </varlistentry>
+
+ <VARLISTENTRY>
+ <TERM>
+ -f <replaceable class="parameter">filename</replaceable>
+ </TERM>
+ <LISTITEM>
+ <PARA>
+ Use the file <replaceable class="parameter">filename</replaceable>
+ as the source of queries instead of reading queries interactively.
+ This file must be specified for and visible to the client frontend.
+ </para>
+ </listitem>
+ </varlistentry>
+
+ <VARLISTENTRY>
+ <TERM>
+ -F <replaceable class="parameter">separator</replaceable>
+ </TERM>
+ <LISTITEM>
+ <PARA>
+ Use <replaceable class="parameter">separator</replaceable>
+ as the field separator.
+ The default is an ASCII vertical bar ("|").
+ </para>
+ </listitem>
+ </varlistentry>
+
+ <VARLISTENTRY>
+ <TERM>
+ -h <replaceable class="parameter">hostname</replaceable>
+ </TERM>
+ <LISTITEM>
+ <PARA>
+ Specifies the host name of the machine on which the
+ <application>postmaster</application>
+ is running.
+ Without this option, communication is performed using
+ local Unix domain sockets.
+ </para>
+ </listitem>
+ </varlistentry>
+
+ <VARLISTENTRY>
+ <TERM>
+ -H
+ </TERM>
+ <LISTITEM>
+ <PARA>
+ Turns on
+ <acronym>HTML 3.0</acronym>
+ tabular output.
+ </para>
+ </listitem>
+ </varlistentry>
+
+ <VARLISTENTRY>
+ <TERM>
+ -l
+ </TERM>
+ <LISTITEM>
+ <PARA>
+ Lists all available databases, then exit. Other non-connection options are ignored.
+ </para>
+ </listitem>
+ </varlistentry>
+
+ <VARLISTENTRY>
+ <TERM>
+ -n
+ </TERM>
+ <LISTITEM>
+ <PARA>
+ Do not use the readline library for input line editing and command history.
+ </para>
+ </listitem>
+ </varlistentry>
+
+ <VARLISTENTRY>
+ <TERM>
+ -o <replaceable class="parameter">filename</replaceable>
+ </TERM>
+ <LISTITEM>
+ <PARA>
+ Put all output into file <replaceable class="parameter">filename</replaceable>.
+ The path must be writable by the client.
+ </para>
+ </listitem>
+ </varlistentry>
+
+ <VARLISTENTRY>
+ <TERM>
+ -p <replaceable class="parameter">port</replaceable>
+ </TERM>
+ <LISTITEM>
+ <PARA>
+ Specifies the TCP/IP port or, by omission, the local Unix domain socket file
+ extension on which the
+ <application>postmaster</application>
+ is listening for connections. Defaults to the value of the
+ <envar>PGPORT</envar>
+ environment variable, if set, or to 5432.
+ </para>
+ </listitem>
+ </varlistentry>
+
+ <VARLISTENTRY>
+ <TERM>
+ -q
+ </TERM>
+ <LISTITEM>
+ <PARA>
+ Specifies that
+ <application>psql</application>
+ should do its work quietly. By default, it
+ prints welcome and exit messages and prompts for each query, and prints
+ out the number of rows returned from a query.
+ If this option is used, none of this happens. This is useful with the
+ <option>-c</option> option.
+ </para>
+ </listitem>
+ </varlistentry>
+
+ <VARLISTENTRY>
+ <TERM>
+ -s
+ </TERM>
+ <LISTITEM>
+ <PARA>
+ Run in single-step mode where the user is prompted for each query before
+ it is sent to the backend.
+ </para>
+ </listitem>
+ </varlistentry>
+
+ <VARLISTENTRY>
+ <TERM>
+ -S
+ </TERM>
+ <LISTITEM>
+ <PARA>
+ Runs in single-line mode where each query is terminated by a newline,
+ instead of a semicolon.
+ </para>
+ </listitem>
+ </varlistentry>
+
+ <VARLISTENTRY>
+ <TERM>
+ -t
+ </TERM>
+ <LISTITEM>
+ <PARA>
+ Turn off printing of column names.
+ This is useful with the
+ <option>-c</option>
+ option in shell scripts.
+ </para>
+ </listitem>
+ </varlistentry>
+
+ <VARLISTENTRY>
+ <TERM>
+ -T <replaceable class="parameter">table_options</replaceable>
+ </TERM>
+ <LISTITEM>
+ <PARA>
+ Allows you to specify options to be placed within the
+ <sgmltag>table ...</sgmltag> tag for <acronym>HTML 3.0</acronym>
+ tabular output.For example, <literal>border</literal>
+ will give you tables with borders.
+ This must be used in conjunction with the <option>-H</option> option.
+ </para>
+ </listitem>
+ </varlistentry>
+
+ <VARLISTENTRY>
+ <TERM>
+ -u
+ </TERM>
+ <LISTITEM>
+ <PARA>
+ Asks the user for the user name and password before connecting to the database.
+ If the database does not require password authentication then these are
+ ignored. If the option is not used (and the PGPASSWORD environment variable
+ is not set) and the database requires password authentication, then the
+ connection will fail. The user name is ignored anyway.
+ </para>
+ </listitem>
+ </varlistentry>
+
+ <VARLISTENTRY>
+ <TERM>
+ -x
+ </TERM>
+ <LISTITEM>
+ <PARA>
+ Turns on extended row format mode. When enabled each row will have its column
+ names printed on the left with the column values printed on the right.
+ This is useful for rows which are otherwise too long to fit into
+ one screen line. HTML row output supports this mode also.
+ </para>
+ </listitem>
+ </varlistentry>
+ </variablelist>
+ </para>
+ <para>
+ You may set environment variables to avoid typing some of the above
+ options. See the section on environment variables below.
+ </para>
+ </refsect1>
+
+ <REFSECT1 ID="R1-APP-PSQL-3">
+ <REFSECT1INFO>
+ <DATE>1998-09-26</DATE>
+ </REFSECT1INFO>
+ <TITLE>
+ <application>psql</application> Meta-Commands
+ </TITLE>
+ <para>
+ Anything you enter in <application>psql</application>
+ that begins with an unquoted backslash is a <application>psql</application>
+ meta-command. Anything else is <acronym>SQL</acronym>
+ and simply goes into the current query buffer
+ (and once you have at least one complete query, it gets automatically
+ submitted to the backend).
+ <Application>psql</Application> meta-commands are also called slash commands.
+ </para>
+ <para>
+ The format of a <application>psql</application> command is the backslash,
+ followed immediately by
+ a command verb, then any arguments. The arguments are separated from the
+ command verb and each other by any number of white space characters.
+ </para>
+ <para>
+ With single character command verbs, you don't actually need to separate the
+ command verb from the argument with white space, for historical reasons.
+ You should anyway.
+ </para>
+ <para>
+ The following meta-commands are defined:
+
+ <VARIABLELIST>
+ <VARLISTENTRY>
+ <TERM>
+ <literal>\a</literal>
+ </TERM>
+ <LISTITEM>
+ <PARA>
+ Toggle field alignment when printing out table elements.
+ </para>
+ </listitem>
+ </varlistentry>
+
+ <VARLISTENTRY>
+ <TERM>
+ <literal>\C</literal> <replaceable class="parameter">caption</replaceable>
+ </TERM>
+ <LISTITEM>
+ <PARA>
+ Set the HTML3.0 table caption to
+ <quote><replaceable class="parameter">caption</replaceable></quote>.
+ </para>
+ </listitem>
+ </varlistentry>
+
+ <VARLISTENTRY>
+ <TERM>
+ <literal>\connect</literal> <replaceable class="parameter">dbname</replaceable> [ <replaceable class="parameter">username</replaceable> ]
+ </TERM>
+ <LISTITEM>
+ <PARA>
+ Establish a connection to a new database, using the default
+ <replaceable class="parameter">username</replaceable> if none is specified.
+ The previous connection is closed.
+ </para>
+ </listitem>
+ </varlistentry>
+
+ <VARLISTENTRY>
+ <TERM>
+ <literal>\copy</literal> <replaceable class="parameter">dbname</replaceable> { FROM | TO } <replaceable class="parameter">filename</replaceable>
+ </TERM>
+ <LISTITEM>
+ <PARA>
+ Perform a frontend (client) copy. This is an operation that runs a SQL COPY command,
+ but instead of the backend reading or writing the specified file, and
+ consequently requiring backend access and special user privilege,
+ <application>psql</application> reads or writes the
+ file and routes the data to or from the backend. The default <literal>tab</literal>
+ delimiter is used.
+ </para>
+ <tip>
+ <para>
+ This operation is not as efficient as the <acronym>SQL</acronym>
+ <command>COPY</command> command because all data must pass through the
+ client/server IP or socket connection. For large amounts of data this other
+ technique may be preferable.
+ </para>
+ </tip>
+ </listitem>
+ </varlistentry>
+
+ <VARLISTENTRY>
+ <TERM>
+ <literal>\d</literal> [ <replaceable class="parameter">table</replaceable> ]
+ </TERM>
+ <LISTITEM>
+ <PARA>
+ List tables in the database, or if <replaceable class="parameter">table</replaceable>
+ is specified, list the columns in that table.
+ If table name is specified as an asterisk (<quote>*</quote>),
+ list all tables and column information for each tables.
+ </para>
+ </listitem>
+ </varlistentry>
+
+ <VARLISTENTRY>
+ <TERM>
+ <literal>\da</literal>
+ </TERM>
+ <LISTITEM>
+ <PARA>
+ List all available aggregates.
+ </para>
+ </listitem>
+ </varlistentry>
+
+ <VARLISTENTRY>
+ <TERM>
+ <literal>\dd</literal> <replaceable class="parameter">object</replaceable>
+ </TERM>
+ <LISTITEM>
+ <PARA>
+ List the description from <literal>pg_description</literal>
+ of the specified object, which can be a
+ table, table.column, type, operator, or aggregate.
+ </para>
+ <tip>
+ <para>
+ Not all objects have a description in <literal>pg_description</literal>.
+ This meta-command can be useful to get a quick description of a native
+ <productname>Postgres</productname> feature.
+ </para>
+ </tip>
+ </listitem>
+ </varlistentry>
+
+ <VARLISTENTRY>
+ <TERM>
+ <literal>\df</literal>
+ </TERM>
+ <LISTITEM>
+ <PARA>
+ List functions.
+ </para>
+ </listitem>
+ </varlistentry>
+
+ <VARLISTENTRY>
+ <TERM>
+ <literal>\di</literal>
+ </TERM>
+ <LISTITEM>
+ <PARA>
+ List only indexes.
+ </para>
+ </listitem>
+ </varlistentry>
+
+ <VARLISTENTRY>
+ <TERM>
+ <literal>\do</literal>
+ </TERM>
+ <LISTITEM>
+ <PARA>
+ List only operators.
+ </para>
+ </listitem>
+ </varlistentry>
+
+ <VARLISTENTRY>
+ <TERM>
+ <literal>\ds</literal>
+ </TERM>
+ <LISTITEM>
+ <PARA>
+ List only sequences.
+ </para>
+ </listitem>
+ </varlistentry>
+
+ <VARLISTENTRY>
+ <TERM>
+ <literal>\dS</literal>
+ </TERM>
+ <LISTITEM>
+ <PARA>
+ List system tables and indexes.
+ </para>
+ </listitem>
+ </varlistentry>
+
+ <VARLISTENTRY>
+ <TERM>
+ <literal>\dt</literal>
+ </TERM>
+ <LISTITEM>
+ <PARA>
+ List only non-system tables.
+ </para>
+ </listitem>
+ </varlistentry>
+
+ <VARLISTENTRY>
+ <TERM>
+ <literal>\dT</literal>
+ </TERM>
+ <LISTITEM>
+ <PARA>
+ List types.
+ </para>
+ </listitem>
+ </varlistentry>
+
+ <VARLISTENTRY>
+ <TERM>
+ <literal>\e</literal> [ <replaceable class="parameter">filename</replaceable> ]
+ </TERM>
+ <LISTITEM>
+ <PARA>
+ Edit the current query buffer or the contents of the file
+ <replaceable class="parameter">filename</replaceable>.
+ </para>
+ </listitem>
+ </varlistentry>
+
+ <VARLISTENTRY>
+ <TERM>
+ <literal>\E</literal> [ <replaceable class="parameter">filename</replaceable> ]
+ </TERM>
+ <LISTITEM>
+ <PARA>
+ Edit the current query buffer or the contents of the file
+ <replaceable class="parameter">filename</replaceable>
+ and execute it upon editor exit.
+ </para>
+ </listitem>
+ </varlistentry>
+
+ <VARLISTENTRY>
+ <TERM>
+ <literal>\f</literal> [ <replaceable class="parameter">separator</replaceable> ]
+ </TERM>
+ <LISTITEM>
+ <PARA>
+ Set the field separator. Default is a single blank space.
+ </para>
+ </listitem>
+ </varlistentry>
+
+ <VARLISTENTRY>
+ <TERM>
+ <literal>\g</literal> [ { <replaceable class="parameter">filename</replaceable> | <literal>|</literal><replaceable class="parameter">command</replaceable> } ]
+ </TERM>
+ <LISTITEM>
+ <PARA>
+ Send the current query input buffer to the backend and optionally
+ save the output in <replaceable class="parameter">filename</replaceable>
+ or pipe the output into a separate Unix shell to execute
+ <replaceable class="parameter">command</replaceable>.
+ </para>
+ </listitem>
+ </varlistentry>
+
+ <VARLISTENTRY>
+ <TERM>
+ <literal>\h</literal> [ <replaceable class="parameter">command</replaceable> ]
+ </TERM>
+ <LISTITEM>
+ <PARA>
+ Give syntax help on the specified SQL command.
+ If <replaceable class="parameter">command</replaceable> is not a defined SQL command
+ (or is not documented in <application>psql</application>), or if
+ <replaceable class="parameter">command</replaceable> is not specified,
+ then <application>psql</application> will
+ list all the commands for which syntax help is
+ available. If <replaceable class="parameter">command</replaceable>
+ is an asterisk (<quote>*</quote>), then
+ give syntax help on all SQL commands.
+ </para>
+ </listitem>
+ </varlistentry>
+
+ <VARLISTENTRY>
+ <TERM>
+ <literal>\H</literal>
+ </TERM>
+ <LISTITEM>
+ <PARA>
+ Toggle <acronym>HTML3</acronym> output. This is equivalent to the <option>-H</option>
+ command-line option.
+ </para>
+ </listitem>
+ </varlistentry>
+
+ <VARLISTENTRY>
+ <TERM>
+ <literal>\i</literal> <replaceable class="parameter">filename</replaceable>
+ </TERM>
+ <LISTITEM>
+ <PARA>
+ Read queries from the file <replaceable class="parameter">filename</replaceable>
+ into the query input buffer.
+ </para>
+ </listitem>
+ </varlistentry>
+
+ <VARLISTENTRY>
+ <TERM>
+ <literal>\l</literal>
+ </TERM>
+ <LISTITEM>
+ <PARA>
+ List all the databases in the server.
+ </para>
+ </listitem>
+ </varlistentry>
+
+ <VARLISTENTRY>
+ <TERM>
+ <literal>\m</literal>
+ </TERM>
+ <LISTITEM>
+ <PARA>
+ Toggle the old monitor-like table display, which includes border characters
+ surrounding the table.
+ This is standard SQL output.
+ By default, <application>psql</application> includes only field separators
+ between columns.
+ </para>
+ </listitem>
+ </varlistentry>
+
+ <VARLISTENTRY>
+ <TERM>
+ <literal>\o</literal> [ { <replaceable class="parameter">filename</replaceable> | <literal>|</literal><replaceable class="parameter">command</replaceable> } ]
+ </TERM>
+ <LISTITEM>
+ <PARA>
+ Save future query results to the file
+ <replaceable class="parameter">filename</replaceable> or pipe future
+ results into a separate Unix shell to execute
+ <replaceable class="parameter">command</replaceable>.
+ If no arguments are specified, send query results to
+ <filename>stdout</filename>.
+ </para>
+ </listitem>
+ </varlistentry>
+
+ <VARLISTENTRY>
+ <TERM>
+ <literal>\p</literal>
+ </TERM>
+ <LISTITEM>
+ <PARA>
+ Print the current query buffer.
+ </para>
+ </listitem>
+ </varlistentry>
+
+ <VARLISTENTRY>
+ <TERM>
+ <literal>\q</literal>
+ </TERM>
+ <LISTITEM>
+ <PARA>
+ Quit the <application>psql</application> program.
+ </para>
+ </listitem>
+ </varlistentry>
+
+ <VARLISTENTRY>
+ <TERM>
+ <literal>\r</literal>
+ </TERM>
+ <LISTITEM>
+ <PARA>
+ Reset(clear) the query buffer.
+ </para>
+ </listitem>
+ </varlistentry>
+
+ <VARLISTENTRY>
+ <TERM>
+ <literal>\s</literal> [ <replaceable class="parameter">filename</replaceable> ]
+ </TERM>
+ <LISTITEM>
+ <PARA>
+ Print or save the command line history to
+ <replaceable class="parameter">filename</replaceable>.
+ If <replaceable class="parameter">filename</replaceable> is omitted,
+ do not save subsequent commands to a history file.
+ This option is only available if <application>psql</application> is
+ configured to use readline.
+ </para>
+ </listitem>
+ </varlistentry>
+
+ <VARLISTENTRY>
+ <TERM>
+ <literal>\t</literal>
+ </TERM>
+ <LISTITEM>
+ <PARA>
+ Toggle display of output column name headings and row count footer (defaults to on).
+ </para>
+ </listitem>
+ </varlistentry>
+
+ <VARLISTENTRY>
+ <TERM>
+ <literal>\T</literal> <replaceable class="parameter">table_options</replaceable>
+ </TERM>
+ <LISTITEM>
+ <PARA>
+ Allows you to specify options to be placed within the
+ <sgmltag>table ...</sgmltag> tag
+ for <acronym>HTML 3.0</acronym>
+ tabular output.For example, <literal>border</literal>
+ will give you tables with borders.
+ This must be used in conjunction with the <command>\H</command> meta-command.
+ </para>
+ </listitem>
+ </varlistentry>
+
+ <VARLISTENTRY>
+ <TERM>
+ <literal>\x</literal>
+ </TERM>
+ <LISTITEM>
+ <PARA>
+ Toggles extended row format mode. When enabled each row will have its column
+ names printed on the left with the column values printed on the right.
+ This is useful for rows which are otherwise too long to fit into
+ one screen line. <acronym>HTML</acronym> row output mode supports this flag too.
+ </para>
+ </listitem>
+ </varlistentry>
+
+ <VARLISTENTRY>
+ <TERM>
+ <literal>\w</literal> <replaceable class="parameter">filename</replaceable>
+ </TERM>
+ <LISTITEM>
+ <PARA>
+ Outputs the current query buffer to the file
+ <replaceable class="parameter">filename</replaceable>.
+ </para>
+ </listitem>
+ </varlistentry>
+
+ <VARLISTENTRY>
+ <TERM>
+ <literal>\z</literal>
+ </TERM>
+ <LISTITEM>
+ <PARA>
+ Produces a list of all tables in the database with their appropriate ACLs
+ (grant/revoke permissions) listed.
+ </para>
+ </listitem>
+ </varlistentry>
+
+ <VARLISTENTRY>
+ <TERM>
+ <literal>\!</literal> [ <replaceable class="parameter">command</replaceable> ]
+ </TERM>
+ <LISTITEM>
+ <PARA>
+ Escape to a separate Unix shell or execute the Unix command
+ <replaceable class="parameter">command</replaceable>.
+ </para>
+ </listitem>
+ </varlistentry>
+
+ <VARLISTENTRY>
+ <TERM>
+ <literal>\?</literal>
+ </TERM>
+ <LISTITEM>
+ <PARA>
+ Get help information about the slash (<quote>\</quote>) commands.
+ </para>
+ </listitem>
+ </varlistentry>
+ </variablelist>
+ </para>
+ </refsect1>
</refentry>