無料スクリプト配布のPHP.TO   PHPの実用的なtips PHPマニュアル MySQLマニュアル Apacheマニュアル PostgreSQLマニュアル マニュアル検索    

47.66. pg_settings

pg_settings ビューはサーバの実行時パラメータへのアクセスを提供します。 基本的に SHOW SET コマンドの代わりとなるインタフェースです。 同時に最大・最小値などのように SHOW コマンドでは直接入手できないそれぞれのパラメータのいくつかの実状にアクセスする機能を提供します。

表 47-67. pg_settings の列

名前 説明
name text 実行時設定パラメータ名
setting text パラメータの現在値
unit text 暗黙的なパラメータの単位
category text パラメータの論理グループ
short_desc text パラメータの簡潔な説明
extra_desc text 追加で、より詳細なパラメータについての説明
context text パラメータ値を設定するために必要な文脈(後述)
vartype text パラメータの型( bool enum integer real もしくは string
source text 現在のパラメータ値のソース
min_val text 容認されている最小のパラメータ値(数値でない場合はNULL)
max_val text 容認されている最大のパラメータ値(数値でない場合はNULL)
enumvals text[] 許可された列挙パラメータの値(列挙型ではない場合はNULL)
boot_val text パラメータが設定されていなかったとした場合に仮定されるサーバ起動時のパラメータ値
reset_val text 現状のセッションにおいて RESET によって戻されるパラメータの値
sourcefile text 現状の値が設定されている設定ファイル(設定ファイル以外のソースから設定された値の場合とスーパーユーザ以外から検査された時はNULLとなります)。 設定ファイル内で include 指示子を使用する時に役に立ちます。
sourceline integer 現状の値が設定されている設定ファイル内の行番号(設定ファイル以外のソースから設定された値の場合とスーパーユーザ以外から検査された時はNULLとなります。)

context が取り得る値は複数あります。 この設定の変更の困難さを軽くするために、以下に示します。

internal

これらの設定は直接変更できません。 これらは内部で決定された値を反映するものです。 一部は異なる設定オプションでサーバを細構築する、または、 initdb に与えるオプションを変更することで調整することができます。

postmaster

これらの設定はサーバ起動時にのみ適用することができます。 このため何かを変更するためにはサーバを再起動しなければなりません。 これらの設定用の値は通常 postgresql.conf ファイル内に格納されている、あるいは、サーバを起動する際のコマンドラインから渡されます。 当然ながら、より低い種類の context を持つ設定もサーバ起動時に設定することができます。

sighup

これらの設定は、サーバを再起動することなく postgresql.conf 内を変更することで行うことができます。 postgresql.conf を再度読み込み、変更を適用させるためには、postmasterに SIGHUP シグナルを送信してください。 すべての子プロセスが新しい値を選択するように、postmasterは同時に子プロセスに SIGHUP シグナルを転送します。

backend

これらの設定は、サーバを再起動することなく postgresql.conf 内を変更することで行うことができます。 また、接続要求パケットの中で特定のセッション向けに設定することもできます(例えば libpq PGOPTIONS 環境変数)。 しかし、これらの設定はセッションが開始してから、そのセッションの中で変更することはできません。 postgresql.conf 内でそれらを変更した場合は、 postgresql.conf を再度読み込ませるために、postmasterに SIGHUP シグナルを送信してください。 新しい値はその後で始まったセッションにのみ影響を与えます。

superuser

これらの設定は postgresql.conf 、または、セッションの中で SET コマンドを使用することで設定することができます。 しかし SET 経由で変更できるのはスーパーユーザのみです。 postgresql.conf 内の変更は、セッション独自の値が SET で設定されていない場合にのみ、既存のセッションに影響を与えます。

user

これらの設定は postgresql.conf 、または、セッションの中で SET コマンドを使用することで設定することができます。 任意のユーザが自身のセッション独自の値を変更することが許されています。 postgresql.conf 内の変更は、セッション独自の値が SET で設定されていない場合にのみ、既存のセッションに影響を与えます。

これらのパラメータを変更する各種方法に関する情報については 項18.1 を参照してください。

pg_settings ビューには挿入も削除もできませんが、更新することは可能です。 pg_settings 行に適用される UPDATE は名前付きのパラメータに対して SET コマンドを実行することと同値です。 変更は現在のセッションで使用されている値にのみ有効です。 もしも後に中止されるトランザクション内で UPDATE が発行されると、トランザクションがロールバックされた時点で UPDATE コマンドは効力を失います。 排他制御中のトランザクションがひとたびコミットされると、その効果は他の UPDATE もしくは SET コマンドで上書きされない限りセッションの完了まで保たれます。


powered by SEO.CUG.NET