adminpack
は、pgAdminやその他の管理・運用ツールがサーバログファイルの遠隔管理を行うなどの、追加的な機能を提供できるようにするための数多くのサポート関数を提供します。
この関数の使用はすべてスーパーユーザに限定されています。
表F.1「adminpack
関数」に示す関数はサーバをホスティングしているマシン上のファイルに対して書き込みアクセスを提供します。
(表9.86「汎用ファイルアクセス関数」の関数も参照してください。そちらは読み取り専用アクセスを提供します。)
データベースクラスタディレクトリ内のファイルにのみアクセス可能ですが、相対パスと絶対パスのどちらも利用できます。
表F.1 adminpack
関数
名前 | 戻り値の型 | 説明 |
---|---|---|
pg_catalog.pg_file_write(filename text, data text, append boolean) | bigint | テキストファイルに書き込む、または追記する |
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
は指定されたdata
をfilename
で指定されたファイルに書き込みます
append
が偽であれば、ファイルは既に存在していてはいけません。
append
が真であれば、ファイルが既に存在していても構いません。その場合、追記されます。
書き込んだバイト数を返します。
pg_file_rename
はファイルの名前を変更します。
archivename
が省略されたり、NULLである場合は、単純にoldname
をnewname
(既に存在していてはいけません)に変更します。
archivename
が指定されていれば、まずnewname
をarchivename
(既に存在していてはいけません)に変更し、それからoldname
をnewname
に変更します。
第2段階の名前の変更が失敗した場合には、エラーを報告する前にarchivename
をnewname
に戻そうとします。
成功した場合には真を、元のファイルが存在しなかったり、書き込みできなかった場合には偽を返します。その他の場合にはエラーを発生します。
pg_file_unlink
は指定されたファイルを削除します。
成功した場合には真を、指定されたファイルが存在しなかったり、unlink()
の呼出しが失敗した場合には偽を返します。その他の場合にはエラーを発生します。
pg_logdir_ls
はlog_directoryディレクトリ内にあるログファイルすべての開始時のタイムスタンプとパス名を返します。
この関数を使うには、log_filenameパラメータはデフォルト設定(postgresql-%Y-%m-%d_%H%M%S.log
)でなければなりません。
表F.2「廃止予定のadminpack
関数」に示す関数は廃止予定であり、新しいアプリケーションでは使うべきではありません。代わりに表9.77「サーバシグナル送信関数」や表9.86「汎用ファイルアクセス関数」に示す関数を使ってください。
この関数はpgAdminの古いバージョンとの互換性のためだけにadminpack
で提供されています。
表F.2 廃止予定のadminpack
関数
名前 | 戻り値の型 | 説明 |
---|---|---|
pg_catalog.pg_file_read(filename text, offset bigint, nbytes bigint) | text | pg_read_file() の別名
|
pg_catalog.pg_file_length(filename text) | bigint | pg_stat_file() が返すsize 列と同じ
|
pg_catalog.pg_logfile_rotate() | integer | pg_rotate_logfile() の別名。booleanではなく、integerで0または1を返すことに注意
|