NAME
MySQL::Binlog_RBR_Data - extract changed rows from RBR binlogs
SYNOPSIS
use MySQL::Binlog_RBR_Data;
open my $binlog, "mysqlbinlog --base64-output=DECODE-ROWS --verbose binlog.000999|";
my $parser = MySQL::Binlog_RBR_Data->parse(
$binlog,
0,
qw( accounts.User visits.Pageviews ),
);
while ( my $trans = $parser->() ) {
# do stuff
}
FUNCTIONS
parse
my $parser = MySQL::Binlog_RBR_Data->parse( $file_handle );
my $parser = MySQL::Binlog_RBR_Data->parse( $file_handle, $start_position );
my $parser = MySQL::Binlog_RBR_Data->parse( $file_handle, $start_position, @tables_interested_in )
Returns a closure that will itself return the data for the next transaction, or undef if no more data is available.
$parser
$parser->()
Returned by parse, it will return an hashref with the data for the next transaction, or false if no more data is available.
The returned hash has the structure:
{
end_position => <number>,
start_position => <number>,
<table> => [
# changed rows
[
# updated row:
[ new row values ],
[ old row values ],
],
[
# inserted row:
[ new row values ],
]
[
# deleted row:
undef,
[ old row values ],
]
],
...
}
AUTHOR
Luciano Rocha <luciano.rocha@booking.com>
COPYRIGHT
Copyright (C) 2012 by Booking.com.
This library is free software; you can redistribute it and/or modify it under the same terms as Perl itself, either Perl version 5.12.4 or, at your option, any later version of Perl 5 you may have available.