2014-11-20 2 views
2

Я использую расширение pg_trgm для нечеткого поиска. Порог по умолчанию 0,3, как показывают в:Как запускать функции каждый раз, когда начинается postgresql?

# select show_limit(); 
show_limit 
------------ 
     0.3 
(1 row) 

я могу изменить его с помощью:

# select set_limit(0.1); 
set_limit 
----------- 
     0.1 
(1 row) 

# select show_limit(); 
show_limit 
------------ 
     0.1 
(1 row) 

Но когда я перезагрузить сеанс, порог сброса по умолчанию значение:

# \q 

$ psql -Upostgres my_db 
psql (9.3.5) 
Type "help" for help. 

# select show_limit(); 
show_limit 
------------ 
     0.3 
(1 row) 

Я хочу выполнить set_limit (0.1) каждый раз при запуске postgresql. Или, другими словами, я хочу установить 0,1 в качестве значения по умолчанию для порога расширения pg_trgm. Как мне это сделать?

+0

Только для ваших сессий (некоторые роли, но не другие) или для всей БД? –

+0

Для всего db. – vajrasky

+1

Об этом было задано до: http://stackoverflow.com/questions/14608081/set-default-limit-for-pg-trgm. Первоначальная настройка кажется жесткой. Я не могу придумать легкое решение, кроме запуска 'set_limit()' с начала каждого сеанса. –

ответ

2

Это было предложено до:

Первоначальная установка закодирована в источнике. Можно было взломать источник и перекомпилировать расширение.

Для решения комментария: Вы могли поставить команду в вашем psqlrc or ~/.psqlrc file. Простая и простой SELECT команда в отдельной строке:

SELECT set_limit(0.1) 

Имейте в виде, что дополнительный модуль установлен для каждой базы данных, в то время как psql может подключаться к любому кластеру базы данных и любой базе данных в этом кластере. Это приведет к появлению сообщения об ошибке при подключении к любой базе данных, где pg_trgm не установлен. Однако ничего плохого не произойдет.

С другой стороны, соединение с любым другим клиентом не устанавливает предел, это может быть немного ловушкой.

pg_trgm действительно должны обеспечить установку конфигурации ...

Смежные вопросы