Subject: Re: Truncate logs by max_log_size

From: Kirill Gavrilov <[email-masked]>
Date: Tue, 1 Oct 2024 18:46:32 +0300

On Tue, Oct 1, 2024 at 2:46 PM Jim Jones <[email-masked]> wrote:

>
> On 27.09.24 12:36, Andrey M. Borodin wrote:
> > Consider max_log_size = 10Mb. The perspective might look very different.
> >  It’s not about WHERE anymore. It's a guard against heavy abuse.
> >
> > The feature looks very important for me.
> I have the same opinion. As a fail safe it sounds very useful to me.
>
> Unfortunately, the patch does not apply:
>
> $ git apply
> ~/patches/max_log_query/0001-parameter-max_log_size-to-truncate-logs.patch
> -v
> Checking patch src/backend/utils/error/elog.c...
> error: while searching for:
> char       *Log_destination_string = NULL;
> bool            syslog_sequence_numbers = true;
> bool            syslog_split_messages = true;
>
> /* Processed form of backtrace_symbols GUC */
> static char *backtrace_symbol_list;
>
> error: patch failed: src/backend/utils/error/elog.c:114
> error: src/backend/utils/error/elog.c: patch does not apply
> Checking patch src/backend/utils/misc/guc_tables.c...
> Hunk #1 succeeded at 3714 (offset 247 lines).
> Checking patch src/backend/utils/misc/postgresql.conf.sample...
> Hunk #1 succeeded at 615 (offset 23 lines).
> Checking patch src/bin/pg_ctl/t/004_logrotate.pl...
> error: while searching for:
> check_log_pattern('csvlog',  $new_current_logfiles, 'syntax error', $node);
> check_log_pattern('jsonlog', $new_current_logfiles, 'syntax error', $node);
>
> $node->stop();
>
> done_testing();
>
> error: patch failed: src/bin/pg_ctl/t/004_logrotate.pl:135
> error: src/bin/pg_ctl/t/004_logrotate.pl: patch does not apply
> Checking patch src/include/utils/elog.h...
> Hunk #1 succeeded at 502 (offset 1 line).
>
> Does it truncate only single queries or also a transaction with many
> statements?
>
> Thanks!
>
> Best, Jim
>

 My apologies, attached patch should work on master branch.
It truncates single queries and a statement in transaction that occurred an
error.