On Mon, Sep 27, 2021 at 04:57:20PM +0530, Nitin Jadhav wrote:
> > It is also not logical to define 0 as meaning that "all messages for
> > such operations are logged". What does that even mean? It makes sense
> > for something like log_autovacuum_min_duration, because there we are
> > talking about logging one message per operation, and we could log
> > messages for all operations or just some of them. Here we are talking
> > about the time between one message and the next, so talking about "all
> > messages" does not really seem to make a lot of sense. Experimentally,
> > what 0 actually does is cause the system to spam log lines in a tight
> > loop, which cannot be what anyone wants. I think you should make 0
> > mean disabled, and a positive value mean log at that interval, and
> > disallow -1 altogether.
>
> Made changes which indicate 0 mean disabled, > 0 mean interval in
> millisecond and removed -1.
>
> Please find the patch attached.
I think you misunderstood - Robert was saying that interval=0 doesn't work, not
suggesting that you write more documentation about it.
Also, I agree with Robert that the documentation is too verbose. I don't think
you need to talk about what happens if the clock goes backwards (It just needs
to behave conveniently).
Look at the other _duration statements for what they say about units.
"If this value is specified without units, it is taken as milliseconds."
https://www.postgresql.org/docs/14/runtime-config-logging.html
log_autovacuum_min_duration
log_min_duration_statement
>>It also looks pretty silly to say that if you set the value to 10s, something
>>will happen every 10s. What else would anyone expect to happen?
@Robert: that's consistent with existing documentation, even though it might
seem obvious and silly to us.
| For example, if you set this to 250ms then all automatic vacuums and analyzes that run 250ms or longer will be
logged
| For example, if you set it to 250ms then all SQL statements that run 250ms or longer will be logged
--
Justin