LOAD

Name

LOAD  --  動的にオブジェクトファイルの読み込み

Synopsis

LOAD 'filename'
  

入力

filename

動的に読み込むオブジェクトファイルです。

出力

LOAD

正常終了した時に返されるメッセージです。

ERROR: LOAD: could not open file 'filename'

指定したファイルが存在しなかった時に返されるメッセージです。 このメッセージを防ぐためには、指定するファイルを適切なフルパスで 記述し、Postgresバック エンドから検索可能である必要があります。

説明

オブジェクト(または、".o")ファイルをPostgres バックエンドのアドレス空間に読み込みます。ファイルが一旦読み込まれると、 そのファイルの中にある全ての関数にアクセスできます。この機能は ユーザ定義の型/関数のサポートに使用されます。

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

注釈

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

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

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

使用方法

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

LOAD '/usr/postgres/demo/circle.o'
   

互換性

SQL92

SQL92にはLOADはありません。