<!--
$Header: /usr/prj/pg/cvsroot/doc/doc/src/sgml/ref/psql-ref.sgml,v 1.11 2001/09/11 05:13:43 t-ishii Exp $
Postgres documentation
-->

<refentry id="APP-PSQL">
 <docinfo>
  <date>2000-12-25</date>
 </docinfo>

  <refmeta>
    <refentrytitle id="app-psql-title"><application>psql</application></refentrytitle>
    <manvolnum>1</manvolnum>
    <refmiscinfo><!--Application-->アプリケーション</refmiscinfo>
  </refmeta>

  <refnamediv>
    <refname><application>psql</application></refname>
    <refpurpose>
      <productname>Postgres</productname><!--interactive terminal-->の対話的ターミナルです。<indexterm><primary>psql</primary></indexterm><indexterm><primary>PostgreSQL</primary><secondary>psql</secondary></indexterm><indexterm><primary sortas="くらいあんとあぷりけーしょん">クライアントアプリケーション</primary></indexterm>
    </refpurpose>
  </refnamediv>

  <refsynopsisdiv>
    <refsynopsisdivinfo>
      <date>1999-10-26</date>
    </refsynopsisdivinfo>

<synopsis>psql [ <replaceable class="parameter">options</replaceable> ] [ <replaceable class="parameter">dbname</replaceable> [ <replaceable class="parameter">user</replaceable> ] ]</synopsis>

  <refsect2 id="R2-APP-PSQL-1">
    <refsect2info>
      <date>1998-09-26</date>
    </refsect2info>

    <title><!--Summary-->概要</title>

    <para>
     <!--<application>psql</application> is a terminal-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. Alternatively, input can be from a file.
     In addition, it provides a number of meta-commands and
     various shell-like features to facilitate writing scripts and automating a wide
     variety of tasks.-->

     <application>psql</application>とは、<productname>Postgres</productname>のターミナル型フロントエンドです。対話的に問い合わせを入力し、<productname>Postgres</productname>に対して発行して、結果を確認することができます。また、ファイルから入力を読み込むことも可能です。さらに、スクリプトを記述するのを簡単にするためと、さまざまなタスクを自動化するために、いくつものメタコマンドとあらゆるシェルに似た機能を備えています。
     
    </para>

  </refsect2>

</refsynopsisdiv>

<refsect1 id="R1-APP-PSQL-1">
  <refsect1info>
    <date>1998-10-26</date>
  </refsect1info>

  <title><!--Description-->説明</title>

  <refsect2 id="R2-APP-PSQL-connecting">
    <refsect2info>
      <date>2000-01-14</date>
    </refsect2info>
   
    <title><!--Connecting To A Database-->データベースへの接続</title>

    <para>
    <!--<application>psql</application> is a regular <productname>Postgres</productname>
    client application. In order to connect to a database you need to know the
    name of your target database, the hostname and port number of the server
    and what user name you want to connect as. <application>psql</application> can be
    told about those parameters via command line options, namely <option>-d</option>,
    <option>-h</option>, <option>-p</option>, and <option>-U</option> respectively.
    If an argument is found that does not belong to any option it will be interpreted
    as the database name (or the user name, if the database name is also
	 given). Not all these options are required, defaults do apply.
    If you omit the host name psql will connect via a Unix domain socket
    to a server on the
    local host. The default port number is compile-time determined. Since the database
    server uses the same default, you will not have to specify the port in most
    cases. The default user name is your Unix username, as is the default
    database name.
    Note that you can't just connect to any database under any username. Your database
    administrator should have informed you about your access rights. To save you some typing
    you can also set the environment variables <envar>PGDATABASE</envar>,
    <envar>PGHOST</envar>, <envar>PGPORT</envar> and <envar>PGUSER</envar>
    to appropriate values.-->

    <application>psql</application>は、<productname>Postgres</productname>の正式なクライアントアプリケーションです。データベースに接続するには接続するデータベース名、ホスト名、サーバーのポート番号、接続する際に使うユーザー名を知っている必要があります。<application>psql</application>では、それらはコマンドラインオプションの引数で指定することができ、それぞれ<option>-d</option>、<option>-h</option>、<option>-p</option>、<option>-U</option>です。オプションに属さない引数がある場合、それはデータベース名（データベース名がある場合にはユーザー名）とみなれます。これらのオプションすべてが必ず指定されている必要はなく、指定されていない場合にはデフォルト値が使用されます。ホスト名を省略した場合は、UNIXドメインソケット経由でローカルホストにあるサーバーに接続します。デフォルトのポート番号はコンパイル時に設定されます。データベースは同じデフォルト値を使用するので、多くの場合、ポートは指定する必要はありません。デフォルトのユーザー名とデータベース名は、UNIXのユーザー名です。あらゆるユーザー名であらゆるデータベースに接続できるわけではありません。データベース管理者は、接続権限をユーザーに知らせておかなければなりません。入力の手間を省くために、環境変数<envar>PGDATABASE</envar>、<envar>PGHOST</envar>、<envar>PGPORT</envar>、<envar>PGUSER</envar>に適当な値を設定することもできます。<indexterm><primary>PGDATABASE</primary></indexterm><indexterm><primary sortas="かんきょうへんすう">環境変数</primary><secondary>PGDATABASE</secondary></indexterm><indexterm><primary>PGHOST</primary></indexterm><indexterm><primary sortas="かんきょうへんすう">環境変数</primary><secondary>PGHOST</secondary></indexterm><indexterm><primary>PGPORT</primary></indexterm><indexterm><primary sortas="かんきょうへんすう">環境変数</primary><secondary>PGPORT</secondary></indexterm><indexterm><primary>PGUSER</primary></indexterm><indexterm><primary sortas="かんきょうへんすう">環境変数</primary><secondary>PGUSER</secondary></indexterm>
    </para>

    <para>
    <!--If the connection could not be made for any reason (e.g., insufficient
    privileges, postmaster is not running on the server, etc.),
    <application>psql</application> will return an error and terminate.-->

    何らかの原因（権限がない、サーバーでpostmasterが稼働していないなど）で接続ができない場合には<application>psql</application>は、エラーメッセージを表示させ、終了します。

    </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 to which <application>psql</application> is currently
    connected, followed by the string "=>". For example,-->

    通常の操作において、<application>psql</application>は、<application>psql</application>が現在接続しているデータベース名にの後に「=>」というプロンプトを表示します。下記がその例です。
</para>

<programlisting>
$ <userinput>psql testdb</userinput>
Welcome to psql, the PostgreSQL interactive terminal.

Type:  &bsol;copyright for distribution terms
       &bsol;h for help with SQL commands
       &bsol;? for help on internal slash commands
       &bsol;g or terminate with semicolon to execute query
       &bsol;q to quit

testdb=>
</programlisting>

    <para>
    <!--At the prompt, the user may type in <acronym>SQL</acronym> queries.  
    Ordinarily, input lines are sent to the backend when a query-terminating
    semicolon is reached. An end of line does not terminate a query! Thus queries
    can be spread over several lines for clarity. If the query was sent and without
    error, the query results are displayed on the screen.-->

    プロンプトに対して問い合わせを入力することができます。通常、入力された行は問い合わせ終了を意味するセミコロンに達したときにバックエンドへと送信されます。つまり、改行は問い合わせの終了を意味しません。したがって、問い合わせはわかりやすくするために、複数の行に渡って記述することができます。問い合わせが問題なく送られたら、画面に問い合わせの結果が表示されます。
    </para>

    <para>
    <!--Whenever a query is executed, <application>psql</application> also polls
    for asynchronous notification events generated by
    <xref linkend="SQL-LISTEN" endterm="SQL-LISTEN-title"> and
    <xref linkend="SQL-NOTIFY" endterm="SQL-NOTIFY-title">.-->

    また、問い合わせが実行されるたびに、<application>psql</application>は<xref linkend="SQL-LISTEN" endterm="SQL-LISTEN-title">と<xref linkend="SQL-NOTIFY" endterm="SQL-NOTIFY-title">によって生成された非同期通知イベントをチェックします。
    </para>
  </refsect2>
</refsect1>

