★PostgreSQLカンファレンス2021 11月12日開催/チケット販売中★
他のバージョンの文書 13 | 12 | 11 | 10 | 9.6 | 9.5 | 9.4 | 9.3 | 9.2 | 9.1 | 9.0 | 8.4 | 8.3 | 8.2 | 8.1 | 8.0 | 7.4 | 7.3 | 7.2

F.1. adminpack

adminpackは、pgAdminやその他の管理・運用ツールがサーバログファイルの遠隔管理を行うなどの、追加的な機能を提供できるようにするための数多くのサポート関数を提供します。 デフォルトでは、この関数の使用はすべてスーパーユーザに限定されていますが、GRANTコマンドを使用して他のユーザーに許可されている場合があります。

表 F.1に示す関数はサーバをホスティングしているマシン上のファイルに対して書き込みアクセスを提供します。 (表 9.95の関数も参照してください。そちらは読み取り専用アクセスを提供します。) ユーザがスーパーユーザか、関数に応じたpg_read_server_files、またはpg_write_server_filesロールのいずれかのロールを与えられていない限り、データベースクラスタディレクトリ内のファイルにのみアクセス可能です。 ただし、相対パスと絶対パスのどちらも利用できます。

表F.1 adminpack関数

関数

説明

pg_catalog.pg_file_write ( filename text, data text, append boolean ) → bigint

テキストファイルに書き込む、または追記する

pg_catalog.pg_file_sync ( filename text ) → void

ファイルまたはディレクトリをディスクにフラッシュする

pg_catalog.pg_file_rename ( oldname text, newname text [, archivename text ] ) → boolean

ファイル名を変更する

pg_catalog.pg_file_unlink ( filename text ) → boolean

ファイルを削除する

pg_catalog.pg_logdir_ls () → setof record

log_directoryディレクトリ内のログファイルの一覧を表示する


pg_file_writeは指定されたdatafilenameで指定されたファイルに書き込みます appendが偽であれば、ファイルは既に存在していてはいけません。 appendが真であれば、ファイルが既に存在していても構いません。その場合、追記されます。 書き込んだバイト数を返します。

pg_file_syncfilenameで指定されたファイルまたはディレクトリをfsyncします。 (例えば、指定されたファイルが存在しないなど)失敗するとエラーを発生します。 data_sync_retryはこの関数には影響しませんので、データベースファイルのフラッシュの失敗であってもPANICレベルのエラーは起こらないことに注意してください。

pg_file_renameはファイルの名前を変更します。 archivenameが省略されたり、NULLである場合は、単純にoldnamenewname(既に存在していてはいけません)に変更します。 archivenameが指定されていれば、まずnewnamearchivename(既に存在していてはいけません)に変更し、それからoldnamenewnameに変更します。 第2段階の名前の変更が失敗した場合には、エラーを報告する前にarchivenamenewnameに戻そうとします。 成功した場合には真を、元のファイルが存在しなかったり、書き込みできなかった場合には偽を返します。その他の場合にはエラーを発生します。

pg_file_unlinkは指定されたファイルを削除します。 成功した場合には真を、指定されたファイルが存在しなかったり、unlink()の呼出しが失敗した場合には偽を返します。その他の場合にはエラーを発生します。

pg_logdir_lslog_directoryディレクトリ内にあるログファイルすべての開始時のタイムスタンプとパス名を返します。 この関数を使うには、log_filenameパラメータはデフォルト設定(postgresql-%Y-%m-%d_%H%M%S.log)でなければなりません。