<!--
$Header: /usr/prj/pg/cvsroot/doc/doc/src/sgml/ref/load.sgml,v 1.6 2001/09/13 04:22:03 k-kondo Exp $
Postgres documentation
-->

<refentry id="SQL-LOAD">
 <refmeta>
  <refentrytitle id="SQL-LOAD-TITLE">
   LOAD
  </refentrytitle>
  <refmiscinfo>SQL<!-- - Language Statements-->言語</refmiscinfo>
 </refmeta>
 <refnamediv>
  <refname>
   LOAD
  </refname>
  <refpurpose>
   <!--Dynamically loads an object file-->
   動的なオブジェクトファイルを読み込みます。<indexterm><primary>LOAD</primary></indexterm><indexterm><primary>SQL</primary><secondary>LOAD</secondary></indexterm><indexterm><primary sortas="おぶじぇくとふぁいるのよみこみ">オブジェクトファイルのよみこみ</primary></indexterm>
  </refpurpose>
 </refnamediv>
 <refsynopsisdiv>
  <refsynopsisdivinfo>
   <date>1999-07-20</date>
  </refsynopsisdivinfo>
<synopsis>
LOAD '<replaceable class="PARAMETER">filename</replaceable>'
</synopsis>

  <refsect2 id="R2-SQL-LOAD-1">
   <refsect2info>
    <date>1998-09-01</date>
   </refsect2info>
   <title>
    <!--Inputs-->入力
   </title>
    <variablelist>
     <varlistentry>
      <term><replaceable class="PARAMETER">filename</replaceable></term>
      <listitem>
       <para>
	<!--Object file for dynamic loading.-->
        動的に読み込むオブジェクトファイルです。
       </para>
      </listitem>
     </varlistentry>
    </variablelist>
  </refsect2>

  <refsect2 id="R2-SQL-LOAD-2">
   <refsect2info>
    <date>1998-09-24</date>
   </refsect2info>
   <title>
    <!--Outputs-->出力
   </title>

    <variablelist>
     <varlistentry>
      <term><computeroutput>
LOAD
       </computeroutput></term>
      <listitem>
       <para>
	<!--Message returned on successful completion.-->
        正常終了した場合に返されるメッセージです。
       </para>
      </listitem>
     </varlistentry>
     <varlistentry>
      <term><computeroutput>