<refsect1 id="R1-APP-PSQL-2">
    <refsect1info>
      <date>1998-09-26</date>
    </refsect1info>

    <title><application>psql</application><!-- Meta-Commands-->メタコマンド</title><indexterm><primary>psql</primary><secondary sortas="めたこまんど">メタコマンド</secondary></indexterm>

    <para>
    <!--Anything you enter in <application>psql</application> that begins with an
    unquoted backslash is a <application>psql</application> meta-command that is
    processed by <application>psql</application> itself.
    These commands are what makes
    <application>psql</application> interesting for administration or scripting.
    Meta-commands are more commonly called slash or backslash commands.-->

    <application>psql</application>内で、入力されたもので、引用符で囲まれておらず、バックスラッシュで始まるものは<application>psql</application>自身によって実行される、<application>psql</application>のメタコマンドです。これらのコマンドは管理する側、または開発する側にとって、<application>psql</application>をとても興味深いものとします。メタコマンドは一般的にスラッシュコマンド、またはバックスラッシュコマンドと呼ばれます。
    </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 
    whitespace characters.-->

    <application>psql</application>コマンドの形式はバックスラッシュ、その直後にコマンドの動詞、その次に引数が来るものです。引数と動詞コマンド、またそれぞれの動詞コマンドは空白文字によって区別します。

    </para>

    <para>
    <!--To include whitespace into an argument you must quote it with a single
    quote. To include a single quote into such an argument, precede it by
    a backslash. Anything contained in single quotes is furthermore subject to
    C-like substitutions for <literal>&bsol;n</literal> (new line), <literal>&bsol;t</literal>
     (tab), <literal>&bsol;</literal><replaceable>digits</replaceable>,
    <literal>&bsol;0</literal><replaceable>digits</replaceable>, and
    <literal>&bsol;0x</literal><replaceable>digits</replaceable>
    (the character with the given decimal, octal, or hexadecimal code).-->

    引数に空白を含める場合、これらは一重引用符で囲む必要があります。一重引用符を引数に含める場合には、二重にしてください。一重引用符で囲まれたものは、<literal>&bsol;n</literal>（改行）、<literal>&bsol;t</literal>（タブ）、<literal>&bsol;</literal><replaceable>digits</replaceable>、<literal>&bsol;0</literal><replaceable>digits</replaceable>、<literal>&bsol;0x</literal><replaceable>digits</replaceable>（与えられた10進数、8進数、16進数の文字）のC言語の代わりになることがあります。

    </para>

    <para>
    <!--If an unquoted argument begins with a colon (<literal>:</literal>),
    it is taken as a variable and the value of the variable is taken as the
    argument instead.-->

    クォーテーションで囲まれていなくて、かつコロン（「<literal>:</literal>」）で開始される引数は、変数として扱われ、変数の値が引数として扱われます。
    </para>

    <para>
    <!--Arguments that are quoted in <quote>backticks</quote> (<literal>`</literal>)
    are taken as a command line that is passed to the shell. The output of the
    command (with a trailing newline removed) is taken as the argument value.
    The above escape sequences also apply in backticks.-->

    <quote>バックティック</quote>（<literal>`</literal>）で囲まれた引数はコマンドラインとして認識され、シェルに引き渡されます。コマンドの結果（後続の改行は削除されます）は引数の値とみなれます。バックティックに対しても上記のエスケープが該当します。
    </para>

    <para>
    <!--Some commands take the name of an <acronym>SQL</acronym> identifier (such as
    a table name) as argument. These arguments follow the syntax rules of
    <acronym>SQL</acronym> regarding double quotes: an identifier without
    double quotes is coerced to lower-case. For all other commands
    double quotes are not special and will become part of the argument.-->

    いくつかのコマンドは、引数に<acronym>SQL</acronym>の（テーブル名などの）識別子を取るものがあります。これらの引数は<acronym>SQL</acronym>の二重引用符などの構文規則に従います。二重引用符がない識別子は小文字に強制変換されます。その他のすべてのコマンドでは二重引用符は特別な意味を持っておらず、引数の一部分となります。
    </para>

    <para>
    <!--Parsing for arguments stops when another unquoted backslash occurs. This
    is taken as the beginning of a new meta-command. The special sequence
    <literal>&bsol;&bsol;</literal>
    (two backslashes) marks the end of arguments and continues parsing
    <acronym>SQL</acronym> queries, if any. That way <acronym>SQL</acronym> and
    <application>psql</application> commands can be freely mixed on a line.
    But in any case, the arguments of a meta-command cannot continue beyond the end
    of the line. -->

    引数の解析は別の引用符の付いていないバックスラッシュがあるところで終了します。これは、新たなメタコマンドの始まりと認識されます。<literal>&bsol;&bsol;</literal>（バックスラッシュ2つ）という特別なシーケンスは引数の終わりを意味し、<acronym>SQL</acronym>問い合わせ続きがある場合は、その解析を行います。そのような方法で、<acronym>SQL</acronym>と<application>psql</application>コマンドは1つの行に合わせて記述することができます。しかし、あらゆる場合において、メタコマンドの引数は行を跨ることはできません。
    
    </para>

    <para>
    <!--The following meta-commands are defined:-->
    以下のメタコマンドが定義されています。
</para>

    <variablelist>
      <varlistentry>
        <term><literal>&bsol;a</literal></term>
        <listitem>
        <para>
	<!--If the current table output format is unaligned, switch to aligned.
	If it is not unaligned, set it to unaligned. This command is
	kept for backwards compatibility. See <command>&bsol;pset</command> for a
	general solution.-->

	現在のテーブルの出力形式が「揃えない」になっていれば、「揃える」に切り替えます。「揃えない」でない場合は、「揃えない」に設定します。このコマンドは下位互換性のためにあります。一般的な解決法は<command>&bsol;pset</command>を参照してください。
        </para>
        </listitem>
      </varlistentry>

      <varlistentry>
        <term><literal>&bsol;C</literal> [ <replaceable class="parameter">title</replaceable> ]</term>
        <listitem>
        <para>
        <!--Set the title of any tables being printed as the result of a query or
        unset any such title. This command is equivalent to
        <literal>&bsol;pset title <replaceable class="parameter">title</replaceable></literal>.
        (The name of this
        command derives from <quote>caption</quote>, as it was previously only
	used to set the caption in an <acronym>HTML</acronym> table.)-->

        問い合わせ結果として表示されるすべてのテーブルタイトルの設定、または、タイトルの設定の解除を行います。このコマンドは、<literal>&bsol;pset title <replaceable class="parameter">title</replaceable></literal>と同じです（このコマンドの名前は<quote>caption</quote>に由来します。<acronym>HTML</acronym>のテーブルのcaption――標題を設定するためだけに使われていたのです）。
        </para>
        </listitem>
      </varlistentry>

      <varlistentry>
        <term><literal>&bsol;connect</literal> (or <literal>&bsol;c</literal>) [ <replaceable class="parameter">dbname</replaceable> [ <replaceable class="parameter">username</replaceable> ] ]</term>
        <listitem>
        <para>
	<!--Establishes a connection to a new database and/or under a user name. The
	previous connection is closed.
	If <replaceable class="parameter">dbname</replaceable> is <literal>-</literal>
	the current database name is assumed.-->

        新しいデータベースに指定したユーザー名、または指定されたユーザー名で接続します。それまでの接続は閉ざされます。<replaceable class="parameter">dbname</replaceable>が「<literal>-</literal>」の場合、現在のデータベース名が使われます。

	</para>

	<para>
	<!--If <replaceable class="parameter">username</replaceable> is omitted
        the current user name is assumed.-->

        <replaceable class="parameter">username</replaceable>が省略された場合、
        現在のユーザー名が使用されます。

	</para>

	<para>
	<!--As a special rule, <command>&bsol;connect</command> without any arguments will connect
	to the default database as the default user (as you would have gotten
	by starting <application>psql</application> without any arguments).-->

        特別な規則として、引数がない<command>&bsol;connect</command>の場合は、デフォルトのデータベースにデフォルトのユーザーで接続します（何も引数なしで<application>psql</application>を起動した場合と同じことになります）。

	</para>

	<para>
	<!--If the connection attempt failed (wrong username, access denied, etc.), the
	previous connection will be kept if and only if <application>psql</application> is
	in interactive mode. When executing a non-interactive script, processing
	will immediately stop with an error. This distinction was chosen as a user
	convenience against typos on the one hand, and a safety mechanism that
	scripts are not accidentally acting on the wrong database on the other hand.-->

        接続の試行が（ユーザー名の間違いやアクセスが拒否された場合などの理由で）失敗した場合、<application>psql</application>が対話式モードの場合に限って、それまでの接続が保持されます。非対話式スクリプトを実行している場合は、処理はエラーとなり、即座に停止します。この違いは、片方は入力ミスに対するユーザーの簡便性を、もう片方は、スクリプトが間違ったデータベースを操作してしまう事故を防ぐ安全な機構を考慮して実装されています。

	</para>
        </listitem>
      </varlistentry>

      <varlistentry>
        <term><literal>&bsol;copy</literal> <replaceable class="parameter">table</replaceable>
        [ <literal>with oids</literal> ] { <literal>from</literal> | <literal>to</literal> }
	<replaceable class="parameter">filename</replaceable> | stdin | stdout
        [ <literal>using delimiters</literal> '<replaceable class="parameter">characters</replaceable>' ]
        [ <literal>with null as</literal> '<replaceable class="parameter">string</replaceable>' ]
        </term>

        <listitem>
        <para>
        <!--Performs a frontend (client) copy. This is an operation that runs an
	<acronym>SQL</acronym> <xref linkend="SQL-COPY" endterm="SQL-COPY-title"> command,
        but instead of the backend's reading or writing the specified file, and 
        consequently requiring backend access and special user privilege, 
	as well as being bound to the file system accessible by the backend,
        <application>psql</application> reads or writes the 
        file and routes the data between the backend and the local file system.-->

        フロントエンド（クライアント）コピーを行います。これは、<acronym>SQL</acronym>の<xref linkend="SQL-COPY" endterm="SQL-COPY-title">コマンドを実行する操作です。しかし、バックエンドが直接指定ファイルの読み書きを行う（これを行うには必然的に、そのファイルシステムがバックエンドからアクセスできるようになっていることはもちろん、バックエンドへのアクセスと特別なユーザー権限が要求されます）のではなく、<application>psql</application>がそのファイルを読みバックエンドにそのデータを中継する、あるいは、バックエンドから中継されたデータをファイルに書き込みます。

	</para>

	<para>
	<!--The syntax of the command is similar to that of the <acronym>SQL</acronym>
	<command>COPY</command> command (see its description for the details).
	Note that, because of this, special parsing rules apply to the
	<command>&bsol;copy</command> command. In particular, the variable
	substitution rules and backslash escapes do not apply.-->

        このコマンドの構文は<acronym>SQL</acronym>の<command>COPY</command>コマンドに似ています（詳細は<command>COPY</command>コマンドの説明を参照してください）。このため、<command>&bsol;copy</command>コマンドには特別な解析ルールが適用されていることに注意してください。特に、変数の置換ルールやバックスラッシュエスケープは適用されません。

	</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 the other
	technique may be preferable.-->

        この操作は<acronym>SQL</acronym>の<command>COPY</command>コマンドほど効率よくありません。というのは、すべてのデータがクライアント/サーバーIP接続かソケット接続を通じてやりとりされなくてはいけないからです。データ量が多いときは他の手法を使用するほうがよいでしょう。

        </para>
        </tip>

        <note>
        <para>
        <!--Note the difference in interpretation of <literal>stdin</literal> and <literal>stdout</literal>
        between frontend and backend copies: in a frontend copy these always refer
        to <application>psql</application>'s input and output stream. On a backend
        copy <literal>stdin</literal> comes from wherever the <command>COPY</command>
        itself came from (for example, a script run with the <option>-f</option> option),
        and <literal>stdout</literal> refers to the query output stream (see
        <command>&bsol;o</command> meta-command below).-->

        フロントエンドコピーとバックエンドコピーとでは、<literal>stdin</literal>と<literal>stdout</literal>の解釈に違いがあることに注意してください。フロントエンドコピーでは、これらは常に<application>psql</application>の入出力ストリームを参照します。バックエンドコピーでは、<literal>stdin</literal>は<command>COPY</command>自体が読み取るところから読み取ります（たとえば、<option>-f</option>オプションで実行するスクリプトなど）。そして、<literal>stdout</literal>は問い合わせ出力ストリーム （後述の<command>&bsol;o</command>メタコマンドを参照してください）を参照します。

        </para>
        </note>
        </listitem>
      </varlistentry>

      <varlistentry>
        <term><literal>&bsol;copyright</literal></term>
        <listitem>
        <para>
        <!--Shows the copyright and distribution terms of <application>Postgres</application>.-->
        <application>Postgres</application>の著作権と配布条項を表示します。
        </para>
        </listitem>
      </varlistentry>

      <varlistentry>
        <term><literal>&bsol;d</literal> <replaceable class="parameter">relation</replaceable> </term>

        <listitem>
        <para>
	<!--Shows all columns of <replaceable class="parameter">relation</replaceable>
	(which could be a table, view, index, or sequence),
	their types, and any special attributes such as <literal>NOT NULL</literal>
	or defaults, if any.
	If the relation is, in fact, a table, any defined indices are also listed.
	If the relation is a view, the view definition is also shown.-->

        <replaceable class="parameter">relation</replaceable>（テーブル、ビュー、インデックス、シーケンス）の全カラム、型と、もしあれば、<literal>NOT NULL</literal>やデフォルト値といった特別な属性を表示します。実際、指定されたリレーションがテーブルの場合、定義済みのインデックスも表示されます。指定リレーションがビューの場合、ビュー定義も表示されます。

	</para>

	<para>
	<!--The command form <literal>&bsol;d+</literal> is identical, but any comments
        associated with the table columns are shown as well.-->

        <literal>&bsol;d+</literal>という形のコマンドも同じですが、テーブルのカラムに関連したすべてのコメントも表示されます。

	</para>

	<note>
	<para>
	<!--If <command>&bsol;d</command> is called without any arguments, it is
	equivalent to <command>&bsol;dtvs</command> which will show a list
	of all tables, views, and sequences. This is purely a convenience
	measure.-->

        <command>&bsol;d</command>が引数なしで呼び出された場合、<command>&bsol;dtvs</command>と同じ意味となり、すべてのテーブル、ビュー、シーケンスの一覧が表示されます。これは単に利便性のためのものです。

	</para>
	</note>
	</listitem>
      </varlistentry>

      <varlistentry>
        <term><literal>&bsol;da</literal> [ <replaceable class="parameter">pattern</replaceable> ]</term>

        <listitem>
        <para>
        <!--Lists all available aggregate functions, together with the data type they operate on.
	If <replaceable class="parameter">pattern</replaceable>
	(a regular expression) is specified, only matching aggregates are shown.-->

        利用できるすべての集約関数と、その操作対象となるデータ型の一覧を表示します。<replaceable class="parameter">pattern</replaceable>（正規表現）が指定された場合、一致する集約のみが表示されます。

        </para>
        </listitem>
      </varlistentry>

      <varlistentry>
        <term><literal>&bsol;dd</literal> [ <replaceable class="parameter">object</replaceable> ]</term>
        <listitem>
        <para>
        <!--Shows the descriptions of <replaceable class="parameter">object</replaceable>
        (which can be a regular expression), or of all objects if no argument is given.
        (<quote>Object</quote> covers aggregates, functions, operators, types, relations
        (tables, views, indices, sequences, large objects), rules, and triggers.) For example:-->

        <replaceable class="parameter">object</replaceable>（正規表現でも指定可）の説明を表示します。引数がない場合はすべてのオブジェクトの説明を表示します（<quote>Object</quote>には、集約、関数、演算子、型と、リレーション――テーブル、ビュー、インデックス、シーケンス、ラージオブジェクトが含まれます）。以下に例を示します。
</para>

<programlisting>
=> <userinput>&bsol;dd version</userinput>
              Object descriptions
  Name   |   What   |        Description
---------+----------+---------------------------
 version | function | PostgreSQL version string
(1 row)
</programlisting>

        <para>
        <!--Descriptions for objects can be generated with the <command>COMMENT ON</command>
        <acronym>SQL</acronym> command.-->

        オブジェクトの説明は<command>COMMENT ON</command> <acronym>SQL</acronym>コマンドを使用して生成することができます。

	</para>

        <note>
        <para>
        <!--<productname>Postgres</productname> stores the object descriptions in the
        pg_description system table.-->

        <productname>Postgres</productname>はオブジェクトの説明をpg_descriptionシステムテーブルに保存します。

        </para>
        </note>

        </listitem>
      </varlistentry>


      <varlistentry>
        <term><literal>&bsol;df [ <replaceable class="parameter">pattern</replaceable> ]</literal></term>

        <listitem>
        <para>
        <!--Lists available functions, together with their argument and return types.
        If <replaceable class="parameter">pattern</replaceable>
        (a regular expression) is specified, only matching functions are shown.
        If the form <literal>&bsol;df+</literal> is used, additional information about
        each function, including language and description, is shown.-->

        利用できるすべての関数と、その引数と戻り値の一覧を表示します。<replaceable class="parameter">pattern</replaceable>（正規表現）が指定された場合、マッチする関数のみが表示されます。<literal>&bsol;df+</literal>という形で使われた場合、各関数の言語や説明を含む付加的情報も表示されます。

        </para>
        </listitem>
      </varlistentry>


      <varlistentry>
        <term><literal>&bsol;distvS [ <replaceable class="parameter">pattern</replaceable> ]</literal></term>

	<listitem>
	<para>
	<!--This is not the actual command name: The letters i, s, t, v, S stand for
	index, sequence, table, view, and system table, respectively. You can specify
	any or all of them in any order to obtain a listing of them, together with
	who the owner is.-->

        これは実コマンドの名前ではなく、i、s、t、v、Sという文字はそれぞれ、インデックス、シーケンス、テーブル、ビュー、システムテーブルを意味します。一覧表示の対象とするこれらのどれか、または、これらのすべてを任意の順番で指定することができます。この表示には所有者の情報も含まれます。

	</para>

	<para>
	<!--If <replaceable class="parameter">pattern</replaceable> is specified,
	it is a regular expression that restricts the listing to those objects
	whose name matches. If one appends a <quote>+</quote> to the command name,
	each object is listed with its associated description, if any.-->

        <replaceable class="parameter">pattern</replaceable>は、指定された場合オブジェクトの名前がマッチするものを一覧表示するという制限を付与する正規表現です。

	</para>
	</listitem>
      </varlistentry>


      <varlistentry>
        <term><literal>&bsol;dl</literal></term>
	<listitem>
	<para>
	<!--This is an alias for <command>&bsol;lo_list</command>, which shows a list of large objects.-->
        これは<command>&bsol;lo_list</command>の別名で、ラージオブジェクトの一覧を表示します。
	</para>
	</listitem>
      </varlistentry>


      <varlistentry>
        <term><literal>&bsol;do [ <replaceable class="parameter">name</replaceable> ]</literal></term>
        <listitem>
        <para>
        <!--Lists available operators with their operand and return types.
        If <replaceable class="parameter">name</replaceable>
        is specified, only operators with that name will be shown.-->

        利用できる演算子と、その演算項目と戻り値を一覧表示します。<replaceable class="parameter">name</replaceable>が指定された場合、その名前の演算子のみが表示されます。

        </para>
        </listitem>
      </varlistentry>


      <varlistentry>
        <term><literal>&bsol;dp</literal> [ <replaceable class="parameter">pattern</replaceable> ]</term>
	<listitem>
	<para>
	<!--This is an alias for <command>&bsol;z</command> which was included for its
	greater mnemonic value (<quote>display permissions</quote>).-->

        これは<command>&bsol;z</command>の別名ですが、より多くのニーモニック値を含みます（<quote>Display Permission</quote>――パーミッションの表示）。

	</para>
	</listitem>
      </varlistentry>


      <varlistentry>
        <term><literal>&bsol;dT [ <replaceable class="parameter">pattern</replaceable> ]</literal></term>
        <listitem>
        <para>
        <!--Lists all data types or only those that match <replaceable class="parameter">pattern</replaceable>.
        The command form <literal>&bsol;dT+</literal> shows extra information.-->

        すべてのデータ型、または、<replaceable class="parameter">pattern</replaceable>に一致する型のみを一覧表示します。

        </para>
        </listitem>
      </varlistentry>


      <varlistentry>
        <term><literal>&bsol;edit</literal> (or <literal>&bsol;e</literal>) [ <replaceable class="parameter">filename</replaceable> ]</term>

        <listitem>
        <para>
        <!--If <replaceable class="parameter">filename</replaceable> is specified,
        the file is edited; after the editor exits, its content is copied
        back to the query buffer. If no argument is given, the current query
        buffer is copied to a temporary file which is then edited in the same
        fashion.-->

        <replaceable class="parameter">filename</replaceable>が指定された場合、このファイルが編集されます。エディタの終了後、その内容は問い合わせバッファにコピーされます。引数なしの場合、現在の問い合わせバッファは一時ファイルにコピーされ、そして同様に編集されます。

        </para>

        <para>
        <!--The new query buffer is then re-parsed according to the normal rules of
        <application>psql</application>, where the whole buffer is treated as
        a single line. (Thus you cannot make scripts this way.
        Use <command>&bsol;i</command> for that.) This means also that
        if the query ends with (or rather contains) a semicolon, it is immediately
        executed. In other cases it will merely wait in the query buffer.-->

        その後、新しい問い合わせバッファは、通常の<application>psql</application>のルールに従い、バッファ全体を1行として再解析されます（このため、この方法では<quote>scripts</quote>を作成できません。この目的のためには<command>&bsol;i</command>を使用してください）。これはまた、問い合わせの終端がセミコロンである（もしくは問い合わせがセミコロンを含む）場合、すぐに実行されることを意味しています。この他の場合は、単に問い合わせバッファ内に保持されるだけです。

        </para>

        <tip>
        <para>
        <!--<application>psql</application> searches the environment variables
        <envar>PSQL_EDITOR</envar>, <envar>EDITOR</envar>, and <envar>VISUAL</envar>
        (in that order) for an editor to use. If all of them are unset,
        <filename>/bin/vi</filename> is run.-->

        <application>psql</application>は、環境変数<envar>PSQL_EDITOR</envar>、<envar>EDITOR</envar>、<envar>VISUAL</envar>を（この順番に）検索し、使用するエディタを決定します。これらすべてが未設定の場合は、<filename>/bin/vi</filename>が実行されます。

        </para>
        </tip>
        </listitem>
      </varlistentry>


      <varlistentry>
        <term><literal>&bsol;echo</literal> <replaceable class="parameter">text</replaceable> [ ... ]</term>
        <listitem>
	<para>
        <!--Prints the arguments to the standard output, separated by one space and
        followed by a newline. This can be useful to
        intersperse information in the output of scripts. For example:-->

        引数をスペースで区切り、標準出力に出力し、改行します。スクリプトの出力に情報を点在させる場合に有用です。例を以下に示します。
</para>

<programlisting>
=> <userinput>&bsol;echo `date`</userinput>
Tue Oct 26 21:40:57 CEST 1999
</programlisting>

<para>
        <!--If the first argument is an unquoted <literal>-n</literal> the the trailing
        newline is not written.-->

        最初の引数が引用符で囲まれていない<literal>-n</literal>の場合、最後の改行は出力されません。

	</para>

	<tip>
	<para>
	<!--If you use the <command>&bsol;o</command> command to redirect your query output
	you may wish to use <command>&bsol;qecho</command> instead of this command.-->

        <command>&bsol;o</command>コマンドを使用して問い合わせの出力先を変更していた場合、このコマンドではなく<command>&bsol;qecho</command>を使用した方がよいでしょう。

	</para>
	</tip>
	</listitem>
      </varlistentry>


      <varlistentry>
        <term><literal>&bsol;encoding</literal> [ <replaceable class="parameter">encoding</replaceable> ]</term>

        <listitem>
        <para>
        <!--Sets the client encoding, if you are using multibyte encodings.
        Without an argument, this command shows the current encoding.-->

        マルチバイトエンコーディングを使用している場合、クライアント側のコーディングを設定します。引数なしの場合、このコマンドは現在のエンコーディング方式を表示します。

        </para>
        </listitem>
      </varlistentry>


      <varlistentry>
        <term><literal>&bsol;f</literal> [ <replaceable class="parameter">string</replaceable> ]</term>

        <listitem>
        <para>
        <!--Sets the field separator for unaligned query output. The default is
        pipe (<literal>|</literal>). See also <command>&bsol;pset</command> for a generic way
	of setting output options.-->

        位置揃えされていない問い合わせの出力用のフィールドの区切り文字を設定します。デフォルトは、<quote><literal>|</literal></quote>（<quote>パイプ</quote>記号）です。一般的な出力オプションの設定方法については、<command>&bsol;pset</command>を参照してください。

        </para>
        </listitem>
      </varlistentry>


      <varlistentry>
        <term><literal>&bsol;g</literal> [ { <replaceable class="parameter">filename</replaceable> | <literal>|</literal><replaceable class="parameter">command</replaceable> } ]</term>

        <listitem>
        <para>
        <!--Sends the current query input buffer to the backend and optionally
        saves the output in <replaceable class="parameter">filename</replaceable>
        or pipes the output into a separate Unix shell to execute
        <replaceable class="parameter">command</replaceable>. A bare <literal>&bsol;g</literal>
	is virtually equivalent to a semicolon. A <literal>&bsol;g</literal> with argument
	is a <quote>one-shot</quote> alternative to the <command>&bsol;o</command> command.-->

        現在の問い合わせ入力バッファをバックエンドに送ります。また、オプションとしてその出力を<replaceable class="parameter">filename</replaceable>に保存したり、その出力を別のシェルに渡し、<replaceable class="parameter">command</replaceable>を実行したりすることもできます。単なる<literal>&bsol;g</literal>はセミコロンと仮想的に同じです。引数がある<literal>&bsol;g</literal>は<literal>&bsol;o</literal>コマンドの<quote>一度限りの</quote>別方法です。

        </para>
        </listitem>
      </varlistentry>

      <varlistentry>
        <term><literal>&bsol;help</literal> (or <literal>&bsol;h</literal>) [ <replaceable class="parameter">command</replaceable> ]</term>

        <listitem>
        <para>
        <!--Give syntax help on the specified <acronym>SQL</acronym> command.  
        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
        syntax help on all <acronym>SQL</acronym> commands is shown.-->

        指定した<acronym>SQL</acronym>コマンドの構文に関するヘルプを表示します。<replaceable class="parameter">command</replaceable>が指定されていなかった場合は、<application>psql</application>は構文ヘルプが存在するすべてのコマンドの一覧を表示します。

        </para>

	<note>
	<para>
	<!--To simplify typing, commands that consists of several words do not have to be quoted.
	Thus it is fine to type <userinput>&bsol;help alter table</userinput>.-->

        入力を簡単にできるよう、複数単語からなるコマンドを引用符で囲む必要はありません。したがって、<userinput>&bsol;help alter table</userinput>と入力するだけで十分です。

	</para>
	</note>	
        </listitem>
      </varlistentry>


      <varlistentry>
        <term><literal>&bsol;H</literal></term>
        <listitem>
        <para>
	<!--Turns on <acronym>HTML</acronym> query output format. If the <acronym>HTML</acronym>
	format is already on, it is switched back to the default aligned text format. This
	command is for compatibility and convenience, but see <command>&bsol;pset</command> about
	setting other output options.-->

        <acronym>HTML</acronym>問い合わせ出力形式を有効にします。すでに<acronym>HTML</acronym>形式が有効であった場合、デフォルトの位置揃えされたテキスト形式に戻します。このコマンドは互換性と利便性のために存在します。他の出力オプションについては、<command>&bsol;pset</command>を参照してください。

        </para>
        </listitem>
      </varlistentry>


      <varlistentry>
        <term><literal>&bsol;i</literal> <replaceable class="parameter">filename</replaceable></term>
        <listitem>
        <para>
        <!--Reads input from the file <replaceable class="parameter">filename</replaceable>
	and executes it as though it had been typed on the keyboard.-->

        <replaceable class="parameter">filename</replaceable>ファイルから入力を読み取り、キーボードから入力された場合と同じように実行します。

        </para>
	<note>
	<para>
	<!--If you want to see the lines on the screen as they are read you must set
	the variable <envar>ECHO</envar> to <literal>all</literal>.-->

        読み取られた行を画面上に表示させたい場合は、<envar>ECHO</envar>変数を<literal>all</literal>に設定する必要があります。

	</para>
	</note>
        </listitem>
      </varlistentry>


      <varlistentry>
        <term><literal>&bsol;l</literal> (or <literal>&bsol;list</literal>)</term>
        <listitem>
        <para>
        <!--List all the databases in the server as well as their owners. Append a
        <quote>+</quote> to the command name to see any descriptions
        for the databases as well. If your <productname>Postgres</productname>
	installation was
	compiled with multibyte encoding support, the encoding scheme of each
	database is shown as well.-->

        サーバー上のデータベースとその所有者の一覧を表示します。このコマンドに<quote>+</quote>を付与することで、そのデータベースに関するすべての説明を表示することができます。<productname>Postgres</productname>のインストール時にマルチバイトコーディングをサポートするようにコンパイルしていた場合、各データベースのコーディングの名称も表示されます。

        </para>
        </listitem>
      </varlistentry>


      <varlistentry>
        <term><literal>&bsol;lo_export</literal> <replaceable class="parameter">loid</replaceable> <replaceable class="parameter">filename</replaceable></term>

	<listitem>
	<para>
	<!--Reads the large object with <acronym>OID</acronym> <replaceable class="parameter">loid</replaceable>
	from the database and writes it to <replaceable class="parameter">filename</replaceable>.
	Note that this is subtly different from the server function <function>lo_export</function>,
	which acts with the permissions of the user that the database server runs as and
	on the server's file system.-->

        データベースから<replaceable class="parameter">loid</replaceable>という<acronym>OID</acronym>を持つラージオブジェクトを読み取り、<replaceable class="parameter">filename</replaceable>に書き出します。<function>lo_export</function>サーバー関数とは微妙に異なります。こちらの関数はデータベースサーバーを実行しているユーザー権限で、サーバー上のファイルシステムに対して動作します。

	</para>
	<tip>
	<para>
	<!--Use <command>&bsol;lo_list</command> to find out the large object's <acronym>OID</acronym>.-->
        ラージオブジェクトの<acronym>OID</acronym>を探すには、<command>&bsol;lo_list</command>を使用してください。
	</para>
	</tip>
	<note>
	<para>
	<!--See the description of the <envar>LO_TRANSACTION</envar> variable for
	important information concerning all large object operations.-->

        ラージオブジェクトに対するすべての操作に関する重要な情報について、<envar>LO_TRANSACTION</envar>変数の説明を参照してください。
	</para>
	</note>
	</listitem>
      </varlistentry>


      <varlistentry>
        <term><literal>&bsol;lo_import</literal> <replaceable class="parameter">filename</replaceable> [ <replaceable class="parameter">comment</replaceable> ]</term>

	<listitem>
	<para>
	<!--Stores the file into a <productname>Postgres</productname> <quote>large object</quote>.
	Optionally, it associates the given comment with the object. Example:-->

        ファイルを<productname>Postgres</productname>の<quote>large object</quote>に保存します。オプションとして、指定したコメントをそのオブジェクトに関連付けます。以下に例を示します。
</para>

<programlisting>
foo=> <userinput>&bsol;lo_import '/home/peter/pictures/photo.xcf' 'a picture of me'</userinput>
lo_import 152801
</programlisting>

<para>
	<!--The response indicates that the large object received object id 152801
	which one ought to remember if one wants to access the object ever again.
	For that reason it is recommended to always associate a human-readable
	comment with every object. Those can then be seen with the
	<command>&bsol;lo_list</command> command.-->

        上の応答は、そのラージオブジェクトをオブジェクトID 152801として受け付けられたことを示します。今後再びそのラージオブジェクトにアクセスしたい場合はこの番号を記憶しておかなければなりません。このため、すべてのオブジェクトに人間がわかるようなコメントを常に関連付けることを推奨します。このコメントは<command>&bsol;lo_list</command>コマンドを使用して参照することができます。

	</para>

	<para>
	<!--Note that this command is subtly different from the server-side <function>lo_import</function>
	because it acts as the local user on the local file system, rather than the server's
	user and file system.-->

        このコマンドは、ローカルなユーザーによってローカルなファイルシステムに対して動作しますが、サーバー側の<function>lo_import</function>はサーバーのユーザーによりサーバー上のファイルシステムに対して動作します。このため、このコマンドはサーバー側の<function>lo_import</function>とは微妙に異なります。

	</para>

	<note>
	<para>
	<!--See the description of the <envar>LO_TRANSACTION</envar> variable for
	important information concerning all large object operations.-->

        ラージオブジェクトに対するすべての操作に関する重要な情報について、<envar>LO_TRANSACTION</envar>変数の説明を参照してください。

	</para>
	</note>
	</listitem>
      </varlistentry>

      <varlistentry>
        <term><literal>&bsol;lo_list</literal></term>
	<listitem>
	<para>
	<!--Shows a list of all <productname>Postgres</productname> <quote>large
	objects</quote> currently stored in the database, along with any
	comments provided for them.-->

        現在データベースに保存されているすべての<productname>Postgres</productname>の<quote>ラージオブジェクト</quote>の一覧を、そのオブジェクトに付けられたコメントと一緒に表示します。

	</para>
	</listitem>
      </varlistentry>

      <varlistentry>
        <term><literal>&bsol;lo_unlink</literal> <replaceable class="parameter">loid</replaceable></term>

	<listitem>
	<para>
	<!--Deletes the large object with <acronym>OID</acronym> <replaceable class="parameter">loid</replaceable>
	from the database.-->

        <replaceable class="parameter">loid</replaceable>という<acronym>OID</acronym>が示すラージオブジェクトをデータベースから削除します。

	</para>

	<tip>
	<para>
	<!--Use <command>&bsol;lo_list</command> to find out the large object's <acronym>OID</acronym>.-->
 
        ラージオブジェクトの<acronym>OID</acronym>を探すには、<command>&bsol;lo_list</command>を使用してください。

	</para>
	</tip>
	<note>
	<para>
	<!--See the description of the <envar>LO_TRANSACTION</envar> variable for
	important information concerning all large object operations.-->

        ラージオブジェクトに対するすべての操作に関する重要な情報について、<envar>LO_TRANSACTION</envar>変数の説明を参照してください。

	</para>
	</note>
	</listitem>
      </varlistentry>


      <varlistentry>
        <term><literal>&bsol;o</literal> [ {<replaceable class="parameter">filename</replaceable> | <literal>|</literal><replaceable class="parameter">command</replaceable>} ]</term>

        <listitem>
        <para>
        <!--Saves future query results to the file
	<replaceable class="parameter">filename</replaceable> or pipes future
        results into a separate Unix shell to execute
	<replaceable class="parameter">command</replaceable>.
        If no arguments are specified, the query output will be reset to
        <filename>stdout</filename>.-->

        以降の問い合わせの結果を<replaceable class="parameter">filename</replaceable>ファイルに保存、もしくは、以降の問い合わせの結果を別シェルに渡し、<replaceable class="parameter">command</replaceable>を実行します。引数がない場合、問い合わせの出力は<filename>stdout</filename>にリセットされます。

        </para>

	<para>
	<!--<quote>Query results</quote> includes all tables, command responses,
        and notices obtained
	from the database server, as well as output of various backslash
	commands that query the database (such as <command>&bsol;d</command>),
        but not error messages.-->

        <quote>問い合わせの結果</quote>にはすべてのテーブル、コマンドの応答、データベースサーバーからの注意はもちろん、データベースに問い合わせを行う各種バックスラッシュコマンド（<command>&bsol;d</command>など）の出力が含まれますが、エラーメッセージは含まれません。

	</para>

	<tip>
	<para>
	<!--To intersperse text output in between query results, use <command>&bsol;qecho</command>.-->

        問い合わせの結果の間にテキストを点在させるためには、<command>&bsol;qecho</command>を使用してください。

	</para>
	</tip>
        </listitem>
      </varlistentry>


      <varlistentry>
        <term><literal>&bsol;p</literal></term>
        <listitem>
        <para>
        <!--Print the current query buffer to the standard output.-->
        現在の問い合わせバッファを標準出力に書き出します。
        </para>
        </listitem>
      </varlistentry>


      <varlistentry>
        <term><literal>&bsol;pset</literal> <replaceable class="parameter">parameter</replaceable> [ <replaceable class="parameter">value</replaceable> ]</term>

	<listitem>
	<para>
	<!--This command sets options affecting the output of query result tables.
	<replaceable class="parameter">parameter</replaceable> describes which option
	is to be set. The semantics of <replaceable class="parameter">value</replaceable>
	depend thereon.-->

        このコマンドは問い合わせ結果のテーブル出力に影響するオプションを設定します。<replaceable class="parameter">parameter</replaceable>には、どのオプションを設定するのかを記述します。<replaceable class="parameter">value</replaceable>の意味はこの<replaceable class="parameter">parameter</replaceable>に依存します。

	</para>

	<para>
	<!--Adjustable printing options are:-->
        以下に、表示の調整に関するオプションを示します。
	</para>
	<variablelist>
	  <varlistentry>
	  <term><literal>format</literal></term>
	  <listitem>
	  <para>
	  <!--Sets the output format to one of <literal>unaligned</literal>,
	  <literal>aligned</literal>, <literal>html</literal>, or <literal>latex</literal>.
	  Unique abbreviations are allowed. (That would mean one letter is enough.)-->

          出力形式を<literal>unaligned</literal>、<literal>aligned</literal>、<literal>html</literal>、<literal>latex</literal>に設定します。一意となる省略も可能です（1文字でも十分であることを意味します）。

	  </para>

	  <para>
	  <!--<quote>Unaligned</quote> writes all fields of a tuple on a line, separated
	  by the currently active field separator. This is intended to create output
	  that might be intended to be read in by other programs (tab-separated,
	  comma-separated).
	  <quote>Aligned</quote> mode is the
	  standard, human-readable, nicely formatted text output that is default.
	  The <quote><acronym>HTML</acronym></quote> and <quote>LaTeX</quote> modes
	  put out tables that are intended to be included in documents using the
	  respective mark-up language. They are not complete documents! (This might
	  not be so dramatic in <acronym>HTML</acronym>, but in LaTeX you must
	  have a complete document wrapper.)-->

<quote>Unaligned</quote>は、1行に1つのタプルの全フィールドを、現在有効なフィールド区切り文字で区切って書き出します。これは、他のプログラムによって読み込む予定の（タブ区切りやカンマ区切りといった）出力を作成することを意図しています。デフォルトの<quote>Aligned</quote>モードは、標準的な、人による可読性の高い、きれいに整形されたテキスト出力です。<quote><acronym>HTML</acronym></quote>と<quote>LaTeX</quote>モードは、対応するマークアップ言語の文書に含めることができるようにテーブルを出力します。この出力は完全な文書ではありません（これは<acronym>HTML</acronym>の場合は大きな問題ではありませんが、LaTeXの場合は必ず完全な文書になるようにラッパーを作成しなければなりません）。

	  </para>
	  </listitem>
          </varlistentry>

	  <varlistentry>
	  <term><literal>border</literal></term>
	  <listitem>
	  <para>
	  <!--The second argument must be a number. In general, the higher the number
	  the more borders and lines the tables will have, but this depends on
	  the particular format. In <acronym>HTML</acronym> mode, this will
	  translate directly into the <literal>border=...</literal> attribute, in
	  the others only values 0 (no border), 1 (internal dividing lines), and 2
	  (table frame) make sense.-->

          2番目の引数は数字です。通常はこの数字が多くなればなるほど、表示するテーブルが持つ境界線は太くなりますが、これは特定の形式に依存しています。<acronym>HTML</acronym>モードでは、この値は直接<literal>border=...</literal>属性に反映されます。他の形式の場合は、0（境界線なし）、1（内側の境界線）、2（テーブル枠）という数のみが有効です。

	  </para>
	  </listitem>
	  </varlistentry>

	  <varlistentry>
	  <term><literal>expanded</literal> (or <literal>x</literal>)</term>
	  <listitem>
	  <para>
	  <!--Toggles between regular and expanded format. When expanded format is
	  enabled, all output has two columns with the field name on the left
	  and the data on the right. This mode is useful if the data wouldn't
	  fit on the screen in the normal <quote>horizontal</quote> mode.-->

          通常形式と拡張形式を切り替えます。拡張形式が有効な場合、すべての出力は左にフィールド名、右にデータという2つのカラムを持ちます。このモードはデータが通常の<quote>horizontal</quote>モードによる画面表示に適していない場合に有用です。

	  </para>

	  <para>
	  <!--Expanded mode is supported by all four output modes.-->
          拡張モードは4つのすべてのモードでサポートされています。
	  </para>
	  </listitem>
	  </varlistentry>

	  <varlistentry>
	  <term><literal>null</literal></term>
	  <listitem>
	  <para>
	  <!--The second argument is a string that should be printed whenever a field
	  is null. The default is not to print anything, which can easily be mistaken
	  for, say, an empty string. Thus, one might choose to write
	  <literal>&bsol;pset null '(null)'</literal>.-->

          2番目の引数は、フィールドがnullの場合に表示する文字列です。デフォルトでは何も表示しません。そのため、よく空の文字列と間違うことがあります。このような場合、<literal>&bsol;pset null '(null)'</literal>と書いた方がよいでしょう。

	  </para>
	  </listitem>
	  </varlistentry>

	  <varlistentry>
	  <term><literal>fieldsep</literal></term>
	  <listitem>
	  <para>
	  <!--Specifies the field separator to be used in unaligned output mode. That way
	  one can create, for example, tab- or comma-separated output, which other
	  programs might prefer. To set a tab as field separator, type
	  <literal>&bsol;pset fieldsep '&bsol;t'</literal>. The default field separator is
	  <literal>'|'</literal> (a <quote>pipe</quote> symbol).-->

          位置揃えなしの出力モードで使用されるフィールド区切り文字を指定します。これにより、たとえばタブ区切り、カンマ区切りといった他プログラムがよく使用する形式を作成することができます。タブをフィールド区切り文字として使用するには、<literal>&bsol;pset fieldsep '&bsol;t'</literal>と入力します。デフォルトのフィールド区切り文字は<literal>'|'</literal>（<quote>パイプ</quote>記号）です。

	  </para>
	  </listitem>
	  </varlistentry>

	  <varlistentry>
	  <term><literal>recordsep</literal></term>
	  <listitem>
	  <para>
          <!--Specifies the record (line) separator to use in unaligned output mode. The default
          is a newline character.-->

          位置揃えなしの出力モードで使用されるレコード（行）の区切り文字を指定します。デフォルトは改行文字です。

	  </para>
	  </listitem>
	  </varlistentry>

	  <varlistentry>
	  <term><literal>tuples_only</literal> (or <literal>t</literal>)</term>
	  <listitem>
	  <para>
	  <!--Toggles between tuples only and full display. Full display may show
	  extra information such as column headers, titles, and various footers.
	  In tuples only mode, only actual table data is shown.-->

          タプルのみ表示と完全表示を切り替えます。完全表示ではカラムのヘッダー、タイトル、各種フッタといった余計かもしれない情報も表示します。タプルのみのモードではテーブルの実データのみが表示されます。

	  </para>
	  </listitem>
	  </varlistentry>

	  <varlistentry>
	  <term><literal>title</literal> [ <replaceable class="parameter">text</replaceable> ]</term>
	  <listitem>
	  <para>
	  <!--Sets the table title for any subsequently printed tables. This can be
	  used to give your output descriptive tags. If no argument is given,
	  the title is unset.-->

          今後表示されるすべてのテーブル用のテーブルタイトルを設定します。これは出力に説明的なタグを付けることに使用することができます。引数がない場合、タイトルは設定されません。

	  </para>

	  <note>
	  <para>
	  <!--This formerly only affected <acronym>HTML</acronym> mode. You can now
	  set titles in any output format.-->

          以前までは<acronym>HTML</acronym>モードでしか影響しませんでした。現在ではすべての出力形式においてタイトルを設定することができます。

	  </para>
	  </note>
	  </listitem>
	  </varlistentry>

	  <varlistentry>
	  <term><literal>tableattr</literal> (or <literal>T</literal>) [ <replaceable class="parameter">text</replaceable> ]</term>
	  <listitem>
	  <para>
	  <!--Allows you to specify any attributes to be placed inside the <acronym>HTML</acronym>
	  <sgmltag>table</sgmltag> tag. This could for example be
	  <literal>cellpadding</literal> or <literal>bgcolor</literal>. Note that you
	  probably don't want to specify <literal>border</literal> here, as
	  that is already taken care of by <literal>&bsol;pset border</literal>.-->

          <acronym>HTML</acronym>の<sgmltag>table</sgmltag>タグ内に記述する任意の属性を指定できます。これを使用して、たとえば、<literal>cellpadding</literal>や<literal>bgcolor</literal>を指定することができます。<literal>border</literal>属性はすでに<literal>&bsol;pset border</literal>によって処理されていますので、このコマンドでは<literal>border</literal>を指定しないほうがよいでしょう。

	  </para>
	  </listitem>
	  </varlistentry>


	  <varlistentry>
	  <term><literal>pager</literal></term>
	  <listitem>
	  <para>
	  <!--Toggles the list of a pager to do table output. If the environment variable
	  <envar>PAGER</envar> is set, the output is piped to the specified program.
	  Otherwise <filename>more</filename> is used.-->

          テーブル出力の際のページャの使用を切り替えます。<envar>PAGER</envar>環境変数が設定されている場合、出力は指定したプログラムに渡されます。設定されていなければ、<filename>more</filename>が使用されます。

	  </para>

	  <para>
	  <!--In any case, <application>psql</application> only uses the pager if it
	  seems appropriate. That means among other things that the output is to
	  a terminal and that the table would normally not fit on the screen.
	  Because of the modular nature of the printing routines it is not always
	  possible to predict the number of lines that will actually be printed.
	  For that reason <application>psql</application> might not appear very
	  discriminating about when to use the pager and when not to.-->

          いかなる場合でも、そのページャが適切とみなば、<application>psql</application>はそのページャのみを使用します。これは、ほかにもありますが、出力が端末であることと、テーブルが通常画面表示に適していないことを示しています。表示ルーチンのモジュールの性質により、実際に表示する行数を常に予測することはできません。このため、<application>psql</application>はページャを使用している場合と使用していない場合を明確に区別することができません。

	  </para>
	  </listitem>
	  </varlistentry>
	</variablelist>

<para>
	<!--Illustrations on how these different formats look can be seen in
	the <xref linkend="APP-PSQL-examples" endterm="APP-PSQL-examples-title"> section.-->

        <xref linkend="APP-PSQL-examples" endterm="APP-PSQL-examples-title">に、これらの形式の違いがどのように見えるかについての解説があります。

	</para>

	<tip>
	<para>
	<!--There are various shortcut commands for <command>&bsol;pset</command>. See
	<command>&bsol;a</command>, <command>&bsol;C</command>, <command>&bsol;H</command>,
	<command>&bsol;t</command>, <command>&bsol;T</command>, and <command>&bsol;x</command>.-->

        <command>&bsol;pset</command>には各種のショートカットコマンドがあります。<command>&bsol;a</command>、<command>&bsol;C</command>、<command>&bsol;H</command>、<command>&bsol;t</command>、<command>&bsol;T</command>、<command>&bsol;x</command>を参照してください。

	</para>
	</tip>

	<note>
	<para>
	<!--It is an error to call <command>&bsol;pset</command> without arguments. In the future
	this call might show the current status of all printing options.-->

        引数なしで<command>&bsol;pset</command>を呼び出した場合はエラーになります。今後、この呼び出しによって、現在のすべての表示用オプションの状態を表示するようになる予定です。

	</para>
	</note>

	</listitem>
      </varlistentry>


      <varlistentry>
        <term><literal>&bsol;q</literal></term>
        <listitem>
        <para>
        <!--Quit the <application>psql</application> program.-->

        <application>psql</application>プログラムを終了します。

        </para>
        </listitem>
      </varlistentry>


      <varlistentry>
        <term><literal>&bsol;qecho</literal> <replaceable class="parameter">text</replaceable> [ ... ] </term>
        <listitem>
        <para>
	<!--This command is identical to <command>&bsol;echo</command> except that
	all output will be written to the query output channel, as set by
	<command>&bsol;o</command>.-->

        このコマンドは<command>&bsol;echo</command>と同じです。ただし、<command>&bsol;o</command>による設定と同様に、すべての出力が問い合わせ出力チャンネルに書き出される点が異なります。

        </para>
        </listitem>
      </varlistentry>


      <varlistentry>
        <term><literal>&bsol;r</literal></term>
        <listitem>
        <para>
        <!--Resets (clears) the query buffer.-->

        問い合わせバッファをリセット（クリア）します。

        </para>
        </listitem>
      </varlistentry>


      <varlistentry>
        <term><literal>&bsol;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,
	the history is written to the standard output.
        This option is only available if <application>psql</application> is
        configured to use the <acronym>GNU</acronym> history library.-->

        コマンドラインの履歴の表示、または、<replaceable class="parameter">filename</replaceable>への保存を行います。<replaceable class="parameter">filename</replaceable>が省略された場合、履歴は標準出力に書き出されます。このオプションは、<application>psql</application>が<acronym>GNU</acronym>historyライブラリを使用するようにコンパイル時に設定されていた場合にのみ使用可能です。

        </para>

	<note>
	<para>
	<!--As of <application>psql</application> version 7.0 it is no longer
	necessary to save the command history, since that will be done
	automatically on program termination. The history is
	also loaded automatically every time <application>psql</application>
	starts up.-->

        <application>psql</application>バージョン7.0では、コマンドの履歴はプログラムの終了時に自動的に保存されるようになりましたので、コマンドの履歴を保存する必要がなくなりました。この履歴は<application>psql</application>の起動のたびに自動的に読み込まれます。

	</para>
	</note>
        </listitem>
      </varlistentry>


      <varlistentry>
        <term><literal>&bsol;set</literal> [ <replaceable class="parameter">name</replaceable> [ <replaceable class="parameter">value</replaceable> [ ... ]]]</term>

	<listitem>
	<para>
	<!--Sets the internal variable <replaceable class="parameter">name</replaceable>
	to <replaceable class="parameter">value</replaceable> or, if more than one
        value is given, to the concatenation of all of them. If no second argument
	is given, the variable is just set with no value. To unset a variable, use
        the <command>&bsol;unset</command> command.-->

        <replaceable class="parameter">value</replaceable>を、もしくは、1つ以上のvalueが与えられた場合は、それらをまとめたものを<replaceable class="parameter">name</replaceable>内部変数に設定します。2番目の引数がない場合は、変数は単に値がないものとして設定されます。変数を未設定とするには、<command>&bsol;unset</command>コマンドを使用してください。

	</para>

	<para>
	<!--Valid variable names can contain characters, digits, and underscores.
        See the section about <application>psql</application> variables for details.-->

        変数名には、文字、数字、アンダースコアを使用することができます。詳細については、<application>psql</application>の変数に関する節を参照してください。

	</para>

	<para>
	<!--Although you are welcome to set any variable to anything you want,
	<application>psql</application> treats several variables as special.
	They are documented in the section about variables.-->

        必要ならばどのようなものでも任意の変数に設定できますが、<application>psql</application>はいくつかの変数を特別なものとして扱っています。これらについては変数に関する節で説明されています。

	</para>

	<note>
	<para>
	<!--This command is totally separate from the <acronym>SQL</acronym> command
	<xref linkend="SQL-SET" endterm="SQL-SET-title">.-->

        このコマンドは<acronym>SQL</acronym>コマンドの<xref linkend="SQL-SET" endterm="SQL-SET-title">とはまったく別のものです。

	</para>
	</note>
	</listitem>
      </varlistentry>


      <varlistentry>
        <term><literal>&bsol;t</literal></term>
        <listitem>
        <para>
        <!--Toggles the display of output column name headings and row count footer.
	This command is equivalent to <literal>&bsol;pset tuples_only</literal> and
	is provided for convenience.-->

        出力列名ヘッダーと行数フッタの表示を切り替えます。このコマンドは<literal>&bsol;pset tuples_only</literal>と同じく、利便性のために用意されたものです。

        </para>
        </listitem>
      </varlistentry>


      <varlistentry>
        <term><literal>&bsol;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 in <acronym>HTML</acronym> tabular output mode. This command is
	equivalent to <literal>&bsol;pset tableattr <replaceable class="parameter">table_options</replaceable></literal>.-->

        <acronym>HTML</acronym>表形式出力モードにおける<sgmltag>table</sgmltag>タグ内部に記述するオプションを指定できます。このコマンドは<literal>&bsol;pset tableattr <replaceable class="parameter">table_options</replaceable></literal>と同じです。

        </para>
        </listitem>
      </varlistentry>


      <varlistentry>
        <term><literal>&bsol;w</literal> {<replaceable class="parameter">filename</replaceable> | <replaceable class="parameter">|command</replaceable>}</term>
        <listitem>
        <para>
        <!--Outputs the current query buffer to the file <replaceable class="parameter">filename</replaceable>
	or pipes it to the Unix command <replaceable class="parameter">command</replaceable>.-->

        現在の問い合わせバッファを<replaceable class="parameter">filename</replaceable>ファイルに出力、もしくは、Unixコマンドの<replaceable class="parameter">command</replaceable>に渡します。

        </para>
        </listitem>
      </varlistentry>


      <varlistentry>
        <term><literal>&bsol;x</literal></term>
        <listitem>
        <para>
        <!--Toggles extended row format mode. As such it is equivalent to
	<literal>&bsol;pset expanded</literal>.-->

        拡張行形式モードを切り替えます。このコマンド自体は<literal>&bsol;pset expanded</literal>と同じものです。

       </para>
       </listitem>
      </varlistentry>


      <varlistentry>
        <term><literal>&bsol;z</literal> [ <replaceable class="parameter">pattern</replaceable> ]</term>
        <listitem>
        <para>
        <!--Produces a list of all tables in the database with their appropriate
	access permissions listed. If an argument is given it is taken as a regular
	expression which limits the listing to those tables which match it.-->

        データベース内のすべてのテーブルを適切なアクセス権限の一覧を付けて表示します。引数が指定された場合、正規表現として扱われ、それに一致するテーブルのみの一覧が表示されます。
        </para>

<programlisting>
test=> <userinput>&bsol;z</userinput>
Access permissions for database "test"
 Relation |           Access permissions
----------+-------------------------------------
 my_table | {"=r","joe=arwR", "group staff=ar"}
(1 row )
</programlisting>

<para>
        <!--Read this as follows:-->
        これから、以下のことがわかります。
</para>

	<itemizedlist>
          <listitem>
          <para>
          <!--<literal>"=r"</literal>: <literal>PUBLIC</literal> has read
	  (<command>SELECT</command>) permission on the table.-->

          <literal>"=r"</literal>――<literal>PUBLIC</literal>はこのテーブルに対して読み取り（<command>SELECT</command>）の権限を持ちます。

	  </para>
	  </listitem>

	  <listitem>
	  <para>
	  <!--<literal>"joe=arwR"</literal>: User <literal>joe</literal> has read,
	  write (<command>UPDATE</command>, <command>DELETE</command>),
	  <quote>append</quote> (<command>INSERT</command>) permissions,
	  and permission to create rules on the table.-->

          <literal>"joe=arwR"</literal>――<literal>joe</literal>ユーザーはこのテーブルに対して、読み取り、書き込み（<command>UPDATE</command>、<command>DELETE</command>）<quote>追加</quote>（<command>INSERT</command>）の権限と、ルール作成権限を持ちます。

	  </para>
	  </listitem>

	  <listitem>
	  <para>
	  <!--<literal>"group staff=ar"</literal>: Group <literal>staff</literal>
	  has <command>SELECT</command> and <command>INSERT</command> permission.-->

          <literal>"group staff=ar"</literal>――<literal>staff</literal>グループは<command>SELECT</command>と<command>INSERT</command>の権限を持ちます。

	  </para>
	  </listitem>
	</itemizedlist>

	<para>
	<!--The commands <xref linkend="SQL-GRANT" endterm="SQL-GRANT-title"> and
	<xref linkend="SQL-REVOKE" endterm="SQL-REVOKE-title">
	are used to set access permissions.-->

        <xref linkend="SQL-GRANT" endterm="SQL-GRANT-title">コマンドと<xref linkend="SQL-REVOKE" endterm="SQL-REVOKE-title">コマンドは、アクセス権限の設定に使われます。

	</para>

        </listitem>
      </varlistentry>


      <varlistentry>
        <term><literal>&bsol;!</literal> [ <replaceable class="parameter">command</replaceable> ]</term>
        <listitem>
        <para>
        <!--Escapes to a separate Unix shell or executes the Unix command
        <replaceable class="parameter">command</replaceable>. The arguments
        are not further interpreted, the shell will see them as is.-->

        別のシェルの起動、もしくは、Unixコマンドの<replaceable class="parameter">command</replaceable>を実行します。引数はこれ以上解釈されず、そのままシェルに渡されます。

        </para>
        </listitem>
      </varlistentry>


      <varlistentry>
        <term><literal>&bsol;?</literal></term>
        <listitem>
        <para>
        <!--Get help information about the backslash (<quote>&bsol;</quote>) commands.-->

        バックスラッシュ（<quote>&bsol;</quote>）コマンドに関するヘルプ情報を表示します。

        </para>
        </listitem>
      </varlistentry>

    </variablelist>
</refsect1>



<refsect1 id="R1-APP-PSQL-3">
  <refsect1info>
    <date>1998-09-26</date>
  </refsect1info>

  <title><!--Command-line Options-->コマンドラインオプション</title>
<indexterm><primary>psql</primary><secondary sortas="こまんどらいんおぷしょん">コマンドラインオプション</secondary></indexterm>
  <para>
  <!--If so configured, <application>psql</application> understands both standard
  Unix short options, and <acronym>GNU</acronym>-style long options. The latter
  are not available on all systems.-->

  コンパイル時に設定されていれば、<application>psql</application>は、標準Unix短縮形式オプションと<acronym>GNU</acronym>形式の長めのオプションの両方を受け付けることができます。後者はすべてのシステムで利用できるわけではありません。

  </para>

  <variablelist>
    <varlistentry>
      <term>-a</term>
      <term>--echo-all</term>
      <listitem>
      <para>
      <!--Print all the lines to the screen as they are read. This is more useful for
      script processing rather than interactive mode.
      This is equivalent to setting the variable <envar>ECHO</envar> to <literal>all</literal>.-->

      読み込んだすべての行を画面に表示します。これは対話式モードよりもスクリプト処理の際に有用です。これは<envar>ECHO</envar>変数を<literal>all</literal>に設定することと同じです。

      </para>
      </listitem>
    </varlistentry>


    <varlistentry>
      <term>-A</term>
      <term>--no-align</term>
      <listitem>
      <para>
      <!--Switches to unaligned output mode. (The default output mode is otherwise
      aligned.)-->

      位置揃えなしの出力モードに切り替えます（さもなければ、デフォルトの位置揃えされた出力モードになります）。

      </para>
      </listitem>
    </varlistentry>

	
    <varlistentry>
      <term>-c <replaceable class="parameter">query</replaceable></term>
      <term>--command <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 in shell scripts.-->

      <application>psql</application>に対し、<replaceable class="parameter">query</replaceable>という1つの問い合わせ文字列を実行し、終了するよう指示します。このコマンドはシェルスクリプト内で有用です。

      </para>
      <para>
      <!--<replaceable class="parameter">query</replaceable> must be either a query string
      that is completely parseable by the backend (i.e., it contains no <application>psql</application>
      specific features), or it is a single backslash command. Thus
      you cannot mix <acronym>SQL</acronym> and <application>psql</application>
      meta-commands. To achieve that, you could pipe the string into
      <application>psql</application>, like this:
      <literal>echo "&bsol;x &bsol;&bsol; select * from foo;" | psql</literal>.-->

      <replaceable class="parameter">query</replaceable>は、バックエンドで完全に解析可能な問い合わせ文字列（つまり、<application>psql</application>は含みません）、もしくは、1つのバックスラッシュコマンドである必要があります。このため<acronym>SQL</acronym>と<application>psql</application>メタコマンドを混在させることはできません。<literal>echo "&bsol;x &bsol;&bsol; select * from foo;" | psql</literal>のようにして、パイプを使って文字列を<application>psql</application>に渡すことで混在させることができます。

      </para>
      </listitem>
    </varlistentry>


    <varlistentry>
      <term>-d <replaceable class="parameter">dbname</replaceable></term>
      <term>--dbname <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 first non-option
      argument on the command line.-->

      接続するデータベースの名前を指定します。これはコマンドラインでオプション形式でない最初の引数として<replaceable class="parameter">dbname</replaceable>を指定することと同じです。

      </para>
      </listitem>
    </varlistentry>


    <varlistentry>
      <term>-e</term>
      <term>--echo-queries</term>
      <listitem>
      <para>
      <!--Show all queries that are sent to the backend.
      This is equivalent to setting the variable <envar>ECHO</envar>
      to <literal>queries</literal>.-->

      バックエンドに送られた問い合わせをすべて表示します。これは<envar>ECHO</envar>変数を<literal>queries</literal>に設定することと同じです。

      </para>
      </listitem>
    </varlistentry>


    <varlistentry>
      <term>-E</term>
      <term>--echo-hidden</term>
      <listitem>
      <para>
      <!--Echoes the actual queries generated by &bsol;d and other backslash commands.
      You can use this if you wish to include similar functionality into
      your own programs. This is equivalent to setting the variable
      <envar>ECHO_HIDDEN</envar> from within <application>psql</application>.-->

      &bsol;dや他のバックスラッシュコマンドによって生成される実際の問い合わせを表示します。これを使って、自作のプログラムで似たような関数機能を含めることができます。これは<application>psql</application>内部から<envar>ECHO_HIDDEN</envar>変数を設定することと同じです。

      </para>
      </listitem>
    </varlistentry>


    <varlistentry>
      <term>-f <replaceable class="parameter">filename</replaceable></term>
      <term>--file <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.
      After the file is processed, <application>psql</application> terminates.
      This is in many ways equivalent to the internal command <command>&bsol;i</command>.-->

      対話式に問い合わせを読み取るのではなく、<replaceable class="parameter">filename</replaceable>ファイルを問い合わせのソースとして使用します。このファイルの処理が終了した後、<application>psql</application>は終了します。これは<command>&bsol;i</command>内部コマンドとほとんど同じです。

      </para>
      <para>
      <!--Using this option is subtly different from writing
      <literal>psql &lt; <replaceable class="parameter">filename</replaceable></literal>.
      In general, both will do what you expect, but using <literal>-f</literal>
      enables some nice features such as error messages with line numbers.
      There is also a slight chance that using this option will reduce
      the start-up overhead. On the other hand, the variant using the shell's
      input redirection is (in theory) guaranteed to yield exactly the same
      output that you would have gotten had you entered everything by hand.-->

      このオプションの使用と、<literal>psql &lt; <replaceable class="parameter">filename</replaceable></literal>と入力することは微妙に異なります。一般的には、両者とも想像どおりの動作を行いますが、<literal>-f</literal>を使用した場合は、行番号付きのエラーメッセージなどといった、いくつかの優れた機能が有効になります。また、このオプションを使用した場合、起動時のオーバーヘッドが減少する可能性が少しあります。一方、シェルの入力リダイレクションを使用する方法では、（理論的には）すべて手作業で入力した場合の出力とまったく同一な出力になることが保証されます。

      </para>
      </listitem>
    </varlistentry>


    <varlistentry>
      <term>-F <replaceable class="parameter">separator</replaceable></term>
      <term>--field-separator <replaceable class="parameter">separator</replaceable></term>
      <listitem>
      <para>
      <!--Use <replaceable class="parameter">separator</replaceable> as the field separator.
      This is equivalent to <command>&bsol;pset fieldsep</command> or <command>&bsol;f</command>.-->

      <replaceable class="parameter">separator</replaceable>をフィールド区切り文字として使用します。これは<command>&bsol;pset fieldsep</command>や<command>&bsol;f</command>と同じです。

      </para>
      </listitem>
    </varlistentry>


    <varlistentry>
      <term>-h <replaceable class="parameter">hostname</replaceable></term>
      <term>--host <replaceable class="parameter">hostname</replaceable></term>
      <listitem>
      <para>
      <!--Specifies the host name of the machine on which the
      <application>postmaster</application> is running.
      If host begins with a slash, it is used 
      as the directory for the unix domain socket.-->

      <application>postmaster</application>を実行しているマシンのホスト名を指定します。このオプションがない場合、通信はローカルなUnixドメインソケットを使用して行われます。

      </para>
      </listitem>
    </varlistentry>


    <varlistentry>
      <term>-H</term>
      <term>--html</term>
      <listitem>
      <para>
      <!--Turns on <acronym>HTML</acronym> tabular output. This is equivalent
      to <literal>&bsol;pset format html</literal> or the <command>&bsol;H</command>
      command.-->

      <acronym>HTML</acronym>表形式を有効にします。これは<literal>&bsol;pset format html</literal>や<command>&bsol;H</command>コマンドと同じです。

      </para>
      </listitem>
    </varlistentry>

 
    <varlistentry>
      <term>-l, --list</term>
      <listitem>
      <para>
      <!--Lists all available databases, then exits. Other non-connection options
      are ignored. This is similar to the internal command <command>&bsol;list</command>.-->

      利用可能なすべてのデータベースを一覧表示します。その他の接続関連でないオプションは無視されます。これは<command>&bsol;list</command>内部コマンドと似ています。

      </para>
      </listitem>
    </varlistentry>


    <varlistentry>
      <term>-o <replaceable class="parameter">filename</replaceable></term>
      <term>--output <replaceable class="parameter">filename</replaceable></term>
      <listitem>
      <para>
      <!--Put all query output into file <replaceable class="parameter">filename</replaceable>.
      This is equivalent to the command <command>&bsol;o</command>.-->

      すべての問い合わせの出力を<replaceable class="parameter">filename</replaceable>ファイルに書き込みます。これは<command>&bsol;o</command>コマンドと同じです。

      </para>
      </listitem>
    </varlistentry>


    <varlistentry>
      <term>-p <replaceable class="parameter">port</replaceable></term>
      <term>--port <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 or, if not set, to the port
      specified at compile time, usually 5432.-->

      <application>postmaster</application>が接続監視を行っている、TCP/IPポート、もしくは、（ホスト名が）省略された場合は、ローカルなUnixドメインソケットファイルの拡張子を指定します。<envar>PGPORT</envar>環境変数の値、または、環境変数が設定されていなければ、コンパイル時に指定した値（通常は5,432）がデフォルト値となります。

      </para>
      </listitem>
    </varlistentry>


    <varlistentry>
      <term>-P <replaceable class="parameter">assignment</replaceable></term>
      <term>--pset <replaceable class="parameter">assignment</replaceable></term>
      <listitem>
      <para>
      <!--Allows you to specify printing options in the style of <command>&bsol;pset</command>
      on the command line. Note that here you have to separate name and value with
      an equal sign instead of a space. Thus to set the output format to LaTeX, you
      could write <literal>-P format=latex</literal>.-->

      <command>&bsol;pset</command>形式による表示オプションをコマンドラインから指定することができます。ここではスペースではなく等号を使って名前と値を区切っていることに注意してください。つまり、出力形式をLaTeXにする場合、<literal>-P format=latex</literal>と入力します。

      </para>
      </listitem>
    </varlistentry>


    <varlistentry>
      <term>-q</term>
      <listitem>
      <para>
      <!--Specifies that <application>psql</application> should do its work quietly.
      By default, it prints welcome messages and various informational output.
      If this option is used, none of this happens. This is useful with the
      <option>-c</option> option. Within <application>psql</application> you can
      also set the <envar>QUIET</envar> variable to achieve the same effect.-->

      <application>psql</application>がメッセージ出力を行わずに処理を行うように指示します。デフォルトでは、welcomeメッセージ、各種の出力情報を表示します。このオプションを使用した場合、このメッセージ表示がされません。<option>-c</option>オプションとの併用は有用です。<application>psql</application>内で、<envar>QUIET</envar>変数を設定しても同じことができます。

      </para>
      </listitem>
    </varlistentry>


    <varlistentry>
      <term>-R <replaceable class="parameter">separator</replaceable></term>
      <term>--record-separator <replaceable class="parameter">separator</replaceable></term>
      <listitem>
      <para>
      <!--Use <replaceable class="parameter">separator</replaceable> as the record separator.
      This is equivalent to the <command>&bsol;pset recordsep</command> command.-->

      <replaceable class="parameter">separator</replaceable>をレコード区切り文字として使用します。これは<command>&bsol;pset recordsep</command>コマンドと同じです。

      </para>
      </listitem>
    </varlistentry>

 
    <varlistentry>
      <term>-s</term>
      <term>--single-step</term>
      <listitem>
      <para>
      <!--Run in single-step mode. That means the user is prompted before each query
      is sent to the backend, with the option to cancel execution as well.
      Use this to debug scripts.-->

      シングルステップモードで実行します。これは各問い合わせがバックエンドに送信される前に、ユーザーに対して実行するかキャンセルするかについて確認を求めることを意味します。スクリプトのデバッグのためにこれを使用してください。

      </para>
      </listitem>
    </varlistentry>


    <varlistentry>
      <term>-S</term>
      <term>--single-line</term>
      <listitem>
      <para>
      <!--Runs in single-line mode where a newline terminates a query, as a semicolon does.-->

      セミコロンと同様に改行が問い合わせの終端となる、シングル行モードで実行します。

      </para>

      <note>
      <para>
      <!--This mode is provided for those who insist on it, but you are not necessarily
      encouraged to use it. In particular, if you mix <acronym>SQL</acronym> and
      meta-commands on a line the order of execution might not always be clear to
      the inexperienced user.-->

      このモードはこの使用方法に固執しているユーザー向けに用意されたものですので、無理して使用する必要はありません。特に、1行に<acronym>SQL</acronym>とメタコマンドを混在させる場合、経験の浅いユーザーにとってその実行順番は必ずしもわかりやすいものではありません。

      </para>
      </note>
      </listitem>
    </varlistentry>


    <varlistentry>
      <term>-t</term>
      <term>--tuples-only</term>
      <listitem>
      <para>
      <!--Turn off printing of column names and result row count footers, etc.
      It is completely equivalent to the <command>&bsol;t</command> meta-command.-->

      カラム名と結果の行数フッタなどの表示を無効にします。これは、<command>&bsol;t</command>メタコマンドとまったく同じです。

      </para>
      </listitem>
    </varlistentry>


    <varlistentry>
      <term>-T <replaceable class="parameter">table_options</replaceable></term>
      <term>--table-attr <replaceable class="parameter">table_options</replaceable></term>
      <listitem>
      <para>
      <!--Allows you to specify options to be placed within the <acronym>HTML</acronym>
      <sgmltag>table</sgmltag> tag. See <command>&bsol;pset</command> for details.-->

      <acronym>HTML</acronym>の<sgmltag>table</sgmltag>タグ内に記述されるオプションを指定できます。詳細については<command>&bsol;pset</command>を参照してください。

      </para>
      </listitem>
    </varlistentry>

 
    <varlistentry>
      <term>-u</term>
      <listitem>
      <para>
      <!--Makes <application>psql</application> prompt for the user name and password
      before connecting to the database.-->

      データベース接続の前に<application>psql</application>がユーザー名とパスワードを尋ねるプロンプトを表示させます。

      </para>

      <para>
      <!--This option is deprecated, as it is conceptually flawed. (Prompting for
      a non-default user name and prompting for a password because the
      backend requires it are really two different things.) You are encouraged
      to look at the <option>-U</option> and <option>-W</option> options instead.-->

      概念的な欠陥のため、このオプションは推奨されません（デフォルトではないユーザー名の入力とバックエンドからの要求によるパスワード入力とはまったく異なるものです）。代替である、<option>-U</option>と<option>-W</option>オプションを参照することを勧めます。

      </para>
      </listitem>
    </varlistentry>


    <varlistentry>
      <term>-U <replaceable class="parameter">username</replaceable></term>
      <term>--username <replaceable class="parameter">username</replaceable></term>
      <listitem>
      <para>
      <!--Connects to the database as the user <replaceable class="parameter">username</replaceable>
      instead of the default. (You must have permission to do so, of course.)-->

      デフォルトのユーザーではなく<replaceable class="parameter">username</replaceable>ユーザーとしてデータベースに接続します（当然ですが、このための権限を持っていなければいけません）。

      </para> 
      </listitem>
    </varlistentry>


    <varlistentry>
      <term>-v <replaceable class="parameter">assignment</replaceable></term>
      <term>--variable <replaceable class="parameter">assignment</replaceable></term>
      <term>--set <replaceable class="parameter">assignment</replaceable></term>
      <listitem>
      <para>
      <!--Performs a variable assignment, like the <command>&bsol;set</command>
      internal command.  Note that you must separate name and value,
      if any, by an equal sign on the command line. To unset a
      variable, leave off the equal sign.  To just set a variable
      without a value, use the equal sign but leave off the value.
      These assignments are done during a very early stage of
      start-up, so variables reserved for internal purposes might get
      overwritten later.-->

      <command>&bsol;set</command>内部コマンドのように、変数の代入を行います。値があれば、コマンドラインで名前と値を等号で区切る必要があることに注意してください。変数を未設定にするためには、等号を取ってください。これらの代入は起動時の非常に早い段階で行われます。そのため、後で内部目的用に予約された変数によって上書きされる可能性があります。

      </para>
      </listitem>
    </varlistentry>


    <varlistentry>
      <term>-V</term>
      <term>--version</term>
      <listitem>
      <para>
      <!--Shows the <application>psql</application> version.-->

      <application>psql</application>のバージョンを表示します。

      </para>
      </listitem>
    </varlistentry>


    <varlistentry>
      <term>-W</term>
      <term>--password</term>
      <listitem>
      <para>
      <!--Requests that <application>psql</application> should prompt for a password
      before connecting to a database. This will remain set for the entire
      session, even if you change the database connection with the meta-command
      <command>&bsol;connect</command>.-->

      データベース接続前にパスワード入力を促すように<application>psql</application>に対して要求します。<command>&bsol;connect</command>メタコマンドを使用して接続するデータベースを変更した場合であっても、セッション全体用の設定として保持します。

      </para>

      <para>
      <!--As of version 7.0, <application>psql</application> automatically issues a
      password prompt whenever the backend requests password authentication.
      Because this is currently based on a hack, the automatic
      recognition might mysteriously fail, hence this option to force a prompt.
      If no password prompt is issued and the backend requires password authentication
      the connection attempt will fail.-->

      バージョン7.0では、<application>psql</application>はバックエンドがパスワード認証を要求したときは常に自動的にパスワードプロンプトを表示します。現在これは<quote>ハック</quote>されたものに基づいていますので、自動認識が予想できない失敗をする可能性があります。そのため、このオプションを使って強制的にプロンプトを表示させます。バックエンドがパスワード認証を要求したときにパスワードプロンプトが表示されない場合、その接続の試行は失敗します。

      </para>
      </listitem>
    </varlistentry>


    <varlistentry>
      <term>-x</term>
      <term>--expanded</term>
      <listitem>
      <para>
      <!--Turns on extended row format mode. This is equivalent to the command
      <command>&bsol;x</command>.-->

      拡張行形式モードを有効にします。これは<command>&bsol;x</command>コマンドと同じです。

      </para>
      </listitem>
    </varlistentry>


    <varlistentry>
      <term>-X</term>
      <term>--no-psqlrc</term>
      <listitem>
      <para>
      <!--Do not read the start-up file <filename>~/.psqlrc</filename>.-->

      <filename>~/.psqlrc</filename>起動用ファイルを読み込みません。

      </para>
      </listitem>
    </varlistentry>


    <varlistentry>
      <term>-?</term>
      <term>--help</term>
      <listitem>
      <para>
      <!--Shows help about <application>psql</application> command line arguments.-->

      <application>psql</application>のコマンドライン引数に関するヘルプを表示します。

      </para>
      </listitem>
    </varlistentry>

  </variablelist>

</refsect1>


<refsect1 id="R1-APP-PSQL-4">
    <refsect1info>
      <date>1998-09-27</date>
    </refsect1info>

    <title><!--Advanced features-->高度な機能</title>
<indexterm><primary>psql</primary><secondary sortas="こうどなきのう">高度な機能</secondary></indexterm>
  <refsect2 id="APP-PSQL-variables">
    <title id="APP-PSQL-variables-title"><!--Variables-->変数</title>
<indexterm><primary>psql</primary><secondary sortas="へんすう">変数</secondary></indexterm>
    <para>
    <!--<application>psql</application> provides variable substitution features
    similar to common Unix command shells. This feature is new and not very
    sophisticated, yet, but there are plans to expand it in the future.
    Variables are simply name/value
    pairs, where the value can be any string of any length. To set variables,
    use the <application>psql</application> meta-command <command>&bsol;set</command>:-->

    <application>psql</application>は、一般的なUnixコマンドシェルに似た変数の
    置換機能を提供します。この機能は新しいためまだあまり洗練されていませんが、
    今後拡張していく予定です。変数は単なる名前と値の組み合わせです。値として任意の長さの任意の文字を使うことができます。変数の設定には<application>psql</application>の<command>&bsol;set</command>メタコマンドを以下のように使用します。
</para>

<programlisting>
testdb=> <userinput>&bsol;set foo bar</userinput>
</programlisting>

<para>
    <!--sets the variable <quote>foo</quote> to the value <quote>bar</quote>. To retrieve
    the content of the variable, precede the name with a colon and use it
    as the argument of any slash command:-->

    上記のコマンドは、<quote>foo</quote>変数を<quote>bar</quote>という値に設定します。変数の内容を取り出すには、以下のようにその名前の前にコロンを付けて、任意のスラッシュコマンドの引数として使用します。
</para>

<programlisting>
testdb=> <userinput>&bsol;echo :foo</userinput>
bar
</programlisting>

    <note>
    <para>
    <!--The arguments of <command>&bsol;set</command> are subject to the same substitution
    rules as with other commands. Thus you can construct interesting references
    such as <literal>&bsol;set :foo 'something'</literal> and get <quote>soft
    links</quote> or <quote>variable variables</quote> of <productname>Perl</productname>
    or <productname><acronym>PHP</acronym></productname> fame, respectively.
    Unfortunately (or fortunately?), there is no way to do anything useful
    with these constructs. On the
    other hand, <literal>&bsol;set bar :foo</literal> is a perfectly valid way to copy
    a variable.-->

    <command>&bsol;set</command>の引数は、他のコマンドと同じ置換ルールに従います。このため、<literal>&bsol;set :foo 'something'</literal>のような興味深い参照を作成して、<productname>Perl</productname>や<productname><acronym>PHP</acronym></productname>で、それぞれ<quote>ソフトリンク</quote>とか<quote>可変変数</quote>と呼ばれるものを取得することができます。残念ながら（好運にも?）、こういった構成をうまく使用する方法はありません。一方、<literal>&bsol;set bar :foo</literal>による変数のコピーは完全に有効な方法です。

    </para>
    </note>

    <para>
    <!--If you call <command>&bsol;set</command> without a second argument, the variable is simply
    set, but has no value. To unset (or delete) a variable, use the command
    <command>&bsol;unset</command>.-->

    2番目の引数を指定せずに<command>&bsol;set</command>を実行した場合、単に変数が値を持たずに設定されます。変数を未設定にする（削除する）には、<command>&bsol;unset</command>コマンドを使用します。

    </para>

    <para>
    <!--<application>psql</application>'s internal variable names can consist of
    letters, numbers, and underscores in any order and any number of them.
    A number of regular variables are treated specially by <application>psql</application>.
    They indicate certain option settings that can be changed at runtime
    by altering the value of the variable or represent some state of the application.
    Although you can use these
    variables for any other purpose, this is not recommended, as the
    program behavior might grow really strange really quickly.
    By convention, all specially treated variables consist of all upper-case letters
    (and possibly numbers and underscores). To ensure maximum compatibility in the
    future, avoid such variables. 
    A list of all specially treated variables follows.-->

    <application>psql</application>の内部変数名は、文字、数字、アンダースコアで構成され、順番や長さには制限がありません。多くの正規な変数は<application>psql</application>で特別に扱われます。これらは、実行時に変数の値を変更することで設定変更できる特定のオプションやアプリケーションのある状態表現を示します。これらの変数を別の目的のために使用することもできますが、プログラムの動作がとてもおかしくなったり、とても速くなったりする可能性がありますので、推奨されません。慣習に従って、特別にとり扱われる変数はすべて大文字（と数字とアンダースコア）で構成されています。将来の互換性が最も高くなるように、このような変数を使用しないでください。特別にとり扱われる変数の全一覧を以下に示します。
</para>

    <variablelist>
      <varlistentry>
        <term><envar>DBNAME<indexterm><primary>psql</primary><secondary sortas="へんすう">変数</secondary><tertiary>DBNAME</tertiary></indexterm></envar></term>
	<listitem>
	<para>
        <!--The name of the database you are currently connected to. This is set every time
        you connect to a database (including program start-up), but can be unset.-->

        現在接続しているデータベース名です。この変数はデータベースに接続するたびに設定されます（プログラム起動時も含む）。未設定とすることもできます。

	</para>
	</listitem>
      </varlistentry>

      <varlistentry>
        <term><envar>ECHO<indexterm><primary>psql</primary><secondary sortas="へんすう">変数</secondary><tertiary>ECHO</tertiary></indexterm></envar></term>
	<listitem>
	<para>
	<!--If set to <quote><literal>all</literal></quote>, all lines entered or from a script
        are written to the standard output before they
	are parsed or executed. To specify this on program start-up, use the switch
        <option>-a</option>. If set to <quote><literal>queries</literal></quote>,
        <application>psql</application> merely prints all queries as they are sent to the
        backend. The option for this is <option>-e</option>.-->

        <quote><literal>all</literal></quote>に設定した場合、入力された、もしくは、スクリプトからのすべての行は、解析と実行の前に標準出力に書き出されます。これをプログラム起動時に設定するには、<option>-a</option>スイッチを使用してください。<quote><literal>queries</literal></quote>に設定した場合、<application>psql</application>はすべてのバックエンドに送信された問い合わせのみを表示します。このためのオプションは<option>-e</option>です。

	</para>
	</listitem>
      </varlistentry>

      <varlistentry>
        <term><envar>ECHO_HIDDEN<indexterm><primary>psql</primary><secondary sortas="へんすう">変数</secondary><tertiary>ECHO_HIDDEN</tertiary></indexterm></envar></term>
	<listitem>
	<para>
	<!--When this variable is set and a backslash command queries the database, the query
	is first shown. This way you can study the <productname>Postgres</productname>
	internals and provide similar functionality in your own programs. If you set the
	variable to the value <quote>noexec</quote>, the queries are just shown but are
	not actually sent to the backend and executed.-->

        この変数が設定された場合、バックスラッシュコマンドがデータベースに問い合わせを行うときに、その問い合わせがまず表示されます。これにより、<productname>Postgres</productname>内部について学習することも、自作プログラム内で同様の関数機能を用意することができます。この変数を<quote>noexec</quote>という値に設定した場合、問い合わせは実際にバックエンドに送信、実行されずに、単に表示されるだけになります。

	</para>
	</listitem>
      </varlistentry>

      <varlistentry>
        <term><envar>ENCODING<indexterm><primary>psql</primary><secondary sortas="へんすう">変数</secondary><tertiary>ENCODING</tertiary></indexterm></envar></term>
	<listitem>
	<para>
        <!--The current client multibyte encoding. If you are not set up to use
        multibyte characters, this variable will always contain
        <quote>SQL_ASCII</quote>.-->

        現在のクライアント側のマルチバイトコーディング方式。マルチバイト文字を使用するように設定していなければ、この変数は常に<quote>SQL_ASCII</quote>です。

	</para>
	</listitem>
      </varlistentry>

      <varlistentry>
        <term><envar>HISTCONTROL<indexterm><primary>psql</primary><secondary sortas="へんすう">変数</secondary><tertiary>HISTCONTROL</tertiary></indexterm></envar></term>
	<listitem>
	<para>
         <!--If  this variable is set  to  <literal>ignorespace</literal>, lines which begin with a
         space are not entered into the history list. If set to a value of
         <literal>ignoredups</literal>, lines matching the previous history line are not
         entered. A value of <literal>ignoreboth</literal> combines the two
         options.  If unset, or if set to any other value than those above, all lines read
         in interactive mode are saved on the history list.-->

         この変数が<literal>ignorespace</literal>に設定した場合、スペースから始まる行は履歴リストには入りません。<literal>ignoredups</literal>に設定した場合、これまでの履歴にある行は履歴リストに入りません。<literal>ignoreboth</literal>という値はこの2つのオプションの組み合わせです。未設定、または、上記以外の値に設定されていた場合、対話的に入力されたすべての行は履歴リストに保存されます。

	</para>
        <note>
        <para>
        <!--This feature was shamelessly plagiarized from <application>bash</application>.-->

        この機能は<application>bash</application>の機能を、（恥知らずですが）真似たものです。

        </para>
        </note>
	</listitem>
      </varlistentry>

      <varlistentry>
        <term><envar>HISTSIZE<indexterm><primary>psql</primary><secondary sortas="へんすう">変数</secondary><tertiary>HISTSIZE</tertiary></indexterm></envar></term>
	<listitem>
	<para>
        <!--The number of commands to store in the command history.
        The default value is 500.-->

        コマンド履歴に保存するコマンド数。デフォルト値は500です。

	</para>
        <note>
        <para>
        <!--This feature was shamelessly plagiarized from <application>bash</application>.-->

        この機能は<application>bash</application>の機能を恥も外聞もなく真似たものです。

        </para>
        </note>
	</listitem>
      </varlistentry>

      <varlistentry>
        <term><envar>HOST<indexterm><primary>psql</primary><secondary sortas="へんすう">変数</secondary><tertiary>HOST</tertiary></indexterm></envar></term>
	<listitem>
	<para>
        <!--The database server host you are currently connected to. This is set every time
        you connect to a database (including program start-up), but can be unset.-->

        接続中のデータベースサーバーホストです。この変数は（プログラム起動時も含め、）データベースに接続するたびに設定され、未設定にすることもできます。

	</para>
	</listitem>
      </varlistentry>

      <varlistentry>
        <term><envar>IGNOREEOF<indexterm><primary>psql</primary><secondary sortas="へんすう">変数</secondary><tertiary>IGNOREEOF</tertiary></indexterm></envar></term>
	<listitem>
	<para>
         <!--If unset, sending an EOF character (usually Control-D) to an interactive session of
         <application>psql</application> will terminate the application.
         If set to a numeric value, that many EOF characters are ignored before the application
         terminates. If the variable is set but has no numeric value, the default is 10.-->

         未設定の場合、<application>psql</application>は、その対話式セッションへEOF文字（通常Control-D）が送信されると終了します。数値に設定した場合、アプリケーションの終了の前に、指定数だけ送信されたEOF文字を無視します。数値以外に設定した場合は、デフォルトの10になります。

	</para>
        <note>
        <para>
        <!--This feature was shamelessly plagiarized from <application>bash</application>.-->

        この機能は<application>bash</application>の機能を恥も外聞もなく真似たものです。

        </para>
        </note>
	</listitem>
      </varlistentry>

      <varlistentry>
        <term><envar>LASTOID<indexterm><primary>psql</primary><secondary sortas="へんすう">変数</secondary><tertiary>LASTOID</tertiary></indexterm></envar></term>
	<listitem>
	<para>
        <!--The value of the last affected oid, as returned from an <command>INSERT</command>
        or <command>lo_insert</command> command. This variable is only guaranteed to be
        valid until after the result of the next <acronym>SQL</acronym> command has been
        displayed.-->

        <command>INSERT</command>や<command>lo_insert</command>コマンドによって返された、直前に影響を受けたoidの値です。この変数は、次の<acronym>SQL</acronym>コマンドの結果が表示されるまでの間のみ保証されています。

	</para>
	</listitem>
      </varlistentry>

      <varlistentry>
        <term><envar>LO_TRANSACTION<indexterm><primary>psql</primary><secondary sortas="へんすう">変数</secondary><tertiary>LO_TRANSACTION</tertiary></indexterm></envar></term>
	<listitem>
	<para>
	<!--If you use the <productname>Postgres</productname> large object
        interface to specially store data that does not fit into one tuple,
        all the operations must be contained in a transaction block. (See the
        documentation of the large object interface for more information.) Since
        <application>psql</application> has no way to tell if you already
        have a transaction in progress when you call one of its internal
        commands (<command>&bsol;lo_export</command>, <command>&bsol;lo_import</command>,
        <command>&bsol;lo_unlink</command>) it must take some arbitrary action. This
        action could either be to roll back any transaction that might already
        be in progress, or to commit any such transaction, or to do nothing at
        all. In the last case you must provide your own
        <command>BEGIN TRANSACTION</command>/<command>COMMIT</command> block or
        the results will be unpredictable (usually resulting in the desired
        action's not being performed in any case).-->

        <productname>Postgres</productname>のラージオブジェクトインターフェイスを使って、1つのタプルに収まらないデータを特別に保存した場合、その操作全体は1つのトランザクションブロック内に含まれる必要があります（詳細についてはラージオブジェクトインターフェイスについての文書を参照してください）。<application>psql</application>には、その内部コマンド<command>&bsol;lo_export</command>、<command>&bsol;lo_import</command>、<command>&bsol;lo_unlink</command>のいずれかが呼び出されたときに、進行中のトランザクション内にすでに入っていることを通知する方法がありませんので、何らかの独断的な動作を取らなければなりません。この動作は、すでに入っている進行中のトランザクションをロールバックするか、または、そのトランザクションをコミットするか、まったく何もしないかのいずれかとなります。最後の動作を取る場合は、自分で<command>BEGIN TRANSACTION</command>/<command>COMMIT</command>ブロックを用意する必要があります。さもないと、その結果は予期できないものになります（たいていは、どのような場合でも思いどおりの動作が行われないという結果になります）。
	</para>

	<para>
	<!--To choose what you want to do you set this variable to one of
	<quote>rollback</quote>, <quote>commit</quote>, or <quote>nothing</quote>.
        The default is to roll back the transaction. If you just want to load one
        or a few objects this is fine. However, if you intend to transfer many
        large objects, it might be advisable to provide one explicit transaction
        block around all commands.-->

        希望する動作の選択は、この変数を<quote>rollback</quote>、<quote>commit</quote>、<quote>nothing</quote>のいずれかに設定することです。デフォルトはトランザクションをロールバックすることです。1つか数個のオブジェクトの読み込みの場合はこれで問題ありません。しかし、多くのラージオブジェクトの転送を行う場合、明示的にすべてのコマンドを入れる1つのトランザクションブロックを用意することを勧めます。

	</para>
	</listitem>
      </varlistentry>

      <varlistentry>
        <term><envar>ON_ERROR_STOP<indexterm><primary>psql</primary><secondary sortas="へんすう">変数</secondary><tertiary>ON_ERROR_STOP</tertiary></indexterm></envar></term>
	<listitem>
	<para>
	<!--By default, if non-interactive scripts encounter an error, such as a
	malformed <acronym>SQL</acronym> query or internal meta-command,
	processing continues. This has been the traditional behavior of
        <application>psql</application> but it is sometimes not desirable. If this variable
	is set, script processing will immediately terminate. If the script was
	called from another script it will terminate in the same fashion.
	If the outermost script was not called from an interactive <application>psql</application>
	session but rather using the <option>-f</option> option, <application>psql</application>
	will return error code 3, to distinguish this case from fatal
	error conditions (error code 1).-->

        デフォルトでは、非対話式なスクリプトで、おかしな<acronym>SQL</acronym>問い合わせや内部メタコマンドなどといったエラーが発生した場合、処理は続行します。これは<application>psql</application>の旧来からの動作ですが、好まれない場合もあります。この変数を設定した場合、処理中のスクリプトはエラーが発生すると即座に停止します。スクリプトが他のスクリプトから呼ばれていた場合は、呼出元のスクリプトも同様に停止します。最も外部のスクリプトが<application>psql</application>の対話式セッションからではなく、<option>-f</option>オプションを使って呼び出されていた場合、<application>psql</application>は致命的エラー条件（エラーコード1）と区別するためにエラーコード3を返します。

	</para>
	</listitem>
      </varlistentry>

      <varlistentry>
        <term><envar>PORT<indexterm><primary>psql</primary><secondary sortas="へんすう">変数</secondary><tertiary>PORT</tertiary></indexterm></envar></term>
	<listitem>
	<para>
        <!--The database server port to which you are currently connected. This is set every time
        you connect to a database (including program start-up), but can be unset.-->

        接続中のデータベースサーバーのポートです。この変数は、データベースに接続するたびに設定されます（プログラム起動時も含む）。未設定にすることもできます。

	</para>
	</listitem>
      </varlistentry>

      <varlistentry>
        <term><envar>PROMPT1</envar>、<envar>PROMPT2</envar>、<envar>PROMPT3</envar><indexterm><primary>psql</primary><secondary sortas="へんすう">変数</secondary><tertiary>PROMPT1</tertiary></indexterm><indexterm><primary>psql</primary><secondary sortas="へんすう">変数</secondary><tertiary>PROMPT2</tertiary></indexterm><indexterm><primary>psql</primary><secondary sortas="へんすう">変数</secondary><tertiary>PROMPT3</tertiary></indexterm></term>
	<listitem>
	<para>
	<!--These specify what the prompt <application>psql</application> issues is
	supposed to look like. See
	<quote><xref linkend="APP-PSQL-prompting" endterm="APP-PSQL-prompting-title"></quote>
	below.-->

        これらは<application>psql</application>が発行するプロンプトがどのように見えるかを指定します。後述の<xref linkend="APP-PSQL-prompting" endterm="APP-PSQL-prompting-title">を参照してください。

	</para>
	</listitem>
      </varlistentry>

      <varlistentry>
        <term><envar>QUIET<indexterm><primary>psql</primary><secondary sortas="へんすう">変数</secondary><tertiary>QUIET</tertiary></indexterm></envar></term>
	<listitem>
	<para>
	<!--This variable is equivalent to the command line option <option>-q</option>.
	It is probably not too useful in interactive mode.-->

        この変数は<option>-q</option>コマンドラインオプションと同じです。対話式モードでは、あまり便利ではありません。

	</para>
	</listitem>
      </varlistentry>

      <varlistentry>
        <term><envar>SINGLELINE<indexterm><primary>psql</primary><secondary sortas="へんすう">変数</secondary><tertiary>SINGLELINE</tertiary></indexterm></envar></term>
	<listitem>
	<para>
	<!--This variable is set by the command line option <option>-S</option>. You
	can unset or reset it at run time.-->

        この変数は<option>-S</option>コマンドラインオプションと同じです。実行時に未設定としたりリセットしたりできます。

	</para>
	</listitem>
      </varlistentry>

      <varlistentry>
        <term><envar>SINGLESTEP<indexterm><primary>psql</primary><secondary sortas="へんすう">変数</secondary><tertiary>SINGLESTEP</tertiary></indexterm></envar></term>
	<listitem>
	<para>
	<!--This variable is equivalent to the command line option <option>-s</option>.-->

        この変数は<option>-s</option>コマンドラインオプションと同じです。

	</para>
	</listitem>
      </varlistentry>

      <varlistentry>
        <term><envar>USER<indexterm><primary>psql</primary><secondary sortas="へんすう">変数</secondary><tertiary>USER</tertiary></indexterm></envar></term>
	<listitem>
	<para>
        <!--The database user you are currently connected as. This is set every time
        you connect to a database (including program start-up), but can be unset.-->

        接続中のデータベースユーザーです。この変数はデータベースに接続するたびに設定されます（プログラム起動時も含む）。未設定にすることもできます。

	</para>
	</listitem>
      </varlistentry>

    </variablelist>


  </refsect2>


  <refsect2 id="APP-PSQL-sql-interpol">
    <title id="APP-PSQL-sql-interpol-title"><acronym>SQL</acronym><!--Interpolation-->の差し込み</title>
<indexterm><primary>psql</primary><secondary sortas="SQLのさしこみ">の差し込み</secondary></indexterm>
    <para>
    <!--An additional useful feature of <application>psql</application> variables
    is that you can substitute (<quote>interpolate</quote>) them into
    regular <acronym>SQL</acronym> statements. The syntax for this is again to prepend
    the variable name with a colon (<literal>:</literal>).-->

    さらに<application>psql</application>の変数機能には、変数を正規の<acronym>SQL</acronym>文に代用（<quote>差し込み</quote>）できるという有用な機能があります。このための構文は、繰り返しになりますが、変数名の前にコロン（「<literal>:</literal>」）を付けることです。
</para>

<programlisting>
testdb=> <userinput>&bsol;set foo 'my_table'</userinput>
testdb=> <userinput>SELECT * FROM :foo;</userinput>
</programlisting>

<para>
    <!--would then query the table <literal>my_table</literal>. The value of the
    variable is copied literally, so it can even contain unbalanced quotes or
    backslash commands. You must make sure that it makes sense where you put it.
    Variable interpolation will not be performed into quoted <acronym>SQL</acronym>
    entities.-->

    上記の文は、<literal>my_table</literal>テーブルに問い合わせることになります。変数の値は文字としてコピーされますので、片方だけの引用符やバックスラッシュコマンドでさえも含めることができます。変数に代入したものが意味を持つことを確実にしなければなりません。変数の差し込みは引用符で囲まれた<acronym>SQL</acronym>の項目には行われません。

    </para>

    <para>
    <!--A popular application of this facility is to refer to the last inserted
    <acronym>OID</acronym> in subsequent statements to build a foreign key
    scenario.
    Another possible use of this mechanism is to copy the contents of a file
    into a field. First load the file into a variable and then proceed as above.-->

    この機能は、連続する文において、直前に挿入された<acronym>OID</acronym>を参照して、外部キーシナリオを構築することによく適用されます。ほかにも、ファイルの内容をフィールドにコピーする場合もこの機構を使用することができます。ファイルをまず変数に読み込み、上と同様に処理させます。
</para>

<programlisting>
testdb=> <userinput>&bsol;set content '&bsol;'' `cat my_file.txt` '&bsol;''</userinput>
testdb=> <userinput>INSERT INTO my_table VALUES (:content);</userinput>
</programlisting>

<para>
    <!--One possible problem with this approach is that <filename>my_file.txt</filename>
    might contain single quotes. These need to be escaped so that
    they don't cause a syntax error when the third line is processed. This
    could be done with the program <application>sed</application>:-->

    この方法において、<filename>my_file.txt</filename>に一重引用符が含まれるかもしれないという問題が起こり得ます。3行目を処理するときの構文エラーを防ぐためには、この文字はエスケープさせる必要があります。以下のように<application>sed</application>プログラムを使ってエスケープさせることができます。
</para>

<programlisting>
testdb=> <userinput>&bsol;set content '&bsol;'' `sed -e "s/'/&bsol;&bsol;&bsol;&bsol;&bsol;&bsol;'/g" < my_file.txt` '&bsol;''</userinput>
</programlisting>

<para>
    <!--Observe the correct number of backslashes (6)! You can resolve it this way: After
    <application>psql</application> has parsed this line, it passes
    <literal>sed -e "s/'/&bsol;&bsol;&bsol;'/g" < my_file.txt</literal> to the shell. The shell
    will do its own thing inside the double quotes and execute <filename>sed</filename>
    with the arguments <literal>-e</literal> and <literal>s/'/&bsol;&bsol;'/g</literal>.
    When <application>sed</application> parses this it will replace the two
    backslashes with a single one and then do the substitution. Perhaps at
    one point you thought it was great that all Unix commands use the same
    escape character. And this is ignoring the fact that you might have to
    escape all backslashes as well because <acronym>SQL</acronym> text constants
    are also subject to certain interpretations. In that case you might
    be better off preparing the file externally.-->

    バックスラッシュの数（6個）が正しいことを確認してください。この方法で解決できます。<application>psql</application>は、この行を解析した後で<literal>sed -e "s/'/&bsol;&bsol;&bsol;'/g" &lt; my_file.txt</literal>をシェルに渡します。二重引用符の内部に対してシェルがなすべきことを行い、<literal>-e</literal>と<literal>s/'/&bsol;&bsol;'/g</literal>を引数として<filename>sed</filename>を実行します。<filename>sed</filename>がこれを解析するときに、2つのバックスラッシュは1つのバックスラッシュに置き換えてから、正規表現によった置換を行います。多分、ある時点では、すべてのUnixコマンドが同一のエスケープ文字を使用することはすばらしいと考えたでしょう。しかし、この考えは<acronym>SQL</acronym>のテキスト定数もある解釈に従うため、同様にすべてのバックスラッシュをエスケープしなければならないということを無視しています。このような場合、ファイルの前処理を外部で行った方がよいでしょう。

    </para>

    <para>
    <!--Since colons may legally appear in queries, the following rule applies: If the variable
    is not set, the character sequence <quote>colon+name</quote> is not changed. In any
    case you can escape a colon with a backslash to protect it from interpretation.
    (The colon syntax for variables is standard <acronym>SQL</acronym> for embedded
    query languages, such as <application>ecpg</application>. The colon syntax for
    array slices and type casts are <productname>Postgres</productname> extensions,
    hence the conflict.)-->

    コロン（「:」）も問い合わせ自体に使用できますので、次のルールが適用されます。変数が未設定の場合、<quote>コロン＋name</quote>という文字の並びは変更されません。バックスラッシュでコロンをエスケープすることで、どのような場合でも解釈されないようにすることができます（変数用のコロン構文は<application>ecpg</application>のような組み込み問い合わせ言語用の<acronym>SQL</acronym>標準です。配列の部分と型キャスト用のコロン構文は<productname>Postgres</productname>の拡張であり、競合しています）。

    </para>

  </refsect2>


  <refsect2 id="APP-PSQL-prompting">
    <title id="APP-PSQL-prompting-title"><!--Prompting-->プロンプト</title>
<indexterm><primary>psql</primary><secondary sortas="ぷろんぷと">プロンプト</secondary></indexterm>
    <para>
    <!--The prompts <application>psql</application> issues can be customized to
    your preference. The three variables <envar>PROMPT1</envar>, <envar>PROMPT2</envar>,
    and <envar>PROMPT3</envar> contain strings and special escape sequences
    that describe the appearance of the prompt. Prompt 1 is the normal prompt
    that is issued when <application>psql</application> requests a new query.
    Prompt 2 is issued when more input is expected during query input because
    the query was not terminated with a semicolon or a quote was not closed.
    Prompt 3 is issued when you run an <acronym>SQL</acronym> <command>COPY</command>
    command and you are expected to type in the tuples on the terminal.-->

    <application>psql</application>のプロンプトは、好みに応じてカスタマイズできます。<envar>PROMPT1</envar>、<envar>PROMPT2</envar>、<envar>PROMPT3</envar>という3つの変数はプロンプトの表示内容を示す文字列や特別なエスケープシーケンスを持ちます。PROMPT1は<application>psql</application>が新しい問い合わせを受け付ける際に表示される通常のプロンプトです。PROMPT2は問い合わせがセミコロンで終わっていない、または、引用符が閉じていないために問い合わせの入力にさらなる行が要求されている際に表示されます。PROMPT3は<acronym>SQL</acronym>の<command>COPY</command>を実行している際、または、端末上でタプルの入力が要求されている際に発行されます。

    </para>

    <para>
    <!--The value of the respective prompt variable is printed literally, except where
    a percent sign (<quote>%</quote>) is encountered. Depending on the next
    character, certain other text is substituted instead. Defined substitutions are:-->

    対応するプロンプト変数の値が文字として表示されます。ただし、パーセント（<quote>%</quote>）がある場合は例外です。その次の文字に従って、特定の他のテキストに置き換えられます。以下の置換が定義されています。
</para>

    <variablelist>
      <varlistentry>
        <term><literal>%M</literal></term>
	<listitem>
         <para>
         <!--The full hostname (with domain name) of the database server (or
         <quote>localhost</quote> if hostname information is not available).-->

         データベースサーバーの（ドメイン名の付与された）完全なホスト名（ホスト名情報を取得できなかった場合は<quote>localhost</quote>）。

         </para>
        </listitem>
      </varlistentry>

      <varlistentry>
        <term><literal>%m</literal></term>
	<listitem>
         <para>
         <!--The hostname of the database server, truncated after the first dot.-->
         最初のドット以降を取り除いた、データベースサーバーのホスト名。
         </para>
        </listitem>
      </varlistentry>

      <varlistentry>
        <term><literal>%&gt;</literal></term>
	<listitem>
         <para>
          <!--The port number at which the database server is listening.-->
         データベースサーバーが監視するポート番号。
         </para>
        </listitem>
      </varlistentry>

      <varlistentry>
        <term><literal>%n</literal></term>
	<listitem>
         <para>
          <!--The username you are connected as (not your local system user name).-->
         接続中のユーザー名（システム上のローカルなユーザー名ではありません）。
         </para>
        </listitem>
      </varlistentry>

      <varlistentry>
        <term><literal>%/</literal></term>
	<listitem>
         <para>
          <!--The name of the current database.-->
          接続中のデータベース名。
         </para>
        </listitem>
      </varlistentry>

      <varlistentry>
        <term><literal>%~</literal></term>
	<listitem>
         <para>
           <!--Like <literal>%/</literal>, but the output is <quote>~</quote> 
           (tilde) if the database is your default database.-->
           デフォルトデータベースの場合に<quote>~</quote>（チルダ）が出力される点を除いて、<literal>%/</literal>と同じです。
         </para>
        </listitem>
      </varlistentry>

      <varlistentry>
        <term><literal>%#</literal></term>
	<listitem>
         <para>
          <!--If the current user is a database superuser, then a
          <quote>#</quote>, otherwise a <quote>&gt;</quote>.-->
          現在のユーザーがデータベースのスーパーユーザーである場合は<quote>#</quote>、さもなくば、<quote>&gt;</quote>。
         </para>
        </listitem>
      </varlistentry>

      <varlistentry>
        <term><literal>%R</literal></term>
	<listitem><para>
	<!--In prompt 1 normally <quote>=</quote>, but <quote>^</quote> if in single-line
        mode, and <quote>!</quote> if the session is disconnected from the database
        (which can happen if <command>&bsol;connect</command> fails). In prompt 2 the
        sequence is replaced by <quote>-</quote>, <quote>*</quote>, a single quote,
	or a double quote, depending on whether <application>psql</application>
        expects more input because the query wasn't terminated yet, because you are
        inside a <literal>/* ... */</literal> comment, or because you are inside
        a quote. In prompt 3 the sequence doesn't resolve to anything.</para>-->

         PROMPT1内の場合、通常は<quote>=</quote>、シングル行モードでは<quote>^</quote>、データベースとの接続が切れたセッション（<command>&bsol;connect</command>が失敗した場合に起こり得る）では<quote>!</quote>となります。PROMPT2内の場合、<application>psql</application>が問い合わせの入力が終わっていない、<literal>/* ... */</literal>というコメントの内側にある、引用符の内側にある、の内のどの理由でさらなる行の入力を要求しているかに依存した、<quote>-</quote>、<quote>*</quote>、一重引用符、二重引用符のいずれかにこの並びは置換されます。PROMPT3内の場合のこの並びは何も生成しません。</para>

	</listitem>
      </varlistentry>

      <varlistentry>
        <term><literal>%</literal><replaceable class="parameter">数字</replaceable></term>
	<listitem><para>
	<!--If <replaceable class="parameter">digits</replaceable> starts with
        <literal>0x</literal> the rest of the characters are interpreted as a
        hexadecimal digit and the character with the corresponding code is
        substituted. If the first digit is <literal>0</literal> the characters are
        interpreted as on octal number and the corresponding character is
        substituted. Otherwise a decimal number is assumed.</para>-->

         <replaceable class="parameter">数字</replaceable>が<literal>0x</literal>から始まる場合、残った文字は16進数として解釈され、コードに対応する文字に置換されます。<literal>0</literal>から始まる場合は、8進数として解釈され、対応する文字に置換されます。これら以外は10進数と仮定されます。</para>

	</listitem>
      </varlistentry>

      <varlistentry>
        <term><literal>%:</literal><replaceable class="parameter">name</replaceable><literal>:</literal></term>
	<listitem><para>
	<!--The value of the <application>psql</application>, variable <replaceable
        class="parameter">name</replaceable>. See the section
	<quote><xref linkend="APP-PSQL-variables" endterm="APP-PSQL-variables-title"></quote>
	for details.-->

         <application>psql</application>の<replaceable class="parameter">name</replaceable>変数の値です。詳細については<xref linkend="APP-PSQL-variables" endterm="APP-PSQL-variables-title">を参照してください。

        </para>
	</listitem>
      </varlistentry>

      <varlistentry>
        <term><literal>%`</literal><replaceable class="parameter">command</replaceable><literal>`</literal></term>
	<listitem><para>
	<!--The output of <replaceable class="parameter">command</replaceable>, similar to
	ordinary <quote>back-tick</quote> substitution.-->

         通常の<quote>バックティック</quote>による置き換えに似た、<replaceable class="parameter">command</replaceable>の出力です。
        </para>
	</listitem>
      </varlistentry>

    </variablelist>

<para>

    <!--To insert a percent sign into your prompt, write <literal>%%</literal>. The
    default prompts are equivalent to <literal>'%/%R%# '</literal> for prompts 1
    and 2, and <literal>'&gt;&gt; '</literal> for prompt 3.-->

    プロンプトにパーセント記号を入れる場合は、<literal>%%</literal>と書きます。デフォルトのプロンプトは、PROMPT1とPROMPT2に<literal>'%/%R%# '</literal>、PROMPT3に<literal>'&gt;&gt; '</literal>を設定した場合と同じです。

    </para>

    <note>
    <para>
    <!--This feature was shamelessly plagiarized from <application>tcsh</application>.-->
    この機能は<application>tcsh</application>の機能を遠慮なく真似たものです。
    </para>
    </note>

   </refsect2>

  <refsect2 id="APP-PSQL-MISC">
    <title id="APP-PSQL-MISC-title"><!--Miscellaneous-->その他</title>

    <para>
    <!--<application>psql</application> returns 0 to the shell if it finished normally,
    1 if a fatal error of its own (out of memory, file not found) occurs, 2 if the
    connection to the backend went bad and the session is not interactive, and 3 if
    an error occurred in a script and the variable <envar>ON_ERROR_STOP</envar> was
    set.-->

    <application>psql</application>は、正常に終了した場合には0を、自身に致命的なエラーが発生した場合（メモリ不足やファイルが見つからないなど）には1を、バックエンドとの接続が不完全になった場合やセッションが対話式でない場合に2を、<envar>ON_ERROR_STOP</envar>変数が設定されている状態でスクリプトでエラーが発生した場合に3を、シェルに返します。

    </para>

    <para>
    <!--Before starting up, <application>psql</application> attempts
    to read and execute commands from the file <filename>$HOME/.psqlrc</filename>. It
    could be used to set up the client or the server to taste (using the <command>&bsol;set
    </command> and <command>SET</command> commands).-->

    <application>psql</application>は処理を始める前に、<filename>$HOME/.psqlrc</filename>ファイル内のコマンドを読み込み、実行しようと試みます。このファイルで好みに応じたクライアントやサーバーの設定を行う（<command>&bsol;set</command>や<command>SET</command>コマンドを使用します）ことに使用されます。
    </para>

  </refsect2>

  <refsect2>
    <title><acronym>GNU</acronym> readline</title>
<indexterm><primary>psql</primary><secondary>GNU readline</secondary></indexterm>
    <para>
    <!--<application>psql</application> supports the readline and history libraries for
    convenient line editing and retrieval. The command history is stored in a file
    named <filename>.psql_history</filename> in your home directory and is reloaded when
    <application>psql</application> starts up.
    Tab-completion is also supported, although
    the completion logic makes no claim to be an <acronym>SQL</acronym> parser.
    When available, <application>psql</application> is automatically built to use these
    features. If for some reason you do not like the tab completion, you can turn if off
    by putting this in a file named <filename>.inputrc</filename> in your
    home directory:-->

    <application>psql</application>は、行内編集や繰り返し入力をしやすくするためにreadlineライブラリとhistoryライブラリをサポートします。コマンド履歴は、ホームディレクトリ以下に<filename>.psql_history</filename>というファイル名で保存され、<application>psql</application>起動時に再読み込みされます。タブによる補間もサポートされていますが、タブによる補間のロジックは<acronym>SQL</acronym>パーサーになるようにはなっていません。これらの機能は利用可能であれば、<application>psql</application>は自動的に使用するように構築されます。タブによる補間を何らかの事情により使用したくなければ、ホームディレクトリ以下の<filename>.inputrc</filename>というファイルに以下を書き込むことで無効にできます。
</para>

<programlisting>
$if psql
set disable-completion on
$endif
</programlisting>

<para>
    <!--(This is not a <application>psql</application> but a <application>readline</application>
    feature. Read its documentation for further details.)-->

    これは<application>psql</application>の機能ではなく、<application>readline</application>の機能です。より詳細については<application>readline</application>の文書を参照してください。

    </para>

    <para>
    <!--If you have the readline library installed but <application>psql</application>
    does not seem to use it, you must make sure that <productname>Postgres</productname>'s
    top-level <filename>configure</filename> script finds it. <filename>configure</filename>
    needs to find both the library <filename>libreadline.a</filename>
    (or a shared library equivalent)
    <emphasis>and</emphasis> the header files <filename>readline.h</filename> and
    <filename>history.h</filename> (or <filename>readline/readline.h</filename> and
    <filename>readline/history.h</filename>) in appropriate directories. If
    you have the library and header files installed in an obscure place you
    must tell <filename>configure</filename> about them, for example:-->

    readlineライブラリがインストールされているにもかかわらず、<application>psql</application>がそれを使用していないように見える場合は、<productname>Postgres</productname>の最上位の<filename>configure</filename>スクリプトによって、そのライブラリが確実に検出されるようにする必要があります。<filename>configure</filename>によって<filename>libreadline.a</filename>ライブラリ（もしくはその共有ライブラリ）<!--<emphasis>と</emphasis>-->と、ヘッダーファイル<filename>readline.h</filename>と<filename>history.h</filename>（もしくは<filename>readline/readline.h</filename>と<filename>readline/history.h</filename>）の両方が適切なディレクトリ内で検出されなければいけません。これらのライブラリとヘッダーファイルを検出されない所にインストールした場合は、<filename>configure</filename>にそれらの場所を通知する必要があります。たとえば、以下のようにします。
</para>

<programlisting>
$ ./configure --with-includes=/opt/gnu/include --with-libs=/opt/gnu/lib  ...
</programlisting>

<para>
    <!--Then you have to recompile <application>psql</application> (not necessarily
    the entire code tree).-->

    その後で<application>psql</application>を再コンパイルする必要があります
    （コードツリー全体を再コンパイルする必要はありません）。

    </para>

    <para>
    <!--The <acronym>GNU</acronym> readline library can be obtained from the <acronym>GNU</acronym>
    project's <acronym>FTP</acronym> server at <ulink URL="ftp://ftp.gnu.org">ftp://ftp.gnu.org</ulink>.-->

    <acronym>GNU</acronym> readlineライブラリは、<ulink URL="ftp://ftp.gnu.org">ftp://ftp.gnu.org/</ulink>にある<acronym>GNU</acronym>プロジェクトの<acronym>FTP</acronym>サーバーから入手することができます。

    </para>
  </refsect2>



</refsect1>


<refsect1 id="APP-PSQL-examples">
  <title id="APP-PSQL-examples-title"><!--Examples-->例</title>
<indexterm><primary>psql</primary><secondary sortas="れい">例</secondary></indexterm>
  <note>
  <para>
  <!--This section only shows a few examples specific to <application>psql</application>.
  If you want to learn <acronym>SQL</acronym> or get familiar with
  <productname>Postgres</productname>, you might wish to read the Tutorial that
  is included in the distribution.-->

  この節では、<application>psql</application>に特化した例のみを数点示します。<acronym>SQL</acronym>の学習や<productname>Postgres</productname>に関する知識を得ることを目的にするのならば、配布物に含まれるチュートリアルを読んだ方がよいでしょう。

  </para>
  </note>

  <para>
  <!--The first example shows how to spread a query over several lines of input.
  Notice the changing prompt:-->

  最初の例では、どのように複数行に渡る問い合わせを入力するのかを示します。プロンプトの変化に注意してください。
</para>

<programlisting>
testdb=> <userinput>CREATE TABLE my_table (</userinput>
testdb(> <userinput> first integer not null default 0,</userinput>
testdb(> <userinput> second text</userinput>
testdb-> <userinput>);</userinput>
CREATE
</programlisting>

<para>
  <!--Now look at the table definition again:-->
  さて、ここでテーブル定義を再度確認してみます。
</para>

<programlisting>
testdb=> <userinput>&bsol;d my_table</userinput>
             Table "my_table"
 Attribute |  Type   |      Modifier
-----------+---------+--------------------
 first     | integer | not null default 0
 second    | text    |

</programlisting>
  <!--At this point you decide to change the prompt to something more interesting:-->

<para>ここで、もっとおもしろいプロンプトに変更してみます。</para>

<programlisting>
testdb=> <userinput>&bsol;set PROMPT1 '%n@%m %~%R%# '</userinput>
peter@localhost testdb=>
</programlisting>
  <!--Let's assume you have filled the table with data and want to take a look at it:-->

<para>テーブルにデータを入力したものとして、そのデータを見てみます。</para>

<programlisting>
peter@localhost testdb=> SELECT * FROM my_table;
 first | second
-------+--------
     1 | one
     2 | two
     3 | three
     4 | four
(4 rows)

</programlisting>
  <!--You can make this table look differently by using the <command>&bsol;pset</command> command:-->

<para><command>&bsol;pset</command>コマンドを使ってこのテーブルを異なる表示に変更することができます。</para>

<programlisting>
peter@localhost testdb=> <userinput>&bsol;pset border 2</userinput>
Border style is 2.
peter@localhost testdb=> <userinput>SELECT * FROM my_table;</userinput>
+-------+--------+
| first | second |
+-------+--------+
|     1 | one    |
|     2 | two    |
|     3 | three  |
|     4 | four   |
+-------+--------+
(4 rows)

peter@localhost testdb=> <userinput>&bsol;pset border 0</userinput>
Border style is 0.
peter@localhost testdb=> <userinput>SELECT * FROM my_table;</userinput>
first second
----- ------
    1 one
    2 two
    3 three
    4 four
(4 rows)

peter@localhost testdb=> <userinput>&bsol;pset border 1</userinput>
Border style is 1.
peter@localhost testdb=> <userinput>&bsol;pset format unaligned</userinput>
Output format is unaligned.
peter@localhost testdb=> <userinput>&bsol;pset fieldsep ","</userinput>
Field separator is ",".
peter@localhost testdb=> <userinput>&bsol;pset tuples_only</userinput>
Showing only tuples.
peter@localhost testdb=> <userinput>SELECT second, first FROM my_table;</userinput>
one,1
two,2
three,3
four,4
</programlisting>
  <!--Alternatively, use the short commands:-->

<para>別の方法として、短縮されたコマンドを使用してみます。</para>

<programlisting>
peter@localhost testdb=> <userinput>&bsol;a &bsol;t &bsol;x</userinput>
Output format is aligned.
Tuples only is off.
Expanded display is on.
peter@localhost testdb=> <userinput>SELECT * FROM my_table;</userinput>
-[ RECORD 1 ]-
first  | 1
second | one
-[ RECORD 2 ]-
first  | 2
second | two
-[ RECORD 3 ]-
first  | 3
second | three
-[ RECORD 4 ]-
first  | 4
second | four
</programlisting>

</refsect1>


<refsect1>
  <refsect1info>
    <date>1999-10-27</date>
  </refsect1info>

  <title><!--Appendix-->付録</title>

  <refsect2>
    <title><!--Bugs and Issues-->バグと問題点</title>
<indexterm><primary>psql</primary><secondary sortas="ばぐ">バグ</secondary></indexterm>
    <itemizedlist>
      <listitem>
      <para>
      <!--In some earlier life <application>psql</application> allowed the first
      argument to start directly after the (single-letter) command. For
      compatibility this is still supported to some extent but I am not
      going to explain the details here as this use is discouraged. But
      if you get strange messages, keep this in mind. For example-->

      少し前までの<application>psql</application>では、（1文字）コマンドの直後に最初の引数を書くことができました。この機能はまだ、互換性のために少し拡張された形でサポートされていますが、この使用方法は好ましくありません。そのため、ここでは詳しく説明するつもりはありません。おかしなメッセージが表示されたとしても、このことを覚えておいてください。たとえば以下のようなものは、おそらく想定したものではありません。
</para>

<programlisting>
testdb=> <userinput>&bsol;foo</userinput>
Field separator is "oo",
</programlisting>

      <!--which is perhaps not what one would expect.-->

      </listitem>

      <listitem>
      <para>
      <!--<application>psql</application> only works smoothly with servers of the
      same version. That does not mean other combinations will fail outright,
      but subtle and not-so-subtle problems might come up.-->

      <application>psql</application>は同一バージョンのサーバーとのみうまく動作します。これは、他の組み合わせがまったく動かないという意味ではではありませんが、多少の、または、多少とはいえないような問題が起こることがあります。

      </para>
      </listitem>

      <listitem>
      <para>
      <!--Pressing Control-C during a <quote>copy in</quote> (data sent to the
      server) doesn't show the most ideal of behaviors. If you get a message
      such as <quote>PQexec: you gotta get out of a COPY state yourself</quote>,
      simply reset the connection by entering <literal>&bsol;c - -</literal>.-->

      <quote>copy in</quote>の実行中（サーバーにデータが送信されている間）にControl-Cを入力すると、その動作に合ったメッセージが表示されません。<quote>PQexec: you gotta get out of a COPY state yourself</quote>といったメッセージが表示されたとしても、<literal>&bsol;c - -</literal>を入力して接続をリセットしてください。

      </para>
      </listitem>

    </itemizedlist>

  </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:
-->
