Re: Why does wait_for_log() return current file size

Поиск
Список
Период
Сортировка
От Andrew Dunstan
Тема Re: Why does wait_for_log() return current file size
Дата
Msg-id 7552b0a0-ed4c-45ed-95d6-c86baf771967@dunslane.net
обсуждение исходный текст
Ответ на Why does wait_for_log() return current file size  (Andres Freund <andres@anarazel.de>)
Ответы Re: Why does wait_for_log() return current file size
Список pgsql-hackers


On 2025-03-29 Sa 11:15 AM, Andres Freund wrote:
Hi,

In a test I'd like to use wait_for_log() to find a bunch of log messages
emitted in sequence. A reasonable looking pattern for that would be:
	$log_location = -s $node->logfile;
        $log_location = $node->wait_for_log(qr/first-message/, $log_location);        $log_location = $node->wait_for_log(qr/second-message/, $log_location);

Except that that doesn't work, because what wait_for_log returns is:
		my $log =		  PostgreSQL::Test::Utils::slurp_file($self->logfile, $offset);
		return $offset + length($log) if ($log =~ m/$regexp/);

Which, afaict, boils down to the current end of the logfile.

Could we instead determine where in the string our regex matched, and return   $offset + $that_magic_number

Assuming that could be made work, does anybody see a reason not to do that?



In principle it seems quite reasonable, but I haven't looked at all the current uses to see if they will be upset.


cheers

andrew

--
Andrew Dunstan
EDB: https://www.enterprisedb.com

В списке pgsql-hackers по дате отправления: