12

CentOS 6.5 上的 postgresql-9.0.15。我有一个输出 INFO 消息的 plperlu 函数。我想在测试期间抑制它(使用 psql,它的行为也如下所示),但我什至似乎无法从 pgAdminIII(win2003 为 1.18.1)查询窗口执行此操作:

SET client_min_messages TO WARNING;
select my_info_outputting_function('lalala')

我运行它并查看“消息”选项卡,这是我的 INFO 消息。

(这可能看起来类似于How to suppress INFO messages when running psql scripts,但我不想禁用整个会话的 INFO 消息,只是其中的一部分,然后将最小值设置回 NOTICE。)

上面的代码片段我做错了什么?client_min_messages 是否不适用于 pl/perlu 函数?

更新:经过进一步调查,即使使用 plpgsql 函数,它似乎也会发生,而不仅仅是 plperlu 函数:

create or replace function my_info_outputting_function() returns void as $$
begin
    raise INFO 'this should not appear...';
    return;
end;
$$ language plpgsql;
SET client_min_messages TO WARNING;
select my_info_outputting_function();

我在 pgAdminIII 查询窗口中运行上面的代码片段,“这不应该出现”出现在消息选项卡中。奎?

更新 2:我还尝试了log_min_messages以防万一。相同的行为。

4

1 回答 1

20

我在 postgresql-general 邮件列表上询问并收到了一个信息丰富的答案:区别于它INFO没有级别:它旨在始终通过您将专门调用的函数,无论设置什么或其他任何内容用于 INFO 输出。因此,就我而言,适当的做法是仅从我的函数中输出。NOTICEINFOclient_min_messagesNOTICE

于 2014-01-21T23:34:44.540 回答