PostgreSQL: как сбросить параметр конфигурации?
postgresql.config: log_min_duration_statement = -1
Клиент А:
SELECT set_config('log_min_duration_statement', '30000', false);
SELECT current_setting('log_min_duration_statement');
-----
30s
Клиент Б:
SELECT current_setting('log_min_duration_statement');
-----
-1
Клиент B меняет postgresql.config: log_min_duration_statement = 60000
select pg_reload_conf();
SELECT current_setting('log_min_duration_statement');
---
1 min
===
Хорошо, как клиент A может сбросить свои настройки и использовать текущее значение параметра из файла postgresql.config без закрытия соединения? Т.е. клиент А делает
select pg_reload_conf();
но у него все еще есть ранее установленные 30-е годы
1 ответ
https://www.postgresql.org/docs/current/static/sql-reset.html
RESET - восстановить значение параметра времени выполнения до значения по умолчанию
просто
reset log_min_duration_statement
также https://www.postgresql.org/docs/current/static/functions-admin.html
set_config
устанавливает параметр setting_name в новое_значение. Если is_local имеет значение true, новое значение будет применяться только к текущей транзакции. Если вы хотите, чтобы новое значение применялось к текущему сеансу, используйте вместо этого false. Функция соответствует SQL-команде SET.
Другими словами вам не нужно pg_reload_config()
- потому что вы меняете настройки только на уровне сеанса. вам нужно перезагрузить только после изменения ponstgres.conf
та же ссылка выше:
pg_reload_conf()
Заставить серверные процессы перезагружать свои файлы конфигурации