Обсуждение: [DOCS] RAISE INFO and client_min_messages

Поиск
Список
Период
Сортировка

[DOCS] RAISE INFO and client_min_messages

От
Pavel Luzanov
Дата:
Hello,

When working with RAISE statement in PL/pgSQL, I found a strange situation with client_min_messages.

According to the documentation, client_min_messages does not include the value 'INFO'.
Column enumval in pg_settings also does not contain this value:

=# select name, enumvals from pg_settings where name = 'client_min_messages';
        name         |                           enumvals                           
---------------------+---------------------------------------------------------------
 client_min_messages | {debug5,debug4,debug3,debug2,debug1,log,notice,warning,error}

But when we run RAISE INFO statement in PL/pgSQL, client receive a message with any setting of client_min_messages, even most silent 'ERROR':
=# set client_min_messages = 'error';
SET
=# do $$begin raise info 'Hello, World!'; end;$$;
INFO:  Hello, World!
DO

Moreover, this parameter can be set to 'INFO':
=# set client_min_messages = 'info';
SET

In this case the behavior does not changes from default 'NOTICE'.

Do we need to change something in the documentation?


P.S. log_min_messages contains INFO and works accordingly.
-- 

-----
Pavel Luzanov
Postgres Professional: http://www.postgrespro.com
The Russian Postgres Company

Re: [DOCS] RAISE INFO and client_min_messages

От
Tom Lane
Дата:
Pavel Luzanov <p.luzanov@postgrespro.ru> writes:
> When working with RAISE statement in PL/pgSQL, I found a strange
> situation with client_min_messages.

> According to the documentation, client_min_messages does not include the
> value 'INFO'.

Indeed.  INFO messages cannot be suppressed by client_min_messages.
The reason is that they are emitted by commands like VACUUM VERBOSE,
where (presumably) the entire reason the user said VERBOSE is that
she wanted to see those messages.

I do not recommend using INFO in "RAISE" except in cases similar
to that one.

            regards, tom lane


Re: [DOCS] RAISE INFO and client_min_messages

От
Pavel Luzanov
Дата:
On 23.03.2017 17:39, Tom Lane wrote:
Pavel Luzanov <p.luzanov@postgrespro.ru> writes:
When working with RAISE statement in PL/pgSQL, I found a strange 
situation with client_min_messages.
According to the documentation, client_min_messages does not include the 
value 'INFO'.
Indeed.  INFO messages cannot be suppressed by client_min_messages.
The reason is that they are emitted by commands like VACUUM VERBOSE,
where (presumably) the entire reason the user said VERBOSE is that
she wanted to see those messages.


Now, the reason for such behavior is clear.

As for me, adding one sentence
to the end of current description for client_min_messages will make sence:

Controls which message levels are sent to the client. Valid values are DEBUG5, DEBUG4, DEBUG3, DEBUG2, DEBUG1, LOG, NOTICE, WARNING, ERROR, FATAL, and PANIC. Each level includes all the levels that follow it. The later the level, the fewer messages are sent. The default is NOTICE. Note that LOG has a different rank here than in log_min_messages. Also, messages with INFO level are sent to the client with any value of this parameter.
-----
Pavel Luzanov
Postgres Professional: http://www.postgrespro.com
The Russian Postgres Company