每次postgresql启动时如何运行函数?

时间:2014-11-20 08:03:05

标签: postgresql

我使用pg_trgm扩展名进行模糊搜索。默认阈值为0.3,如下所示:

# 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)

我想在每次启动postgresql时执行set_limit(0.1)。或者换句话说,我想将0.1设置为pg_trgm扩展的阈值的默认值。我该怎么做?

1 个答案:

答案 0 :(得分:2)

之前有人问过:

初始设置在源中进行了硬编码。可以破解源并重新编译扩展。

解决你的评论: 您可以psqlrc or ~/.psqlrc file中输入命令。一个简单明了的SELECT命令在一个单独的行中:

SELECT set_limit(0.1)

请注意,附加模块是按按数据库安装的,而psql可以连接到任何数据库集群和该集群中的任何数据库。连接到未安装pg_trgm的任何数据库时,它将导致错误消息。但不会发生任何不好的事情。

另一方面,与任何其他客户端连接不会设置限制,这可能是一个陷阱。

pg_trgm应该真正提供配置设置......