<REFENTRY ID="APP-PSQL">
-<REFMETA>
-<REFENTRYTITLE id="psql-ref">
-<application>psql</application>
-</REFENTRYTITLE>
-<REFMISCINFO>Application</REFMISCINFO>
-</REFMETA>
-<REFNAMEDIV>
-<REFNAME>
-<application>psql</application>
-</REFNAME>
-<REFPURPOSE>
-<productname>Postgres</productname> interactive client
-</REFPURPOSE>
- </refnamediv>
-<REFSYNOPSISDIV>
-<REFSYNOPSISDIVINFO>
-<DATE>1998-09-26</DATE>
-</REFSYNOPSISDIVINFO>
-<SYNOPSIS>
+ <REFMETA>
+ <REFENTRYTITLE id="psql-ref">
+ <application>psql</application>
+ </REFENTRYTITLE>
+ <REFMISCINFO>Application</REFMISCINFO>
+ </REFMETA>
+ <REFNAMEDIV>
+ <REFNAME>
+ <application>psql</application>
+ </REFNAME>
+ <REFPURPOSE>
+ <productname>Postgres</productname> interactive client
+ </REFPURPOSE>
+ </refnamediv>
+ <REFSYNOPSISDIV>
+ <REFSYNOPSISDIVINFO>
+ <DATE>1998-09-26</DATE>
+ </REFSYNOPSISDIVINFO>
+ <SYNOPSIS>
psql [ <replaceable class="parameter">dbname</replaceable> ]
psql -A [ -c <replaceable class="parameter">query</replaceable> ] [ -d <replaceable class="parameter">dbname</replaceable> ]
-e -E [ -f <replaceable class="parameter">filename</replaceable> ] [ -F <replaceable class="parameter">separator</replaceable> ] [ -h <replaceable class="parameter">hostname</replaceable> ] -Hln
[ -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>
+ </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>
- <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
+[PostgreSQL 6.5.0 on i686-pc-linux-gnu, compiled by gcc 2.7.2.3]
+
+ type \? for help on slash commands
+ type \q to quit
+ type \g or terminate with semicolon to execute query
+ You are currently connected to the database: testdb
- </variablelist>
+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>
+
+ <refsect2 id="R2-APP-PSQL-5">
+ <Title>Paging To Screen</Title>
+
+ <Note>
+ <Title>Author</Title>
+ <Para>
+ From Brett McCormick on the mailing list 1998-04-04.
+ </Para>
+ </Note>
+
+ <Para>
+ To affect the paging behavior of your <Command>psql</Command> output,
+ set or unset your PAGER environment variable. I always have to set mine
+ before it will pause. And of course you have to do this before
+ starting the program.
+ </para>
+
+ <Para>
+ In csh/tcsh or other C shells:
+
+ <ProgramListing>
+% unsetenv PAGER
+ </ProgramListing>
+
+ while in sh/bash or other Bourne shells:
+
+ <ProgramListing>
+% unset PAGER
+ </ProgramListing>
+ </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>
- <para>
- The full set of command-line arguments and meta-commands are described in a subsequent
- section.
+ </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>
- <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.
+ </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>
- <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>
+ </listitem>
+ </varlistentry>
+
+ <VARLISTENTRY>
+ <TERM>
+ -e
+ </TERM>
+ <LISTITEM>
+ <PARA>
+ Echo the query sent to the backend
</para>
- </refsect2>
-
- <REFSECT2 ID="R2-APP-PSQL-2">
- <REFSECT2INFO>
- <DATE>1998-09-26</DATE>
- </REFSECT2INFO>
- <TITLE>
- Outputs
- </TITLE>
+ </listitem>
+ </varlistentry>
+
+ <VARLISTENTRY>
+ <TERM>
+ -E
+ </TERM>
+ <LISTITEM>
<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.
+ Echo the actual query generated by \d and other backslash commands
</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.
+ </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>
- </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>
+ </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>
- <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.
+ </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>
- <para>
- Whenever a query is executed,
- <application>psql</application> also polls for asynchronous notification
- events generated by <command>LISTEN</command> and <command>NOTIFY</command>.
+ </listitem>
+ </varlistentry>
+
+ <VARLISTENTRY>
+ <TERM>
+ -H
+ </TERM>
+ <LISTITEM>
+ <PARA>
+ Turns on
+ <acronym>HTML 3.0</acronym>
+ tabular output.
</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.
+ </listitem>
+ </varlistentry>
+
+ <VARLISTENTRY>
+ <TERM>
+ -l
+ </TERM>
+ <LISTITEM>
+ <PARA>
+ Lists all available databases, then exit. Other non-connection options are ignored.
</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>
- -E
- </TERM>
- <LISTITEM>
- <PARA>
- Echo the actual query generated by \d and other backslash commands
- </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>
+ </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>
+
+<!-- Keep this comment at the end of the file
+Local variables:
+mode: sgml
+sgml-omittag:nil
+sgml-shorttag:t
+sgml-minimize-attributes:nil
+sgml-always-quote-attributes:t
+sgml-indent-step:1
+sgml-indent-data:t
+sgml-parent-document:nil
+sgml-default-dtd-file:"../reference.ced"
+sgml-exposed-tags:nil
+sgml-local-catalogs:"/usr/lib/sgml/CATALOG"
+sgml-local-ecat-files:nil
+End:
+-->
<REFENTRY ID="SQL-SET">
-<REFMETA>
-<REFENTRYTITLE>
-SET
-</REFENTRYTITLE>
-<REFMISCINFO>SQL - Language Statements</REFMISCINFO>
-</REFMETA>
-<REFNAMEDIV>
-<REFNAME>
-SET
-</REFNAME>
-<REFPURPOSE>
+ <REFMETA>
+ <REFENTRYTITLE>
+ SET
+ </REFENTRYTITLE>
+ <REFMISCINFO>SQL - Language Statements</REFMISCINFO>
+ </REFMETA>
+ <REFNAMEDIV>
+ <REFNAME>
+ SET
+ </REFNAME>
+ <REFPURPOSE>
Set run-time parameters for session
-</REFPURPOSE>
- </refnamediv>
-<REFSYNOPSISDIV>
-<REFSYNOPSISDIVINFO>
-<DATE>1998-09-24</DATE>
-</REFSYNOPSISDIVINFO>
-<SYNOPSIS>
-<REPLACEABLE CLASS="PARAMETER">
-</REPLACEABLE>
+ </REFPURPOSE>
+ </refnamediv>
+ <REFSYNOPSISDIV>
+ <REFSYNOPSISDIVINFO>
+ <DATE>1998-09-24</DATE>
+ </REFSYNOPSISDIVINFO>
+ <SYNOPSIS>
SET <REPLACEABLE CLASS="PARAMETER">variable</REPLACEABLE> { TO | = } { '<REPLACEABLE CLASS="PARAMETER">value</REPLACEABLE>' | DEFAULT }
SET TIME ZONE { '<REPLACEABLE CLASS="PARAMETER">timezone</REPLACEABLE>' | LOCAL };
-</SYNOPSIS>
+ </SYNOPSIS>
- <REFSECT2 ID="R2-SQL-SET-1">
- <REFSECT2INFO>
- <DATE>1998-09-24</DATE>
- </REFSECT2INFO>
- <TITLE>
- Inputs
- </TITLE>
- <PARA>
+ <REFSECT2 ID="R2-SQL-SET-1">
+ <REFSECT2INFO>
+ <DATE>1998-09-24</DATE>
+ </REFSECT2INFO>
+ <TITLE>
+ Inputs
+ </TITLE>
+ <PARA>
- <VARIABLELIST>
- <VARLISTENTRY>
- <TERM>
- <REPLACEABLE CLASS="PARAMETER">variable</REPLACEABLE>
- </TERM>
- <LISTITEM>
- <para>
- Settable global parameter.
- </para>
- </listitem>
- </varlistentry>
- <varlistentry>
- <term>
- <REPLACEABLE CLASS="PARAMETER">value</REPLACEABLE>
- </term>
- <listitem>
- <PARA>
- New value of parameter.
- </para>
- </listitem>
- </varlistentry>
- </variablelist>
- </para>
- <para>
- The possible variables and allowed values are:
+ <VARIABLELIST>
+ <VARLISTENTRY>
+ <TERM>
+ <REPLACEABLE CLASS="PARAMETER">variable</REPLACEABLE>
+ </TERM>
+ <LISTITEM>
+ <para>
+ Settable global parameter.
+ </para>
+ </listitem>
+ </varlistentry>
+ <varlistentry>
+ <term>
+ <REPLACEABLE CLASS="PARAMETER">value</REPLACEABLE>
+ </term>
+ <listitem>
+ <PARA>
+ New value of parameter.
+ </para>
+ </listitem>
+ </varlistentry>
+ </variablelist>
+ </para>
+ <para>
+ The possible variables and allowed values are:
- <VARIABLELIST>
- <VARLISTENTRY>
- <TERM>
- DateStyle
- </TERM>
- <LISTITEM>
- <PARA>
+ <VARIABLELIST>
+ <VARLISTENTRY>
+ <TERM>
+ DateStyle
+ </TERM>
+ <LISTITEM>
+ <PARA>
+
+ <VARIABLELIST>
+ <VARLISTENTRY>
+ <TERM>
+ ISO
+ </TERM>
+ <LISTITEM>
+ <PARA>
+ use ISO 8601-style dates and times
+ </para>
+ </listitem>
+ </varlistentry>
+ <VARLISTENTRY>
+ <TERM>
+ SQL
+ </TERM>
+ <LISTITEM>
+ <PARA>
+ use Oracle/Ingres-style dates and times
+ </para>
+ </listitem>
+ </varlistentry>
+ <VARLISTENTRY>
+ <TERM>
+ Postgres
+ </TERM>
+ <LISTITEM>
+ <PARA>
+ use traditional <productname>Postgres</productname> format
+ </para>
+ </listitem>
+ </varlistentry>
+ <VARLISTENTRY>
+ <TERM>
+ European
+ </TERM>
+ <LISTITEM>
+ <PARA>
+ use dd/mm/yyyy for numeric date representations.
+ </para>
+ </listitem>
+ </varlistentry>
+ <VARLISTENTRY>
+ <TERM>
+ NonEuropean
+ </TERM>
+ <LISTITEM>
+ <PARA>
+ use mm/dd/yyyy for numeric date representations.
+ </para>
+ </listitem>
+ </varlistentry>
+ <VARLISTENTRY>
+ <TERM>
+ German
+ </TERM>
+ <LISTITEM>
+ <PARA>
+ use dd.mm.yyyy for numeric date representations.
+ </para>
+ </listitem>
+ </varlistentry>
+ <VARLISTENTRY>
+ <TERM>
+ US
+ </TERM>
+ <LISTITEM>
+ <PARA>
+ same as 'NonEuropean'
+ </para>
+ </listitem>
+ </varlistentry>
+ <VARLISTENTRY>
+ <TERM>
+ default
+ </TERM>
+ <LISTITEM>
+ <PARA>
+ restores the default values ('US,Postgres')
+ </para>
+ </listitem>
+ </varlistentry>
+ </variablelist>
+ </para>
+ </listitem>
+ </varlistentry>
+ </variablelist>
+ </para>
+ <para>
+ Date format initialization my be done by:
+ <simplelist>
+ <member>
+ Setting PGDATESTYLE environment variable.
+ </member>
+ <member>
+ Running postmaster using -oe parameter to set
+ dates to the 'European' convention.
+ Note that this affects only the some combinations of date styles; for example
+ the ISO style is not affected by this parameter.
+ </member>
+ <member>
+ Changing variables in
+ <filename>src/backend/utils/init/globals.c</filename>.
+ </member>
+ </simplelist>
+ </para>
+ <para>
+ The variables in <filename>globals.c</filename> which can be changed are:
+ <simplelist>
+ <member>
+ bool EuroDates = false | true
+ </member>
+ <member>
+ int DateStyle = USE_ISO_DATES | USE_POSTGRES_DATES | USE_SQL_DATES | USE_GERMAN_DATES
+ </member>
+ </simplelist>
+
+ </para>
+ <para>
+ <variablelist>
+ <varlistentry>
+ <term>
+ TIMEZONE
+ </term>
+ <listitem>
+ <para>
+ The possible values for timezone depends on your operating
+ system. For example on Linux /usr/lib/zoneinfo contains the
+ database of timezones.
+ </para>
+ <para>
+ Here are some valid values for timezone:
- <VARIABLELIST>
- <VARLISTENTRY>
- <TERM>
- ISO
- </TERM>
- <LISTITEM>
- <PARA>
- use ISO 8601-style dates and times
- </para>
- </listitem>
- </varlistentry>
- <VARLISTENTRY>
- <TERM>
- SQL
- </TERM>
- <LISTITEM>
- <PARA>
- use Oracle/Ingres-style dates and times
- </para>
- </listitem>
- </varlistentry>
- <VARLISTENTRY>
- <TERM>
- Postgres
- </TERM>
- <LISTITEM>
- <PARA>
- use traditional <productname>Postgres</productname> format
- </para>
- </listitem>
- </varlistentry>
- <VARLISTENTRY>
- <TERM>
- European
- </TERM>
- <LISTITEM>
- <PARA>
- use dd/mm/yyyy for numeric date representations.
- </para>
- </listitem>
- </varlistentry>
- <VARLISTENTRY>
- <TERM>
- NonEuropean
- </TERM>
- <LISTITEM>
- <PARA>
- use mm/dd/yyyy for numeric date representations.
- </para>
- </listitem>
- </varlistentry>
- <VARLISTENTRY>
- <TERM>
- German
- </TERM>
- <LISTITEM>
- <PARA>
- use dd.mm.yyyy for numeric date representations.
- </para>
- </listitem>
- </varlistentry>
- <VARLISTENTRY>
- <TERM>
- US
- </TERM>
- <LISTITEM>
- <PARA>
- same as 'NonEuropean'
- </para>
- </listitem>
- </varlistentry>
- <VARLISTENTRY>
- <TERM>
- default
- </TERM>
- <LISTITEM>
- <PARA>
- restores the default values ('US,Postgres')
- </para>
- </listitem>
- </varlistentry>
- </variablelist>
- </para>
- </listitem>
- </varlistentry>
- </variablelist>
- </para>
+ <variablelist>
+ <varlistentry>
+ <term>
+ 'PST8PDT'
+ </term>
+ <listitem>
+ <para>
+ set the timezone for California
+ </para>
+ </listitem>
+ </varlistentry>
+ <varlistentry>
+ <term>
+ 'Portugal'
+ </term>
+ <listitem>
+ <para>
+ set time zone for Portugal.
+ </para>
+ </listitem>
+ </varlistentry>
+ <varlistentry>
+ <term>
+ 'Europe/Rome'
+ </term>
+ <listitem>
+ <para>
+ set time zone for Italy.
+ </para>
+ </listitem>
+ </varlistentry>
+ <varlistentry>
+ <term>
+ DEFAULT
+ </term>
+ <listitem>
+ <para>
+ set time zone to your local timezone
+ (value of the TZ environment variable).
+ </para>
+ </listitem>
+ </varlistentry>
+ </variablelist>
+ </para>
+ <para>
+ If an invalid time zone is specified, the time zone
+ becomes GMT (on most systems anyway).
+ </para>
+ <para>
+ A frontend which uses libpq may be initialized by setting the PGTZ
+ environment variable.
+ </para>
+ <para>
+ The second syntax shown above, allows one to set the timezone
+ with a syntax similar to SQL92 <command>SET TIME ZONE</command>.
+ The LOCAL keyword is just an alternate form
+ of DEFAULT for SQL92 compatibility.
+ </para>
+ </listitem>
+ </varlistentry>
+ </variablelist>
+ </para>
+ <para>
+ There are also several internal or optimization
+ parameters which can be specified
+ by the <command>SET</command> command:
+
+ <variablelist>
+ <varlistentry>
+ <term>
+ COST_HEAP
+ </term>
+ <listitem>
+ <para>
+ Sets the default cost of a heap scan for use by the optimizer.
+
+ <variablelist>
+ <varlistentry>
+ <term>
+ <replaceable class="parameter">float4</replaceable>
+ </term>
+ <listitem>
+ <para>
+ Set the cost of a heap scan to the specified floating point value.
+ </para>
+ </listitem>
+ </varlistentry>
+
+ <varlistentry>
+ <term>
+ DEFAULT
+ </term>
+ <listitem>
+ <para>
+ Sets the cost of a heap scan to the default value.
+ </para>
+ </listitem>
+ </varlistentry>
+ </variablelist>
+ </para>
+ <para>
+ The frontend may be initialized by setting the PGCOSTHEAP
+ environment variable.
+ </para>
+ <variablelist>
+ <varlistentry>
+ <term>
+ COST_INDEX
+ </term>
+ <listitem>
<para>
- Date format initialization my be done by:
- <simplelist>
- <member>
- Setting PGDATESTYLE environment variable.
- </member>
- <member>
- Running postmaster using -oe parameter to set
- dates to the 'European' convention.
- Note that this affects only the some combinations of date styles; for example
- the ISO style is not affected by this parameter.
- </member>
- <member>
- Changing variables in
- <filename>src/backend/utils/init/globals.c</filename>.
- </member>
- </simplelist>
+ Sets the default cost of an index scan for use by the optimizer.
</para>
+ </listitem>
+ </varlistentry>
+
+ <varlistentry>
+ <term>
+ <replaceable class="parameter">float4</replaceable>
+ </term>
+ <listitem>
<para>
- The variables in <filename>globals.c</filename> which can be changed are:
- <programlisting>
- bool EuroDates = false
- true
- int DateStyle = USE_ISO_DATES
- USE_POSTGRES_DATES
- USE_ISO_DATES
- USE_SQL_DATES
- USE_GERMAN_DATES
- </programlisting>
+ Set the cost of an index scan to the specified floating point value.
</para>
+ </listitem>
+ </varlistentry>
+
+ <varlistentry>
+ <term>
+ DEFAULT
+ </term>
+ <listitem>
<para>
- <variablelist>
- <varlistentry>
- <term>
- TIMEZONE
- </term>
- <listitem>
- <para>
- The possible values for timezone depends on your operating
- system. For example on Linux /usr/lib/zoneinfo contains the
- database of timezones.
- </para>
- <para>
- Here are some valid values for timezone:
-
- <variablelist>
- <varlistentry>
- <term>
- 'PST8PDT'
- </term>
- <listitem>
- <para>
- set the timezone for California
- </para>
- </listitem>
- </varlistentry>
- <varlistentry>
- <term>
- 'Portugal'
- </term>
- <listitem>
- <para>
- set time zone for Portugal.
- </para>
- </listitem>
- </varlistentry>
- <varlistentry>
- <term>
- 'Europe/Rome'
- </term>
- <listitem>
- <para>
- set time zone for Italy.
- </para>
- </listitem>
- </varlistentry>
- <varlistentry>
- <term>
- DEFAULT
- </term>
- <listitem>
- <para>
- set time zone to your local timezone
- (value of the TZ environment variable).
- </para>
- </listitem>
- </varlistentry>
- </variablelist>
- </para>
- <para>
- If an invalid time zone is specified, the time zone
- becomes GMT (on most systems anyway).
- </para>
- <para>
- A frontend which uses libpq may be initialized by setting the PGTZ
- environment variable.
- </para>
- <para>
- The second syntax shown above, allows one to set the timezone
- with a syntax similar to SQL92 <command>SET TIME ZONE</command>.
- The LOCAL keyword is just an alternate form
- of DEFAULT for SQL92 compatibility.
- </para>
- </listitem>
- </varlistentry>
- </variablelist>
+ Sets the cost of an index scan to the default value.
</para>
+ </listitem>
+ </varlistentry>
+ </variablelist>
+ </listitem>
+ </varlistentry>
+ </variablelist>
+ </para>
+ <para>
+ The frontend may be initialized by setting the PGCOSTINDEX
+ environment variable.
+
+ <variablelist>
+ <varlistentry>
+ <term>
+ GEQO
+ </term>
+ <listitem>
+ <para>
+ Sets the threshold for using the genetic optimizer algorithm.
+ </para>
+
+ <variablelist>
+ <varlistentry>
+ <term>
+ On
+ </term>
+ <listitem>
<para>
- There are also several internal or optimization
- parameters which can be specified
- by the <command>SET</command> command:
-
- <variablelist>
- <varlistentry>
- <term>
- COST_HEAP
- </term>
- <listitem>
- <para>
- Sets the default cost of a heap scan for use by the optimizer.
-
- <variablelist>
- <varlistentry>
- <term>
- <replaceable class="parameter">float4</replaceable>
- </term>
- <listitem>
- <para>
- Set the cost of a heap scan to the specified floating point value.
- </para>
- </listitem>
- </varlistentry>
-
- <varlistentry>
- <term>
- DEFAULT
- </term>
- <listitem>
- <para>
- Sets the cost of a heap scan to the default value.
- </para>
- </listitem>
- </varlistentry>
- </variablelist>
- </para>
- <para>
- The frontend may be initialized by setting the PGCOSTHEAP
- environment variable.
- </para>
- <variablelist>
- <varlistentry>
- <term>
- COST_INDEX
- </term>
- <listitem>
- <para>
- Sets the default cost of an index scan for use by the optimizer.
- </para>
- </listitem>
- </varlistentry>
-
- <varlistentry>
- <term>
- <replaceable class="parameter">float4</replaceable>
- </term>
- <listitem>
- <para>
- Set the cost of an index scan to the specified floating point value.
- </para>
- </listitem>
- </varlistentry>
-
- <varlistentry>
- <term>
- DEFAULT
- </term>
- <listitem>
- <para>
- Sets the cost of an index scan to the default value.
- </para>
- </listitem>
- </varlistentry>
- </variablelist>
- </listitem>
- </varlistentry>
- </variablelist>
+ enables the genetic optimizer algorithm
+ for statements with 6 or more tables.
</para>
+ </listitem>
+ </varlistentry>
+ <varlistentry>
+ <term>
+ On=<replaceable class="parameter">#</replaceable>
+ </term>
+ <listitem>
<para>
- The frontend may be initialized by setting the PGCOSTINDEX
- environment variable.
-
- <variablelist>
- <varlistentry>
- <term>
- GEQO
- </term>
- <listitem>
- <para>
- Sets the threshold for using the genetic optimizer algorithm.
- </para>
-
- <variablelist>
- <varlistentry>
- <term>
- On
- </term>
- <listitem>
- <para>
- enables the genetic optimizer algorithm
- for statements with 6 or more tables.
- </para>
- </listitem>
- </varlistentry>
- <varlistentry>
- <term>
- On=<replaceable class="parameter">#</replaceable>
- </term>
- <listitem>
- <para>
- Takes an integer argument to enable the genetic optimizer algorithm
- for statements with <replaceable class="parameter">#</replaceable>
- or more tables in the query.
- </para>
- </listitem>
- </varlistentry>
- <varlistentry>
- <term>
- Off
- </term>
- <listitem>
- <para>
- disables the genetic optimizer algorithm.
- </para>
- </listitem>
- </varlistentry>
- <varlistentry>
- <term>
- DEFAULT
- </term>
- <listitem>
- <para>
- Equivalent to specifying <command>SET GEQO='on'</command>
- </para>
- </listitem>
- </varlistentry>
- </variablelist>
- </listitem>
- </varlistentry>
- </variablelist>
+ Takes an integer argument to enable the genetic optimizer algorithm
+ for statements with <replaceable class="parameter">#</replaceable>
+ or more tables in the query.
</para>
+ </listitem>
+ </varlistentry>
+ <varlistentry>
+ <term>
+ Off
+ </term>
+ <listitem>
<para>
- This algorithm is on by default, which used GEQO for
- statements of eleven or more tables.
- (See the chapter on GEQO in the Programmer's Guide
- for more information).
+ disables the genetic optimizer algorithm.
</para>
+ </listitem>
+ </varlistentry>
+ <varlistentry>
+ <term>
+ DEFAULT
+ </term>
+ <listitem>
<para>
- The frontend may be initialized by setting PGGEQO
- environment variable.
+ Equivalent to specifying <command>SET GEQO='on'</command>
</para>
+ </listitem>
+ </varlistentry>
+ </variablelist>
+ </listitem>
+ </varlistentry>
+ </variablelist>
+ </para>
+ <para>
+ This algorithm is on by default, which used GEQO for
+ statements of eleven or more tables.
+ (See the chapter on GEQO in the Programmer's Guide
+ for more information).
+ </para>
+ <para>
+ The frontend may be initialized by setting PGGEQO
+ environment variable.
+ </para>
+ <para>
+ It may be useful when joining big relations with
+ small ones. This algorithm is off by default.
+ It's not used by GEQO anyway.
+
+ <variablelist>
+ <varlistentry>
+ <term>
+ KSQO
+ </term>
+ <listitem>
+ <para>
+ <firstterm>Key Set Query Optimizer</firstterm> forces the query optimizer
+ to optimize repetative OR clauses such as generated by
+ <productname>MicroSoft Access</productname>:
+ </para>
+
+ <variablelist>
+ <varlistentry>
+ <term>
+ On
+ </term>
+ <listitem>
<para>
- It may be useful when joining big relations with
- small ones. This algorithm is off by default.
- It's not used by GEQO anyway.
-
- <variablelist>
- <varlistentry>
- <term>
- KSQO
- </term>
- <listitem>
- <para>
- <firstterm>Key Set Query Optimizer</firstterm> forces the query optimizer
- to optimize repetative OR clauses such as generated by
- <productname>MicroSoft Access</productname>:
- </para>
-
- <variablelist>
- <varlistentry>
- <term>
- On
- </term>
- <listitem>
- <para>
- enables this optimization.
- </para>
- </listitem>
- </varlistentry>
-
- <varlistentry>
- <term>
- Off
- </term>
- <listitem>
- <para>
- disables this optimization.
- </para>
- </listitem>
- </varlistentry>
-
- <varlistentry>
- <term>
- DEFAULT
- </term>
- <listitem>
- <para>
- Equivalent to specifying <command>SET KSQO='off'</command>.
- </para>
- </listitem>
- </varlistentry>
- </variablelist>
- </listitem>
- </varlistentry>
- </variablelist>
+ enables this optimization.
</para>
+ </listitem>
+ </varlistentry>
+
+ <varlistentry>
+ <term>
+ Off
+ </term>
+ <listitem>
<para>
- It may be useful when joining big relations with
- small ones. This algorithm is off by default.
- It's not used by GEQO anyway.
+ disables this optimization.
</para>
+ </listitem>
+ </varlistentry>
+
+ <varlistentry>
+ <term>
+ DEFAULT
+ </term>
+ <listitem>
<para>
- The frontend may be initialized by setting the PGKSQO
- environment variable.
- <variablelist>
- <varlistentry>
- <term>
- QUERY_LIMIT
- </term>
- <listitem>
- <para>
- Sets the number of rows returned by a query.
- </para>
-
- <variablelist>
- <varlistentry>
- <term>
- Value
- </term>
- <listitem>
- <para>
- Maximum number of rows to return for a query. The default is to allow
- an unlimited number of rows.
- </para>
- </listitem>
- </varlistentry>
- <varlistentry>
- <term>
- <replaceable class="parameter">#</replaceable>
- </term>
- <listitem>
- <para>
- Sets the maximum number of rows returned by a
- query to <replaceable class="parameter">#</replaceable>.
- </para>
- </listitem>
- </varlistentry>
- <varlistentry>
- <term>
- DEFAULT
- </term>
- <listitem>
- <para>
- Sets the maximum number of rows returned by a query to be unlimited.
- </para>
- </listitem>
- </varlistentry>
- </variablelist>
- <para>
- By default, there is no limit to the number of rows
- returned by a query.
- </para>
- </listitem>
- </varlistentry>
- </variablelist>
+ Equivalent to specifying <command>SET KSQO='off'</command>.
</para>
- </REFSECT2>
-
- <REFSECT2 ID="R2-SQL-SET-2">
- <REFSECT2INFO>
- <DATE>1998-09-24</DATE>
- </REFSECT2INFO>
- <TITLE>
- Outputs
- </TITLE>
- <PARA>
-
- <VARIABLELIST>
- <VARLISTENTRY>
- <TERM>
- <returnvalue>SET VARIABLE</returnvalue>
- </TERM>
- <LISTITEM>
- <PARA>
- Message returned if successfully.
- </para>
- </listitem>
- </varlistentry>
-
- <VARLISTENTRY>
- <TERM>
- <returnvalue>WARN: Bad value for <replaceable class="parameter">variable</replaceable> (<replaceable class="parameter">value</replaceable>)</returnvalue>
- </TERM>
- <LISTITEM>
- <PARA>
- If the command fails to set variable.
- </para>
- </listitem>
- </varlistentry>
-
- </VARIABLELIST>
+ </listitem>
+ </varlistentry>
+ </variablelist>
+ </listitem>
+ </varlistentry>
+ </variablelist>
+ </para>
+ <para>
+ It may be useful when joining big relations with
+ small ones. This algorithm is off by default.
+ It's not used by GEQO anyway.
+ </para>
+ <para>
+ The frontend may be initialized by setting the PGKSQO
+ environment variable.
+ <variablelist>
+ <varlistentry>
+ <term>
+ QUERY_LIMIT
+ </term>
+ <listitem>
+ <para>
+ Sets the number of rows returned by a query.
+ </para>
+
+ <variablelist>
+ <varlistentry>
+ <term>
+ Value
+ </term>
+ <listitem>
+ <para>
+ Maximum number of rows to return for a query. The default is to allow
+ an unlimited number of rows.
</para>
- </REFSECT2>
- </REFSYNOPSISDIV>
-
- <REFSECT1 ID="R1-SQL-SET-1">
- <REFSECT1INFO>
- <DATE>1998-09-24</DATE>
- </REFSECT1INFO>
- <TITLE>
- Description
- </TITLE>
- <PARA>
- <command>SET</command> will modify configuration parameters for variable during
- a session.
- </para>
- <para>
- Current values can be obtained using <command>SHOW</command>, and values
- can be restored to the defaults using <command>RESET</command>.
- Parameters and values are case-insensitive. Note that the value
- field is always specified as a string, so is enclosed in
- single-quotes.
- </para>
- <para>
- <command>SET TIME ZONE</command> changes the session's
- default time zone offset.
- A SQL-session always begins with an initial default time zone
- offset.
- The <command>SET TIME ZONE</command> statement is used to change the default
- time zone offset for the current SQL session.
- </para>
-
- <REFSECT2 ID="R2-SQL-SET-3">
- <REFSECT2INFO>
- <DATE>1998-09-24</DATE>
- </REFSECT2INFO>
- <TITLE>
- Notes
- </TITLE>
- <PARA>
- The <command>SET <replaceable class="parameter">variable</replaceable></command>
- statement is a <productname>Postgres</productname> language extension.
+ </listitem>
+ </varlistentry>
+ <varlistentry>
+ <term>
+ <replaceable class="parameter">#</replaceable>
+ </term>
+ <listitem>
+ <para>
+ Sets the maximum number of rows returned by a
+ query to <replaceable class="parameter">#</replaceable>.
</para>
+ </listitem>
+ </varlistentry>
+ <varlistentry>
+ <term>
+ DEFAULT
+ </term>
+ <listitem>
<para>
- Refer to <command>SHOW</command> and <command>RESET</command> to
- display or reset the current values.
+ Sets the maximum number of rows returned by a query to be unlimited.
</para>
- </REFSECT2>
- </REFSECT1>
-
- <REFSECT1 ID="R1-SQL-SET-2">
- <TITLE>
- Usage
- </TITLE>
- <PARA>
- </PARA>
- <ProgramListing>
- --Set the style of date to ISO:
- --
- SET DATESTYLE TO 'ISO';
- </programlisting>
- <programlisting>
- --Enable GEQO for queries with 4 or more tables
- --
- SET GEQO ON=4;
- </programlisting>
- <programlisting>
- --Set GEQO to default:
- --
- SET GEQO = DEFAULT;
- </programlisting>
- <programlisting>
- --set the timezone for Berkeley, California:
- SET TIME ZONE 'PST8PDT';
-
- SELECT CURRENT_TIMESTAMP AS today;
-
- today
- ----------------------
- 1998-03-31 07:41:21-08
- </programlisting>
- <programlisting>
- --set the timezone for Italy:
- SET TIME ZONE 'Europe/Rome';
-
- SELECT CURRENT_TIMESTAMP AS today;
-
- today
- ----------------------
- 1998-03-31 17:41:31+02
- </ProgramListing>
-
- </REFSECT1>
+ </listitem>
+ </varlistentry>
+ </variablelist>
+ <para>
+ By default, there is no limit to the number of rows
+ returned by a query.
+ </para>
+ </listitem>
+ </varlistentry>
+ </variablelist>
+ </para>
+ </REFSECT2>
+
+ <REFSECT2 ID="R2-SQL-SET-2">
+ <REFSECT2INFO>
+ <DATE>1998-09-24</DATE>
+ </REFSECT2INFO>
+ <TITLE>
+ Outputs
+ </TITLE>
+ <PARA>
+
+ <VARIABLELIST>
+ <VARLISTENTRY>
+ <TERM>
+ <returnvalue>SET VARIABLE</returnvalue>
+ </TERM>
+ <LISTITEM>
+ <PARA>
+ Message returned if successfully.
+ </para>
+ </listitem>
+ </varlistentry>
+
+ <VARLISTENTRY>
+ <TERM>
+ <returnvalue>WARN: Bad value for <replaceable class="parameter">variable</replaceable> (<replaceable class="parameter">value</replaceable>)</returnvalue>
+ </TERM>
+ <LISTITEM>
+ <PARA>
+ If the command fails to set variable.
+ </para>
+ </listitem>
+ </varlistentry>
+
+ </VARIABLELIST>
+ </para>
+ </REFSECT2>
+ </REFSYNOPSISDIV>
+
+ <REFSECT1 ID="R1-SQL-SET-1">
+ <REFSECT1INFO>
+ <DATE>1998-09-24</DATE>
+ </REFSECT1INFO>
+ <TITLE>
+ Description
+ </TITLE>
+ <PARA>
+ <command>SET</command> will modify configuration parameters for variable during
+ a session.
+ </para>
+ <para>
+ Current values can be obtained using <command>SHOW</command>, and values
+ can be restored to the defaults using <command>RESET</command>.
+ Parameters and values are case-insensitive. Note that the value
+ field is always specified as a string, so is enclosed in
+ single-quotes.
+ </para>
+ <para>
+ <command>SET TIME ZONE</command> changes the session's
+ default time zone offset.
+ A SQL-session always begins with an initial default time zone
+ offset.
+ The <command>SET TIME ZONE</command> statement is used to change the default
+ time zone offset for the current SQL session.
+ </para>
+
+ <REFSECT2 ID="R2-SQL-SET-3">
+ <REFSECT2INFO>
+ <DATE>1998-09-24</DATE>
+ </REFSECT2INFO>
+ <TITLE>
+ Notes
+ </TITLE>
+ <PARA>
+ The <command>SET <replaceable class="parameter">variable</replaceable></command>
+ statement is a <productname>Postgres</productname> language extension.
+ </para>
+ <para>
+ Refer to <command>SHOW</command> and <command>RESET</command> to
+ display or reset the current values.
+ </para>
+ </REFSECT2>
+ </REFSECT1>
+
+ <REFSECT1 ID="R1-SQL-SET-2">
+ <TITLE>
+ Usage
+ </TITLE>
+ <PARA>
+ </PARA>
+ <ProgramListing>
+ --Set the style of date to ISO:
+ --
+ SET DATESTYLE TO 'ISO';
+ </programlisting>
+ <programlisting>
+ --Enable GEQO for queries with 4 or more tables
+ --
+ SET GEQO ON=4;
+ </programlisting>
+ <programlisting>
+ --Set GEQO to default:
+ --
+ SET GEQO = DEFAULT;
+ </programlisting>
+ <programlisting>
+ --set the timezone for Berkeley, California:
+ SET TIME ZONE 'PST8PDT';
+
+ SELECT CURRENT_TIMESTAMP AS today;
+
+ today
+ ----------------------
+ 1998-03-31 07:41:21-08
+ </programlisting>
+ <programlisting>
+ --set the timezone for Italy:
+ SET TIME ZONE 'Europe/Rome';
+
+ SELECT CURRENT_TIMESTAMP AS today;
+
+ today
+ ----------------------
+ 1998-03-31 17:41:31+02
+ </ProgramListing>
+
+ </REFSECT1>
- <REFSECT1 ID="R1-SQL-SET-3">
- <TITLE>
- Compatibility
- </TITLE>
- <PARA>
- </PARA>
-
- <REFSECT2 ID="R2-SQL-SET-4">
- <REFSECT2INFO>
- <DATE>1998-09-24</DATE>
- </REFSECT2INFO>
- <TITLE>
- SQL92
- </TITLE>
- <PARA>
- There is no
- <command>SET <replaceable class="parameter">variable</replaceable></command>
- in <acronym>SQL92</acronym>.
-
- The <acronym>SQL92</acronym> syntax for <command>SET TIME ZONE</command>
- is slightly different,
- allowing only a single integer value for time zone specification:
-
- <programlisting>
- SET TIME ZONE { interval_value_expression | LOCAL }
- </programlisting>
- </para>
- </refsect2>
- </refsect1>
+ <REFSECT1 ID="R1-SQL-SET-3">
+ <TITLE>
+ Compatibility
+ </TITLE>
+ <PARA>
+ </PARA>
+
+ <REFSECT2 ID="R2-SQL-SET-4">
+ <REFSECT2INFO>
+ <DATE>1998-09-24</DATE>
+ </REFSECT2INFO>
+ <TITLE>
+ SQL92
+ </TITLE>
+ <PARA>
+ There is no
+ <command>SET <replaceable class="parameter">variable</replaceable></command>
+ in <acronym>SQL92</acronym>.
+
+ The <acronym>SQL92</acronym> syntax for <command>SET TIME ZONE</command>
+ is slightly different,
+ allowing only a single integer value for time zone specification:
+
+ <programlisting>
+ SET TIME ZONE { interval_value_expression | LOCAL }
+ </programlisting>
+ </para>
+ </refsect2>
+ </refsect1>
</REFENTRY>
+
+<!-- Keep this comment at the end of the file
+Local variables:
+mode: sgml
+sgml-omittag:nil
+sgml-shorttag:t
+sgml-minimize-attributes:nil
+sgml-always-quote-attributes:t
+sgml-indent-step:1
+sgml-indent-data:t
+sgml-parent-document:nil
+sgml-default-dtd-file:"../reference.ced"
+sgml-exposed-tags:nil
+sgml-local-catalogs:"/usr/lib/sgml/CATALOG"
+sgml-local-ecat-files:nil
+End:
+-->