Why does wait_for_log() return current file size
| От | Andres Freund |
|---|---|
| Тема | Why does wait_for_log() return current file size |
| Дата | |
| Msg-id | s4hdlqga6473ffbmdopefmmklgxvb4n3s5yl5zkm2qyogk72gl@ar6bolnlsruo обсуждение исходный текст |
| Ответы |
Re: Why does wait_for_log() return current file size
|
| Список | pgsql-hackers |
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?
Greetings,
Andres Freund
В списке pgsql-hackers по дате отправления: