アットウィキロゴ

GUCOption


GUCOption


Add GUC Option

PostgreSQL起動からGUCパラメータの設定までの主な流れは以下の通り。
  1. PostmasterMain()
    1. InitializeGUCOption()
      1. build_guc_variables() で配列に全てのGUCパラメータを入れて、ソートする
      2. InitializeOneGUCOption()で各GUCパラメータの設定をする
      3. SetConfigOption()を再度実行して、trancastion_isolation, transaction_read_onlyなどの設定をオーバーライドする
      4. InitializeGUCOptionsFromEnvironment()で環境からGUCパラメータの設定がないかをチェックする

InitializeOneGUCOption()

主にここでGUCパラメータの設定をしている。一つ前の関数build_guc_variables()で各パラメータが何の型で値を持つのかを設定している。なので、この関数ではその型(PGC_BOOL, PGC_INT, PGC_REAL, PGC_STRING, PGC_ENUM)に応じて挙動を変えている。

postgresql.confから値を取得する具体的な流れは以下の通り。
  1. デフォルトの値(boot_val)を配列から取得
  2. call_***_check_hook()で値をチェック(***には型が入る)
  3. チェックが終了したら、正式に値として代入する
最終更新:2013年06月25日 00:54