From 25e2428754a3ac6c02650812564c857d1e25df55 Mon Sep 17 00:00:00 2001 From: Dan Goodliffe Date: Mon, 2 Aug 2021 21:13:43 +0100 Subject: Handle Rows events with more than one row --- lib/row.cpp | 29 +++++++++-------------------- 1 file changed, 9 insertions(+), 20 deletions(-) (limited to 'lib/row.cpp') diff --git a/lib/row.cpp b/lib/row.cpp index 9d81906..ba8045d 100644 --- a/lib/row.cpp +++ b/lib/row.cpp @@ -10,17 +10,6 @@ #include namespace MyGrate { - Row::Row(const st_mariadb_rpl_rows_event & row, const st_mariadb_rpl_table_map_event & tm) : - Row(row, tm, RawDataReader {tm.metadata}, RawDataReader {row.row_data, row.row_data_size}) - { - } - - Row::Row(const st_mariadb_rpl_rows_event & row, const st_mariadb_rpl_table_map_event & tm, - MyGrate::RawDataReader && md, MyGrate::RawDataReader && data) : - Row {row, tm, md, data} - { - } - Row::Row(const st_mariadb_rpl_rows_event & row, const st_mariadb_rpl_table_map_event & tm, MyGrate::RawDataReader & md, MyGrate::RawDataReader & data) { @@ -114,15 +103,15 @@ namespace MyGrate { } } - RowPair::RowPair(const st_mariadb_rpl_rows_event & row, const st_mariadb_rpl_table_map_event & tm) : - RowPair(row, tm, RawDataReader {tm.metadata}, RawDataReader {tm.metadata}, - RawDataReader {row.row_data, row.row_data_size}) - { - } - - RowPair::RowPair(const st_mariadb_rpl_rows_event & row, const st_mariadb_rpl_table_map_event & tm, - MyGrate::RawDataReader && md1, MyGrate::RawDataReader && md2, MyGrate::RawDataReader && data) : - std::pair {Row {row, tm, md1, data}, Row {row, tm, md2, data}} + Row::Rows + Row::fromRowsEvent(const st_mariadb_rpl_rows_event & row, const st_mariadb_rpl_table_map_event & tm) { + Rows rtn; + RawDataReader data {row.row_data, row.row_data_size}; + while (data.more()) { + RawDataReader md {tm.metadata}; + rtn.emplace_back(row, tm, md, data); + } + return rtn; } } -- cgit v1.2.3