サーバ実行時パラメータを確認できます。私はshowコマンドの代わりに使っていたのですが、最近setの代わりになる事を知りました。(update文のみ有効)ただし変更内容はupdateを発行したセッションでのみ有効で、また変更できるパラメータには制限あります(contextカラムに依存。詳細はマニュアル参照)
pg_settings のupdate例
-- ログインユーザ確認
postgres=# select current_user,current_schema;
current_user | current_schema
--------------+----------------
postgres | public
(1 行)
-- 例題としてlc_messagesを使います
-- context=superuserとなっていますがこれはスーパーユーザのみ
-- 変更できることを表しています
postgres=# select name,setting,context,vartype,reset_val
postgres-# from pg_settings where name = 'lc_messages';
name | setting | context | vartype | reset_val
-------------+---------+-----------+---------+-----------
lc_messages | en_US | superuser | string | en_US
(1 行)
-- 以下の通りエラーメッセージは英文で出力されます
postgres=# select current_database;
ERROR: column "current_database" does not exist
行 1: select current_database;
^
-- 値の更新
postgres=# update pg_settings set setting ='ja_JP.UTF-8' where name = 'lc_messages';
set_config
-------------
ja_JP.UTF-8
(1 行)
UPDATE 0
-- 補足
以下のような権限エラーが出る場合は、実行ユーザにSUPERUSER権限を付与してください。
update pg_settingsはスーパーユーザでないと実行できません。
ERROR: permission denied to set parameter "lc_messages"
-- 変更した事でエラーメッセージが日本語で出力されます。
postgres=# select current_database;
ERROR: 列"current_database"は存在しません
行 1: select current_database;
^
postgres=#