Re: log_min_messages per backend type

Euler Taveira <euler@eulerto.com>

From: "Euler Taveira" <euler@eulerto.com>
To: "Alvaro Herrera" <alvherre@alvh.no-ip.org>
Cc: japin <japinli@hotmail.com>, "Andres Freund" <andres@anarazel.de>, pgsql-hackers@lists.postgresql.org, "Chao Li" <li.evan.chao@gmail.com>
Date: 2026-02-10T22:05:30Z
Lists: pgsql-hackers

Attachments

On Mon, Feb 9, 2026, at 10:03 AM, Alvaro Herrera wrote:
> On 2026-Feb-09, Alvaro Herrera wrote:
>
>> I just pushed this, and somehow I forgot to squash this into the commit.
>> I don't think it matters terribly much though, so I'm going to hang onto
>> this for a while in case some bug is found.
>
> Euler mentioned offlist that I also forgot to remove
> log_min_messages_process_types from guc.h.  So that gives us this patch
> for now.
>

I expanded this patch a bit with fixes proposed by Man Zeng and Noriyoshi
Shinoda. Besides these changes, I noticed that

* default value in uppercase: since we changed the vartype from enum to string
  and enum maps DEBUG1 to "debug1" (see server_message_level_options), it
  should use the lowercase string to keep the same output as previous versions.
  There is no bug here. It is just a matter of keeping the same output.
* use single quote: since we changed the vartype from enum to string, we should
  add single quotes. If you don't add single quotes, it works (for a single
  default log level) -- as exercised in the tests. However, as soon as the user
  adds an extra element it fails. This avoids confusion.

$ psql
psql (19devel)
Type "help" for help.

postgres=# show log_min_messages;
 log_min_messages 
------------------
 WARNING
(1 row)

postgres=# set log_min_messages to debug1;
SET
postgres=# show log_min_messages;
 log_min_messages 
------------------
 debug1
(1 row)

postgres=# set log_min_messages to 'debug1';
SET
postgres=# show log_min_messages;
 log_min_messages 
------------------
 debug1
(1 row)

postgres=# set log_min_messages to warning, backend:error;
ERROR:  syntax error at or near ":"
LINE 1: set log_min_messages to warning, backend:error;
                                                ^
postgres=# set log_min_messages to 'warning, backend:error';
SET
postgres=# show log_min_messages;
    log_min_messages    
------------------------
 warning, backend:error
(1 row)


-- 
Euler Taveira
EDB   https://www.enterprisedb.com/

Commits

Same data as JSON: GET /api/v1/messages/:b64id/commits the thread's linked commits as JSON, with link sources. API reference →
  1. Cleanup for log_min_messages changes in 38e0190ced71

  2. Allow log_min_messages to be set per process type

  3. Assign "backend" type earlier during process start-up

  4. Use integer backend type when exec'ing a postmaster child

  5. Sort guc_parameters.dat alphabetically by name

  6. Create a separate file listing backend types

  7. Replace postmaster.c's own backend type codes with BackendType