> I feel that observability is important, and I don't understand why we > would want to have the information for only a portion of the > functionality's usage (even if it's the most important).
In my opinion, the requirement for parallel usage in the utility statement is different. In fact, I think the story there needs improvement as is being discussed in [1] by introducing something like a VERBOSE. Here is the kind of case I think will be a bit odd if we introduce the parallel logging for vacuum in V6_0003 and V6_0004. postgres=# set client_min_messages = LOG; SET postgres=# set log_parallel_workers = "all"; SET postgres=# vacuum (verbose, parallel 4) t ; INFO: vacuuming "postgres.public.t" INFO: launched 2 parallel vacuum workers for index vacuuming (planned: 2) LOG: launched 2 parallel workers (planned: 2) INFO: table "t": truncated 17242 to 0 pages INFO: finished vacuuming "postgres.public.t": index scans: 1 pages: 17242 removed, 0 remain, 17242 scanned (100.00% of total) There will both be an INFO ( existing behavior ) and LOG ( new behavior ). This seems wrong to me and there should only really be one mechanism to log parallel workers for utility statements. Others may have different opinions. I also have a few comments on V6 1/ For the new comments. Change: "workers is produced" To "workers is emitted" "emit" is used mainly to describe logs. Also, change "displays" to "emits" 2/ Should the function LoggingParallelWorkers do all the work, including logging? This way the callers just need to call the function without checking for the return value? Currently, the patch just repeats the same logging calls everywhere it's needed. Maybe use a void returning function called LogParallelWorkersIfNeeded for this purpose? Regards, Sami [1] https://www.postgresql.org/message-id/caa5rz0trtul6_vpvw79daggkp7b-ztwuc5yrpz5sjm8ns4k...@mail.gmail.com