search_path
(string)この変数は、オブジェクト(テーブル、データ型、関数など)がスキーマ部を含まない単純な名前で参照されている場合に、スキーマを検索する順番を指定します。 異なるスキーマに同じ名前のオブジェクトがある場合、検索パスで最初に見つかったものが使用されます。検索パス内のどのスキーマにも存在しないオブジェクトを参照するには、修飾名(ドット付き)でそのオブジェクトが含まれるスキーマを指定する必要があります。
search_path
の値は、スキーマの名前をカンマで区切った一覧でなければなりません。一覧内の項目の1つが特別な値である$userの場合、SESSION_USER
と同じ名前を持つスキーマがあれば、そのスキーマが置換されます(このような名前空間がない場合は$userは無視されます)。
システムカタログのスキーマであるpg_catalogは、パスでの指定の有無にかかわらず、常に検索されます。 パスで指定されている場合は、指定された順序で検索されます。 pg_catalogがパスに含まれていない場合、パスに含まれる項目を検索する前に検索が行われます。
同様に、現在のセッションの一時テーブルスキーマpg_temp_nnnも、存在すれば常に検索されます。 これはpg_tempという別名を使用してパスに明示的に列挙させることができます。 パスに列挙されていない場合、最初に(pg_catalogよりも前に)検索されます。 しかし、一時スキーマはリレーション(テーブル、ビュー、シーケンスなど)とデータ型名に対してのみ検索されます。 関数や演算子名に対してはまったく検索されません。
対象となる特定のスキーマを指定せずにオブジェクトが作成された場合、それらのオブジェクトは検索パスで最初に指定されているスキーマに配置されます。 検索パスが空の場合、エラーが報告されます。
このパラメータのデフォルト値は'$user, public'です(publicという名前のスキーマが存在しない場合、2 つ目の部分は無視されます)。 これにより、データベースの共有(どのユーザも非公開のスキーマを持たず、全員がpublicを共有)、ユーザごとの非公開のスキーマ、およびこれらの組み合わせがサポートされます。 デフォルトの検索パスの設定を全体的またはユーザごとに変更することで、その他の効果を得ることもできます。
current_schemas()
SQL関数によって、検索パスの現在の有効な値を調べることができます。
これは、search_path
の値を調べるのとは異なります。
current_schemas()
は、search_path
に現れる要求がどのように解決されたかを表すからです。
スキーマ操作に付いてより多くの情報は、項5.7を参照してください。
default_tablespace
(string)この変数は、CREATEコマンドで明示的にテーブル空間を指定していない場合にオブジェクトの作成先となるデフォルトのテーブル空間を指定します。
値はテーブル空間名、もしくは現在のデータベースのデフォルトのテーブル空間を使用することを意味する空文字列です。 この値が既存のテーブル空間名と一致しない場合、PostgreSQLは自動的に現在のデータベースのデフォルトのテーブル空間を使用します。
テーブル空間に付いてより詳細な情報は項19.6を参照してください。
check_function_bodies
(boolean)このパラメータは通常オンです。offに設定されると、CREATE FUNCTIONの間で関数本体文字列の妥当性検証を無効にします。妥当性検証を無効にすることは、ダンプから関数定義をリストアする時に参照を転送するような問題を回避する場合には便利です。
default_transaction_isolation
(string)SQLトランザクションはそれぞれ、"read uncommitted"、"read committed"、"repeatable read"、または"serializable"のいずれかの隔離レベルを持ちます。 このパラメータは各新規トランザクションのデフォルトの隔離レベルを制御します。 デフォルトは"read committed"です。
より詳細は 第12章 および SET TRANSACTION を調べてください。
default_transaction_read_only
(boolean)読み取り専用のSQLトランザクションでは、非一時的テーブルを変更することができません。 このパラメータは、各新規トランザクションのデフォルトの読み取りのみ状況を制御します。 デフォルトは偽(読み書き)です。
より詳細な情報はSET TRANSACTIONを調べてください。
statement_timeout
(integer) 指定されたミリ秒数以上かかったどんな命令文の実行も停止します。もし、log_min_error_statement
がERRORもしくはそれ以下に設定されると、タイムアウトする命令文は同時にログに書き込まれます。値が零(デフォルト)の場合、限度を無効にします。
DateStyle
(string)日付時刻値の表示書式を設定し、曖昧な日付入力の解釈規則を設定します。 歴史的な理由により、この変数には2つの依存した要素が含まれています。 出力書式指定(ISO、Postgres、SQL、German)と年/月/日の順序の入出力指定(DMY、MDY、YMD)です。 これらは分けて設定することもまとめて設定することもできます。 EuroおよびEuropeanキーワードはDMYの同義語であり、US、NonEuro、NonEuropeanはMDYの同義語です。 詳細は項8.5を参照してください。 デフォルトは、ISO, MDYです。
timezone
(string)表示用およびタイムスタンプ解釈用の時間帯を設定します。 デフォルトは'unknown'で、システム環境で時間帯として指定したものを使用します。 詳細は項8.5を参照してください。
australian_timezones
(boolean)もしオンに設定されると、ACST、 CST、EST、および SATが、North/South American時間帯と土曜日ではなく、Australian時間帯として解釈されます。デフォルトはoffです。
extra_float_digits
(integer)このパラメータは、float4、float8、幾何データ型などの浮動小数点値の表示桁数を調整します。 パラメータ値が標準的な桁数(FLT_DIGもしくはDBL_DIGどちらか適切な方)に追加されます。 この値は、部分有効数を含めるために2まで設定することができます。 これは基本的に、正確にリストアする必要がある浮動小数点データをダンプするために有用です。 もしくは、不要な桁を抑制するために負の値を設定することもできます。
client_encoding
(string)クライアント側符号化方式(文字セット)を設定します。デフォルトはデータベース符号化方式を使用します。
lc_messages
(string)メッセージが表示される言語を設定します。使用可能な値はシステムに依存します。詳細については項21.1を参照してください。この変数が空に設定された場合(これがデフォルトです)、値はシステムに依存する方法でサーバの実行環境から継承されます。
システムによっては、このロケールのカテゴリが存在しません。この変数を設定することはできますが、実効性はありません。また、指定の言語に翻訳されたメッセージが存在しないこともあります。その場合は、引き続き英語のメッセージが表示されます。
lc_monetary
(string) 通貨書式で使用するロケールを設定します。
例えば、to_char()
系の関数で使用します。
使用可能な値はシステムに依存します。
詳細については項21.1を参照してください。
この変数が空に設定された場合(これがデフォルトです)、値はシステムに依存する方法でサーバの実行環境から継承されます。
lc_numeric
(string) 数字の書式で使用するロケールを設定します。
例えば、to_char
系の関数で使用します。
使用可能な値はシステムに依存します。
詳細については項21.1を参照してください。
この変数が空に設定された場合(これがデフォルトです)、値はシステムに依存する方法でサーバの実行環境から継承されます。
lc_time
(string)日付と時間の書式で使用するロケールを設定します (現在この設定に意味はありませんが、将来的には意味を持つ可能性があります)。 使用可能な値はシステムに依存します。 詳細については項21.1を参照してください。 この変数が空に設定された場合(これがデフォルトです)、値はシステムに依存する方法でサーバの実行環境から継承されます。
explain_pretty_print
(boolean)EXPLAIN VERBOSEが問い合わせツリーの詳細表示にインデント表示するかしないかを決定します。 デフォルトは有効です。
dynamic_library_path
(string)オープンする必要がある動的ロード可能なモジュールについて、そのCREATE FUNCTIONやLOADコマンドで指定されたファイル名にディレクトリ要素がなく(つまり、名前にスラッシュが含まれずに)指定された場合、システムは必要なファイルをこのパスから検索します。
dynamic_library_path
の値は、絶対パスのディレクトリ名をコロン(Windowsの場合はセミコロン)を区切った一覧です。
この一覧の要素が特別な$libdirという値から始まる場合、コンパイルされたPostgreSQLパッケージのライブラリディレクトリで$libdirは置換されます。
ここには、PostgreSQLの標準配布物により提供されるモジュールがインストールされます
(このディレクトリ名を表示するには、pg_config --pkglibdir を使用してください)。
例を以下に示します。
dynamic_library_path = '/usr/local/lib/postgresql:/home/my_project/lib:$libdir'
もしくは、Windows環境では以下のようになります。
dynamic_library_path = 'C:\tools\postgresql;H:\my_project\lib;$libdir'
このパラメータのデフォルト値は'$libdir'です。 この値が空に設定された場合、自動的なパス検索は無効になります。
このパラメータはスーパーユーザによって実行時に変更することができますが、この方法での設定は、そのクライアント接続が終わるまでしか有効になりません。 ですので、この方法は開発目的でのみ使用すべきです。 推奨方法はこのパラメータをpostgresql.conf設定ファイル内で設定することです。