From 88708a8aa6a33f265ff990102b44a9a51e3bf4bb Mon Sep 17 00:00:00 2001 From: Dan Goodliffe Date: Thu, 3 Jun 2021 00:19:50 +0100 Subject: Get upstream from DB Adds options from command line and a few supporting tweaks --- lib/output/pq/sql/selectSource.sql | 2 +- lib/output/pq/updateDatabase.cpp | 19 ++++++++++++++++--- lib/output/pq/updateDatabase.h | 12 ++++++++---- 3 files changed, 25 insertions(+), 8 deletions(-) (limited to 'lib/output') diff --git a/lib/output/pq/sql/selectSource.sql b/lib/output/pq/sql/selectSource.sql index 3048410..db76b4a 100644 --- a/lib/output/pq/sql/selectSource.sql +++ b/lib/output/pq/sql/selectSource.sql @@ -1,3 +1,3 @@ -SELECT host, username, password, port, filename, position, serverid, table_schema +SELECT host, username, password, port, filename, position, serverid FROM mygrate.source s WHERE s.id = $1 diff --git a/lib/output/pq/updateDatabase.cpp b/lib/output/pq/updateDatabase.cpp index 77a9ce5..ebcabb3 100644 --- a/lib/output/pq/updateDatabase.cpp +++ b/lib/output/pq/updateDatabase.cpp @@ -1,8 +1,21 @@ #include "updateDatabase.h" #include "pqConn.h" -#include -#include +#include +#include +#include +#include +#include +#include +#include namespace MyGrate::Output::Pq { - UpdateDatabase::UpdateDatabase(const char * const str, std::string p) : PqConn {str}, prefix {std::move(p)} { } + UpdateDatabase::UpdateDatabase(const char * const str, uint64_t s) : PqConn {str}, source {s} { } + + EventSourceBasePtr + UpdateDatabase::getSource() + { + auto srcrec = output::pq::sql::selectSource::execute(this, source); + verify(srcrec->rows() == 1, "Wrong number of source config rows"); + return {}; + } } diff --git a/lib/output/pq/updateDatabase.h b/lib/output/pq/updateDatabase.h index bc54282..4e01d9c 100644 --- a/lib/output/pq/updateDatabase.h +++ b/lib/output/pq/updateDatabase.h @@ -2,15 +2,19 @@ #define MYGRATE_OUTPUT_PQ_UPDATEDATABASE_H #include "pqConn.h" -#include +#include +#include +#include namespace MyGrate::Output::Pq { - class UpdateDatabase : PqConn { + class UpdateDatabase : public PqConn, public EventHandlerBase { public: - UpdateDatabase(const char * const str, std::string prefix); + UpdateDatabase(const char * const str, uint64_t source); + + EventSourceBasePtr getSource(); private: - std::string prefix; + uint64_t source; }; } -- cgit v1.2.3