ERROR:  LOAD: could not open file '<replaceable class="PARAMETER">filename</replaceable>'
       </computeroutput></term>
      <listitem>
       <para>
	<!--Message returned if the specified file is not found. The file must be visible
	<emphasis>to the <productname>Postgres</productname> backend</emphasis>,
	with the appropriate full path name specified, to avoid this message.-->

        指定したファイルが存在しなかった場合に返されるメッセージです。このメッセージを出さないようにするためには、指定するファイルを適切なフルパスで記述し、<emphasis><productname>Postgres</productname>バックエンドから</emphasis>参照できるようにします。
       </para>
      </listitem>
     </varlistentry>
    </variablelist>
  </refsect2>
 </refsynopsisdiv>

 <refsect1 id="R1-SQL-LOAD-1">
  <refsect1info>
   <date>1998-09-24</date>
  </refsect1info>
  <title>
   <!--Description-->説明
  </title>

  <para>
   <!--Loads an object (or ".o") file into the 
   <productname>Postgres</productname> backend address space.  Once a
   file is loaded, all functions in that file can be accessed.  This
   function is used in support of user-defined types and functions.-->

   オブジェクト（または「.o」）ファイルを<productname>Postgres</productname>バックエンドのアドレス空間に読み込みます。ファイルが読み込まれた後は、そのファイルの中にあるすべての関数にアクセスできます。この機能はユーザー定義の型と関数のサポートに使用されます。
  </para>

  <para>
   <!--If a file is not loaded using
   <command>LOAD</command>, 
   the file will be loaded automatically the first time the
   function is called by <productname>Postgres</productname>.
   <command>LOAD</command>
   can also be used to reload an object file if it has been edited and
   recompiled.  Only objects created from C language files are supported
   at this time.-->

   ファイルが<command>LOAD</command>を使って読み込まれていない場合、その関数が最初に呼び出された時点で、<productname>Postgres</productname>によって自動的にファイルが読み込まれます。<command>LOAD</command>コマンドは、オブジェクトファイルが編集/再コンパイルされ、再読み込みする場合にも使用します。現時点ではC言語で作成されたオブジェクトファイルのみがサポートされています。

  </para>

  <refsect2 id="R2-SQL-LOAD-3">
   <refsect2info>
    <date>1998-09-24</date>
   </refsect2info>
   <title>
    <!--Notes-->注釈
   </title>

   <para>
    <!--Functions in loaded object files should not call functions in other
    object files loaded through the <command>LOAD</command>
    command. For example, all functions in file <literal>A</literal> should
    call each other, functions in the standard or math libraries, or in
    Postgres itself.  They should not call functions defined in a different
    loaded file <literal>B</literal>.
    This is because if <literal>B</literal> is reloaded, the Postgres loader is
    not able to relocate the calls from the functions in
    <literal>A</literal> into the new address space of <literal>B</literal>.
    If <literal>B</literal> is not reloaded, however, there will
    not be a problem.-->

    読み込まれたオブジェクトファイル内の関数は、<command>LOAD</command>コマンドを使って読み込まれた他のオブジェクトファイル中の関数を呼び出してはいけません。たとえば、ファイル<literal>A</literal>中のすべての関数は、ファイル<literal>A</literal>内の関数、標準または数学ライブラリにある関数、もしくは、Postgres内にある関数を呼び出さなければなりません。別の読み込まれたファイル<literal>B</literal>内で定義された関数を呼び出してはいけません。これは、<literal>B</literal>が再読み込みされた場合、Postgresのローダーが<literal>A</literal>内の関数からの呼び出しを<literal>B</literal>の新しいアドレス空間に再度合わせることができないためです。しかし、<literal>B</literal>が再読み込みされなければ、問題にはなりません。

   </para>
   <para>
    <!--Object files must be compiled to contain position independent code.
    For example, 
    on DECstations you must use
    <application>/bin/cc</application>
    with the <literal>-G 0</literal> option when compiling object files to be
    loaded.-->

    オブジェクトファイルは、位置に依存しないコードを持つようにコンパイルする必要があります。たとえばDECstationsの場合、読み込み用のオブジェクトファイルをコンパイルする場合には<application>/bin/cc</application>に<literal>-G 0</literal>オプションを付けて実行しなければいけません。

   </para>
   <para>
    <!--Note that if you are porting <productname>Postgres</productname>
    to a new platform, <command>LOAD</command>
    will have to work in order to support ADTs.-->

    <productname>Postgres</productname>を新しいプラットホームに移植する場合、<command>LOAD</command>がADTをサポートするようにしなければいけません。

   </para>
  </refsect2>
 </refsect1>

 <refsect1 id="R1-SQL-LOAD-2">
  <title>
   <!--Usage-->使用方法
  </title>
  <para>
   <!--Load the file <filename>/usr/postgres/demo/circle.o</filename>:-->

   以下のコマンドは<filename>/usr/postgres/demo/circle.o</filename>ファイルを読み込みます。
</para>

<programlisting>
LOAD '/usr/postgres/demo/circle.o'
</programlisting>
 </refsect1>

 <refsect1 id="R1-SQL-LOAD-3">
  <title>
   <!--Compatibility-->互換性
  </title>

  <refsect2 id="R2-SQL-LOAD-4">
   <refsect2info>
    <date>1998-09-24</date>
   </refsect2info>
   <title>
    SQL92
   </title>
   <para>
    <!--There is no <command>LOAD</command> in <acronym>SQL92</acronym>.-->
    <acronym>SQL92</acronym>には<command>LOAD</command>はありません。
   </para>
  </refsect2>
 </refsect1>
</refentry>

<!-- Keep this comment at the end of the file
Local variables:
mode: sgml
sgml-omittag:nil
sgml-shorttag:t
sgml-minimize-attributes:nil
sgml-always-quote-attributes:t
sgml-indent-step:1
sgml-indent-data:t
sgml-parent-document:nil
sgml-default-dtd-file:"../reference.ced"
sgml-exposed-tags:nil
sgml-local-catalogs:"/usr/lib/sgml/catalog"
sgml-local-ecat-files:nil
End:
-->
