From d04bf78af08885e17ebaae7f198f93bbf06817e7 Mon Sep 17 00:00:00 2001 From: Dan Goodliffe Date: Sun, 25 Jul 2021 12:46:14 +0100 Subject: Support the rotate event to move to the next binlog file --- lib/output/pq/sql/updateSourceRotate.sql | 4 ++++ lib/output/pq/updateDatabase.cpp | 10 ++++++++++ lib/output/pq/updateDatabase.h | 1 + 3 files changed, 15 insertions(+) create mode 100644 lib/output/pq/sql/updateSourceRotate.sql (limited to 'lib/output') diff --git a/lib/output/pq/sql/updateSourceRotate.sql b/lib/output/pq/sql/updateSourceRotate.sql new file mode 100644 index 0000000..74e22fc --- /dev/null +++ b/lib/output/pq/sql/updateSourceRotate.sql @@ -0,0 +1,4 @@ +UPDATE mygrate.source SET + filename = $1, + position = $2 +WHERE source_id = $3 diff --git a/lib/output/pq/updateDatabase.cpp b/lib/output/pq/updateDatabase.cpp index c43d8e4..9db672d 100644 --- a/lib/output/pq/updateDatabase.cpp +++ b/lib/output/pq/updateDatabase.cpp @@ -20,6 +20,7 @@ #include #include #include +#include #include #include #include @@ -384,4 +385,13 @@ namespace MyGrate::Output::Pq { afterEvent(e); } } + + void + UpdateDatabase::rotate(MariaDB_Event_Ptr e) + { + if ((e->flags & LOG_EVENT_ARTIFICIAL_F) == 0) { + output::pq::sql::updateSourceRotate::execute( + this, *e->event.rotate.filename, e->event.rotate.position, source); + } + } } diff --git a/lib/output/pq/updateDatabase.h b/lib/output/pq/updateDatabase.h index 9547b90..12df97e 100644 --- a/lib/output/pq/updateDatabase.h +++ b/lib/output/pq/updateDatabase.h @@ -57,6 +57,7 @@ namespace MyGrate::Output::Pq { void deleteRow(MariaDB_Event_Ptr) override; void insertRow(MariaDB_Event_Ptr) override; void tableMap(MariaDB_Event_Ptr) override; + void rotate(MariaDB_Event_Ptr) override; const uint64_t source; const std::string schema; -- cgit v1.2.3