GUCOption
Add GUC Option
PostgreSQL起動からGUCパラメータの設定までの主な流れは以下の通り。
- PostmasterMain()
- InitializeGUCOption()
- build_guc_variables() で配列に全てのGUCパラメータを入れて、ソートする
- InitializeOneGUCOption()で各GUCパラメータの設定をする
- SetConfigOption()を再度実行して、trancastion_isolation, transaction_read_onlyなどの設定をオーバーライドする
- InitializeGUCOptionsFromEnvironment()で環境からGUCパラメータの設定がないかをチェックする
InitializeOneGUCOption()
主にここでGUCパラメータの設定をしている。一つ前の関数build_guc_variables()で各パラメータが何の型で値を持つのかを設定している。なので、この関数ではその型(PGC_BOOL, PGC_INT, PGC_REAL, PGC_STRING, PGC_ENUM)に応じて挙動を変えている。
postgresql.confから値を取得する具体的な流れは以下の通り。
- デフォルトの値(boot_val)を配列から取得
- call_***_check_hook()で値をチェック(***には型が入る)
- チェックが終了したら、正式に値として代入する
最終更新:2013年06月25日 00:54