summaryrefslogtreecommitdiff
path: root/lib/output/pq/updateDatabase.h
diff options
context:
space:
mode:
authorDan Goodliffe <dan@randomdan.homeip.net>2021-06-12 19:21:22 +0100
committerDan Goodliffe <dan@randomdan.homeip.net>2021-06-12 19:21:22 +0100
commitde6ac08985252e7b5d36959896386a414e590d15 (patch)
tree60abba81244c4aa484660b6ae15d7b6f4379f8b1 /lib/output/pq/updateDatabase.h
parentSimplify and allow offset when creating objects from rows (diff)
downloadmygrate-de6ac08985252e7b5d36959896386a414e590d15.tar.bz2
mygrate-de6ac08985252e7b5d36959896386a414e590d15.tar.xz
mygrate-de6ac08985252e7b5d36959896386a414e590d15.zip
Load schema and config etc from target DB
Diffstat (limited to 'lib/output/pq/updateDatabase.h')
-rw-r--r--lib/output/pq/updateDatabase.h16
1 files changed, 16 insertions, 0 deletions
diff --git a/lib/output/pq/updateDatabase.h b/lib/output/pq/updateDatabase.h
index 4e01d9c..2e48dd6 100644
--- a/lib/output/pq/updateDatabase.h
+++ b/lib/output/pq/updateDatabase.h
@@ -7,6 +7,21 @@
#include <eventSourceBase.h>
namespace MyGrate::Output::Pq {
+ struct ColumnDef {
+ std::string name;
+ std::size_t ordinal;
+ bool is_pk;
+ };
+ using ColumnDefPtr = std::unique_ptr<ColumnDef>;
+
+ class TableDef {
+ public:
+ TableDef(const RecordSet &, std::string_view name);
+
+ std::vector<ColumnDefPtr> columns;
+ };
+ using TableDefPtr = std::unique_ptr<TableDef>;
+
class UpdateDatabase : public PqConn, public EventHandlerBase {
public:
UpdateDatabase(const char * const str, uint64_t source);
@@ -15,6 +30,7 @@ namespace MyGrate::Output::Pq {
private:
uint64_t source;
+ std::map<std::string, TableDefPtr, std::less<>> tables;
};
}